MiharbiDoNo
Messages postés150Date d'inscriptiondimanche 17 mai 2009StatutMembreDernière intervention25 mai 2012
-
30 nov. 2009 à 20:54
MiharbiDoNo
Messages postés150Date d'inscriptiondimanche 17 mai 2009StatutMembreDernière intervention25 mai 2012
-
5 juil. 2010 à 17:43
bonjour,
je connais une fonction qui retourne ce qu'il'ya entre deux string, dans un string plus long,
Ex: Getbetween("abcde123","bc",12") retourne "de"
cad ce qu'ilya etre string2 et string3, dans string1 (j'espere qui je me debrbouille en m'expliquant :p)
mais cette methode va retourné un erreur si la chaine est trop longue. j'ai pensé alors a faire une fonction similaire, mais a travers les fichiers:
IOBetween(SourcePath,DestinationPath,Binf,Bsup)
cad, un streamReader va lire le Fichier Dans Sourcepath, puis lire justqu'a trouver Binf, si trouvé, ecrire dans un streamWriter Jusqu'a trouver Bsup.... voila quesque j'ai jusqu'a maintenant :
Sub IOBetween(ByVal Source As String, ByVal Destination As String, ByVal Binf As String, ByVal Bsup As String)
Dim Streamreader As New IO.StreamReader(Source, System.Text.Encoding.Default)
Dim CurrentChar() As Char
If Binf.Length > Bsup.Length Then
CurrentChar = Space(Binf.Length)
Else
CurrentChar = Space(Bsup.Length)
End If
Dim p As Integer = 0
Do Until (p = (Binf.Length)) Or (Streamreader.EndOfStream)
Streamreader.Read(CurrentChar, p, 1)
If CurrentChar(p) = Binf(p) Then
p += 1
Else
p = 0
End If
Loop
Dim Streamwriter As New IO.StreamWriter(Destination, True, System.Text.Encoding.Default)
p = 0
Do Until p = Bsup.Length Or Streamreader.EndOfStream
Streamreader.Read(CurrentChar, p, 1)
If Bsup(p) = CurrentChar(p) Then
p += 1
Else
For i = 0 To p
Streamwriter.Write(CurrentChar(i))
Next
p = 0
End If
Loop
Streamreader.Dispose()
Streamreader.Close()
Streamwriter.Flush()
Streamwriter.Dispose()
Streamwriter.Close()
End Sub
j'ai fait un tournage a la main, sa semble que c bien fait. mais quand jl'essai avec de different type de fichier, sa donne un resultat inattandu...
veuillez m'excuser si c'est un peu long, mais je suis sure qu'il ya une faille quelque part... Merci.