Editer un fichier texte
Editer un fichier texte
Salut, je fréquente ce forum depuis quelques mois et je viens juste de m'inscrire car j'ai une question pour laquel je ne trouve pas de réponse.
Je voudrais savoir si il est possible de remplacer une ligne de texte dans un fichier texte par une autre, exemple :
Fruit1=banane
Fruit2=Pomme
Fruit3=ananas
Fruit4=Kiwi
Je voudrais remplacer "Fruit3=ananas" par "Fruit3=orange".
Merci de bien vouloir m'aider.
Je voudrais savoir si il est possible de remplacer une ligne de texte dans un fichier texte par une autre, exemple :
Fruit1=banane
Fruit2=Pomme
Fruit3=ananas
Fruit4=Kiwi
Je voudrais remplacer "Fruit3=ananas" par "Fruit3=orange".
Merci de bien vouloir m'aider.
- Kwai chang caine
- Messages : 6989
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Bonjour ATOMO
Moi je ferais comme ça :
Mais attention, je ne suis pas une référence dans le forum.
Si ça peux te dépanner.
Je pense que mes grands freres trouverons surement mieux.
Moi je ferais comme ça :
Code : Tout sélectionner
ExpressionRechercher.s = "Fruit3=ananas"
ExpressionQuiRemplace.s ="Fruit3=orange"
FichierOrigine.s = "c:\c.txt"
OpenFile(1,FichierOrigine)
OpenFile(2,"c:\Temp.txt")
Repeat
ExpressionLue.s = ReadString(1)
If ExpressionLue = ExpressionRechercher
WriteStringN(2, ExpressionQuiRemplace)
Else
WriteStringN(2, ExpressionLue)
EndIf
Until Eof(1) <> 0
CloseFile(1)
CloseFile(2)
DeleteFile(FichierOrigine)
RenameFile("c:\Temp.txt", FichierOrigine)
Si ça peux te dépanner.
Je pense que mes grands freres trouverons surement mieux.
-
- Messages : 14
- Inscription : mar. 18/sept./2007 8:17
Un petit bout de code pour expliquer comment changer toutes les occurences en un seul passage !
Pour ne changer que la première chaine comme le dit Dobro, le code qui suit permet de changer la change voulu même si la ligne du texte comporte d'autre caractères ce qui n'est pas le cas du code de Kc que je salut ici bien bas !
Code : Tout sélectionner
; >>>> Creation du FichierOrigine
FichierOrigine.S = "c:\c.txt"
CreateFile(1,FichierOrigine)
WriteStringN(1,"Fruit1=banane")
WriteStringN(1,"Fruit2=Pomme")
WriteStringN(1,"Fruit3=ananas et autres")
WriteStringN(1,"Fruit4=Kiwi ")
WriteStringN(1,"Fruit3=ananas")
WriteStringN(1,"Fruit3=ananas")
WriteStringN(1,"Fruit3=ananas")
CloseFile(1)
; >>>> Fin de Creation du FichierOrigine
; >>>> Mise en mémoire dans la chaine ContenuFichier de la totalité du FichierOrigine"
rc.S = Chr(13)+Chr(10) ; Retour Chariot
OpenFile(1,FichierOrigine)
Repeat
ContenuFichier.S + ReadString(1)+rc
Until Eof(1)
; >>>> Fin Mise en mémoire dans la chaine ContenuFichier de la totalité du FichierOrigine"
; >>>> Affichage
MessageRequester("Chaine Source",ContenuFichier)
; >>>> Affichage
; >>>> Substitution de la chaine
ExpressionRechercher.S = "Fruit3=ananas"
ExpressionQuiRemplace.S ="Fruit3=orange"
ContenuFichier = ReplaceString(ContenuFichier,ExpressionRechercher,ExpressionQuiRemplace)
; >>>> Fin Substitution de la chaine
; >>>> Affichage
MessageRequester("Chaine modifiée",ContenuFichier)
; >>>> Affichage
; >>>> Ecriture de la nouvelle chaine
FileSeek(1,0)
WriteString(1,ContenuFichier)
CloseFile(1)
End
; >>>> Fin programme
Pour ne changer que la première chaine comme le dit Dobro, le code qui suit permet de changer la change voulu même si la ligne du texte comporte d'autre caractères ce qui n'est pas le cas du code de Kc que je salut ici bien bas !
Code : Tout sélectionner
; >>>> Creation du FichierOrigine
FichierOrigine.S = "c:\c.txt"
CreateFile(1,FichierOrigine)
WriteStringN(1,"Fruit1=banane")
WriteStringN(1,"Fruit2=Pomme")
WriteStringN(1,"Fruit3=ananas et autres")
WriteStringN(1,"Fruit4=Kiwi ")
WriteStringN(1,"Fruit3=ananas")
WriteStringN(1,"Fruit3=ananas")
WriteStringN(1,"Fruit3=ananas")
CloseFile(1)
; >>>> Fin de Creation du FichierOrigine
; >>>> Mise en mémoire dans la chaine ContenuFichier de la totalité du FichierOrigine"
rc.S = Chr(13)+Chr(10) ; Retour Chariot
OpenFile(1,FichierOrigine)
Repeat
ContenuFichier.S + ReadString(1)+rc
Until Eof(1)
; >>>> Fin Mise en mémoire dans la chaine ContenuFichier de la totalité du FichierOrigine"
; >>>> Affichage
MessageRequester("Chaine Source",ContenuFichier)
; >>>> Affichage
; >>>> Substitution de la chaine
ExpressionRechercher.S = "Fruit3=ananas"
ExpressionQuiRemplace.S ="Fruit3=orange"
Position = FindString(ContenuFichier,ExpressionRechercher,1)
ContenuFichier = Left(ContenuFichier,Position-1)+ ExpressionQuiRemplace + Mid(ContenuFichier,Position+Len(ExpressionQuiRemplace),Lof(1))
; >>>> Fin Substitution de la chaine
; >>>> Affichage
MessageRequester("Chaine modifiée",ContenuFichier)
; >>>> Affichage
; >>>> Ecriture de la nouvelle chaine
FileSeek(1,0)
WriteString(1,ContenuFichier)
CloseFile(1)
End
; >>>> Fin programme
Dernière modification par Brossden69 le mar. 18/sept./2007 9:02, modifié 3 fois.
- Kwai chang caine
- Messages : 6989
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
-
- Messages : 14
- Inscription : mar. 18/sept./2007 8:17
Devine !
Kwai machin truc chose !

