Remplacement de caractère dans un fichier texte mais seulement sur certaines lig [Résolu]

Signaler
Messages postés
10
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
23 juin 2005
-
Messages postés
10
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
23 juin 2005
-
bonjour,

je suis en train d'essayer de faire un programme permettant de convertir un programme FAO au format APT en format ISO (seulement sur qq fonction simples pour tester)

Par exemple j'ai des lignes dans le fichier texte de la sorte :

GOTO / -171.00000, 44.00000, 419.99800, 0.000000, 1.000000, 0.000000
GOTO / -126.00000, 44.00000, 419.99800, 0.000000, 1.000000, 0.000000
GOTO / 126.00000, 44.00000, 419.99800, 0.000000, 1.000000, 0.000000
GOTO / 126.78036, 44.00000, 419.92114, 0.000000, 1.000000, 0.000000
GOTO / 127.53073, 44.00000, 419.69352, 0.000000, 1.000000, 0.000000
GOTO / 128.22228, 44.00000, 419.32388, 0.000000, 1.000000, 0.000000

je dois remplacer les GOTO par une fonction du type G01 par exemple et je souhaite virer les virgules.
J'arrive sans problèmes a changer le GOTO en G01 mais en revanche je n'arrive pas à supprimer les virgules, en effet, je veux effacer les virgules seulement sur les lignes GOTO sans enlever celle des autres lignes du programme
Comment je peux faire ??
Y a t il un moyen de définir précisément l'emplacement ou je souhaite supprimer ou modifier un caractère par un autre?

En espérant que qq'un pourra m'aider...
Merci d'avance

4 réponses

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
28
j'aurais plutôt traité le fichier Ligne par Ligne,

et non pas caractères par caractères

Les deux fichiers ouverts en même temps, l'un en entrée, l'autre en sortie,

je traite la Ligne et je la réécris.



Open chemin1 For Input As #1

Open chemin2 For Output As #2



While Not Eof (1)



Line InPut #1, texte



If Left$(texte,4) = "GOTO" Then

texte = Replace(texte, "GOTO /", "G01")

texte = Replace (texte,",","")

End If



Print #2, texte



Wend



Close #1

Close #2


Daniel
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 152 internautes nous ont dit merci ce mois-ci

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
28
If Left$(LaLigne,4) = "GOTO" Then

LaLigne = Replace (LaLigne,",","")

End If

Daniel
Messages postés
10
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
23 juin 2005

Comment je peux intégrer ca dans mon programme ?

**************************************
Dim texte As String, carac As String * 1
Dim fichier As Byte
Dim i As Integer
Dim chemin As String


chemin = "Z:\pc\Dossiers_personnels\Combe\testpp.txt"


fichier = FreeFile
Open chemin For Binary Access Read As #fichier
For i = 1 To LOF(1)
Get fichier, i, carac
texte = texte & carac
Next i
Close #fichier


texte = Replace(texte, "GOTO /", "G01")


Kill chemin


fichier = FreeFile
Open chemin For Binary Access Write As #fichier
For i = 1 To Len(texte)
Put fichier, i, Mid$(texte, i, 1)
Next i
Close #fichier


End Sub
*************************************************

Je ne vois pas comment les lignes peuvent être définies là ? dans ce cas, les caractères sont récupérés les uns derrières les autres sans tenir compte des lignes en elle même si ?? suis un peu perdu...dsl
Messages postés
10
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
23 juin 2005

oui en effet c'est ce dont je viens de me rendre compte...
j'ai qq chose qui ressemble a ca, je vais tester et je vais voir.

Merci beaucoup.