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