waspy59
Messages postés189Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention15 mai 2013
-
25 nov. 2004 à 01:26
waspy59
Messages postés189Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention15 mai 2013
-
25 nov. 2004 à 19:40
bonjour, voila mon probleme:
soit un fichier text contenant une chaine de caractere quelconque ex: "fggfgf gtg tggt tgtg, gt, tytyh dzeq eqfe,fad zef qdz".
Comment faire pour :
- au niveau des espaces doubles pairs: remplacer par un retour a la ligne.
- au niveau des espaces doubles impairs: remplacer par un ";".
waspy59
Messages postés189Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention15 mai 2013 25 nov. 2004 à 16:21
merci daniel pour ta technique.
pour repondre a ta question, les espaces simples ne sont pas un probleme et il n'y a pas d'espaces superieurs a doubles, donc..
personnellement g trouvé un moyen pour aboutir au resultat mais plus long que ta technique:
Dim Buffer As String
Dim Lg As Long
Dim m, o, p As Integer
Open c For Input As #1
Buffer = Input(LOF(1), #1)
o = 0
Do
'Lg = Len(Buffer)
m = InStr(1, Buffer, " ")
If m <> 0 Then
o = o + 1
p = o Mod 2
If p = 0 Then
Let Buffer = Left(Buffer, m) & vbCrLf & Right(Buffer, Len(Buffer) - (m + 1))
Else
Let Buffer = Left(Buffer, m) & ";" & Right(Buffer, Len(Buffer) - (m + 1))
End If
End If
DoEvents
Loop Until m = 0
Close #1
Open c For Output As #1
Print #1, Buffer;
Close #1
Mais j'ai un nouveau probleme, qui conserne la taille des fichiers a analyser:
- c tres long pour les gros fichiers (sup a 500ko)
- pour les petits fichiers (1ko) g l'apparition de l'erreur 62 ("l'entrée dépasse la fin de fichier") au niveau du LOF