Pb dans mon programme ??

Résolu
extrastouf Messages postés 10 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 23 juin 2005 - 23 juin 2005 à 10:10
extrastouf Messages postés 10 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 23 juin 2005 - 23 juin 2005 à 11:52
bonjour ,

j'ai un petit problème, j'essaye de faire la chose suivante :

Dans un fichier texte, j'ai les informations suivantes :

GOTO -171.00000, 44.00000, 419.99800
GOTO -126.00000, 44.00000, 419.

les nombres correspondent à des coordonnées et je voudrais mettre devant chacun d'eux la direction correspondante :

GOTO X-171.00000, Y44.00000, Z419.99800
GOTO X-126.00000, Y44.00000, Z419.99800

J'ai essayé de faire un programme (avec mon peu de connaissances en programmation) en jouant sur les espaces entre les données, c'est à dire que je comptes les espaces vides afin de savoir si je suis sur X Y ou Z (les lignes du texte sont tjrs identique a ce niveau là)
Dans un premier temps, je prends chaque ligne, et pour chaque ligne je passe en revue chaque caractère et si c'est un espace vide alors j'incrémente un compteur et selon son numéro je remplace l'espace vidre par X Y ou Z, mais ca ne marche pas....je ne comprens pas pourquoi...
alors si qq'un peut m'aider.... merci d'avance

voici le programme :

Sub main()


Dim chemin1 As String
chemin1 = "Z:\pc\Dossiers_personnels\Combe\testpp.txt"
Dim chemin2 As String
chemin2 = "Z:\pc\Dossiers_personnels\Combe\testpp2.txt"
Dim a As String


Open chemin1 For Input As #1
Open chemin2 For Output As #2


While Not EOF(1)


Line Input #1, ligne


longueurchaine$ = Len(ligne)


j = 0


For i = 1 To longueurchaine$


a = Mid$(ligne, i, 1)

If a = " " Then

j = j + 1

If j = 1 Then
ligne = Replace(ligne, a, "X")
GoTo 10
End If
If j = 2 Then
ligne = Replace(ligne, a, "Y")
GoTo 10
End If
If j = 3 Then
ligne = Replace(ligne, a, "Z")
GoTo 10
End If

End If

10

Next


Print #2, ligne


Wend


Close #1
Close #2


End Sub

3 réponses

spa666 Messages postés 39 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 24 février 2006
23 juin 2005 à 11:15
Le probleme c est la commande "Replace" : elle remplace TOUS les espaces des le premier passage.
En fait, il faut lui indiquer qu il n y a qu un espace a remplacer :
ligne = Left(ligne, i) & Replace(ligne, a, "X", i, 1)
3
extrastouf Messages postés 10 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 23 juin 2005
23 juin 2005 à 11:21
ok je ne savais pas comment l'écrire en Vb, mercie beaucoup !
0
extrastouf Messages postés 10 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 23 juin 2005
23 juin 2005 à 11:52
par contre maintenant je voudrais mettre les X Y ou Z devant le nombres, en fait je voulais me servir de la virgule comme point de repère pour savoir a quel moment il y avait une coordonnées....
0
Rejoignez-nous