problème de saut de ligne dans fichier [VB] - Programmation
Marsh Posté le 13-02-2001 à 14:29:32
A tout les coup, le replaceall est une instruction du genre (en algo):
1)cherche première occurence.
2) si trouvé alors remplace puis retour en 1
3) fin de la fonction
Comme tu remplace <BR> par <BR>+c (c étant un caractère), il trouve toujours un <BR>. Donc boucle infinie.
Marsh Posté le 13-02-2001 à 14:40:47
Pour la solution, je laisse faire les pro du VB. A mon avis, un :
replaceall cdc2, "<br>", "<brt>"
replaceall cdc2, "<brt>", chbrln
pourras corrigé ton problème. Le seul défault, c'est qu'il changera également tout les "<brt>" contenue dans ton fichier.
L'autre solution, c'est d'utilisé deux chaines (ch1 et ch2)et de faire une boucle.
Avant la boucle, tu met ch1 à vide et ch2 à la valeur de cdc2.
Dans cette boucle, tu cherche la position du premier "<br>" dans cdc2, tu concatène ch1 avec la partie de ch2 qui précède le "<br>" + la chaine de remplacement chbrln .Dans la chaine ch2, tu mes toute la partie de ch2 qui suit le "<br>".
Enfin, tu ne sort de la boucle que s'il n'y a plus de "<br>" dans ch2.
Une fois sortie de la boucle, tu remplace cdc2 par ch1.
Bonne chance et bon codage.
Marsh Posté le 13-02-2001 à 15:05:39
Pour vous faire une idée de la chose, voici la fonction remplaceall...
Function replaceall(searchstring As String, findstring As String, replacestring As String) As String
Dim curpos As Long
curpos = 1
Do Until InStr(searchstring, findstring) = 0
curpos = InStr(curpos, searchstring, findstring)
searchstring = Left$(searchstring, (curpos - 1)) & replacestring & Right$(searchstring, (Len(searchstring) - curpos - Len(findstring) + 1))
Loop
replaceall = searchstring
End Function
Marsh Posté le 13-02-2001 à 16:02:33
si ca marche, désolé... c'est juste un peu plus long que d'hab...
Marsh Posté le 13-02-2001 à 08:39:18
Je vous explique mon pb :
Je veux convertir un fichier txt en HTML... je remplace donc des caractères par d'autres chaines de caractères avec une fonction "replaceall" qu'un forumeur m'a donné :
chbrln = Chr(13) & "<br>"
'ouverture du fichier en lecture
Open Text1.Text For Input As #1
Do Until EOF(1)
Input #1, cdc2
replaceall cdc2, "à", "à"
[...]
replaceall cdc2, "> <", "><"
'il faut mettre un saut de ligne après un <BR> pour le moteur de recherche
replaceall cdc2, "<br>", chbrln
Text2.Text = Text2.Text & " " & cdc2
Loop
Close #1
Voila mais ca marche pas : plantage du style boucle infinie...
Où est donc la solution ???
Ca plante depuis que j'ai rajouté la ligne
replaceall cdc2, "<br>", chbrln
HELP !