Editer un fichier texte

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Atomo
Messages : 207
Inscription : lun. 17/sept./2007 12:27

Editer un fichier texte

Message par Atomo »

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.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Bonjour ATOMO

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) 
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.
Atomo
Messages : 207
Inscription : lun. 17/sept./2007 12:27

Message par Atomo »

Merci pour ta réponse Kwai, je vais essayer de faire comme ca.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

comme le fait Kcc mais en utilisant Findstring() qui est fait pour ça !! :)
Brossden69
Messages : 14
Inscription : mar. 18/sept./2007 8:17

Message par Brossden69 »

Un petit bout de code pour expliquer comment changer toutes les occurences en un seul passage !

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.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Brosden69 ? 8O
Petit nouveau ou vieille baderne ? :lol:
Brossden69
Messages : 14
Inscription : mar. 18/sept./2007 8:17

Message par Brossden69 »

Devine !

Kwai machin truc chose !

:lol:

Mon compte d'origine se trouve bloqué par ce que j'ai changé mon adresse email ........ :cry:
Dernière modification par Brossden69 le mar. 18/sept./2007 9:03, modifié 1 fois.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Heuu, j'ai des doutes :roll:
:lol: :lol: :lol:
Brossden69
Messages : 14
Inscription : mar. 18/sept./2007 8:17

Message par Brossden69 »

:lol:

Regarde quand même mes deux précédents posts je les ai modifiés !
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Kwai chang caine a écrit :Heuu, j'ai des doutes :roll:
:lol: :lol: :lol:
ben oui :) c'est bien notre bon vieux brossdent !! (j'ai verifié les ip !! :D)

tu devrai demander a Fred de faire quelques chose , genre modifier ton email dans ton profil "Brossdent", en mettant ton adresse actuelle !! :)
Brossden69
Messages : 14
Inscription : mar. 18/sept./2007 8:17

Message par Brossden69 »

@ 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 !
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

A ne pas confondre avec la celebre et désormais obsolete émission de naguy.

Quoi qu'il en soit que ce soit à la télé ou bien au forum pure :
N'oubliez pas votre "brosse dent" :lol: :lol:

Je ne la ferais plus c'est promis, mais la avec la faute de frappe de DOBRO, j'avais trop envie :oops:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

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 !
faut reconaitre qu'il y a un jeux de mot a faire, c'etait bien ton but non ? :lol:
Brossden69
Messages : 14
Inscription : mar. 18/sept./2007 8:17

Message par Brossden69 »

Pour Mes 150 Kg de Kcc !
Tu peux tout te permettre tu sais bien entre nous pas ce PB ! :P

Pour Dobro :
:lol:
Re Devine !
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

et 69 c'est que tu es Lyonnais ou que tu es passionné de .......... numérologie ?
Répondre