Mon compte d'origine se trouve bloqué par ce que j'ai changé mon adresse email ........
Kwai machin truc chose !

Mon compte d'origine se trouve bloqué par ce que j'ai changé mon adresse email ........

Dernière modification par Brossden69 le mar. 18/sept./2007 9:03, modifié 1 fois.
- Kwai chang caine
- Messages : 6989
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
-
- Messages : 14
- Inscription : mar. 18/sept./2007 8:17
-
- Messages : 14
- Inscription : mar. 18/sept./2007 8:17
@ Dobro je ne t'ai pas attendu !! mdr
mais comme je ne peux me passer trés longtemps de vos délires associes aux miens, j'ai pris un nouveau pseudo, provisoir, qui ne laisse pas de doute sur l'original !
C'est BROSSDEN sans T !! DOBRO
BROSS étant le début de mon nom de Famille et DEN le début de Denis !
mais comme je ne peux me passer trés longtemps de vos délires associes aux miens, j'ai pris un nouveau pseudo, provisoir, qui ne laisse pas de doute sur l'original !
C'est BROSSDEN sans T !! DOBRO
BROSS étant le début de mon nom de Famille et DEN le début de Denis !
- Kwai chang caine
- Messages : 6989
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
faut reconaitre qu'il y a un jeux de mot a faire, c'etait bien ton but non ?Brossden69 a écrit :@ Dobro je ne t'ai pas attendu !! mdr
mais comme je ne peux me passer trés longtemps de vos délires associes aux miens, j'ai pris un nouveau pseudo, provisoir, qui ne laisse pas de doute sur l'original !
C'est BROSSDEN sans T !! DOBRO
BROSS étant le début de mon nom de Famille et DEN le début de Denis !

-
- Messages : 14
- Inscription : mar. 18/sept./2007 8:17