kwadadel
Messages postés6Date d'inscriptionjeudi 4 septembre 2003StatutMembreDernière intervention27 septembre 2006
-
26 sept. 2006 à 18:00
geobasic
Messages postés69Date d'inscriptionjeudi 6 novembre 2003StatutMembreDernière intervention 3 octobre 2006
-
27 sept. 2006 à 16:03
Bonjour
Je suis devant un probleme et je ne sais pas le resoudre.
J'ai un logiciel qui me permets d'enrégistrer un fichier txt donnant les coordonnées d'une courbe.
Moi je dois créer un programme qui puisse aller chercher ce fichier et le lire pour passer le contenu ( les coordonnées) dans une variable de type tableau sous Visual Basic 6. Alors est ce que quelqu'un peux m'aider?
Merci bien
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 26 sept. 2006 à 18:08
Oui
Suffit de poser des questions.
D'un autre côté, lire un fichier texte, il n'y a rien de compliqué.
Suffirait peut-être simplement de charger deux ou trois sources en cherchant ne serait-ce qu'un tout petit peu ...
geobasic
Messages postés69Date d'inscriptionjeudi 6 novembre 2003StatutMembreDernière intervention 3 octobre 2006 26 sept. 2006 à 18:29
Désolé Jack, ça c'est pas une réponse pour un débutant.
Pour lire un fichier texte en VB, instruction standard :
Open CheminFichier for Input as #1
While Not EOF(#1)
LineInput #1,buffer
....
Wend
Close #1
CheminFichier est un zone en String contenant le chemin du fichier à lire
Dans buffer tu récupère chaque ligne de ton fichier texte. A toi de récupérer les données d'une ligne en fonction du format du fichier pour les stocker dans le tableau.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 26 sept. 2006 à 18:51
Re
Ce n'était que la réponse à ta question.
Le reste n'était qu'une constatation.
Je vais donc traduire et poser la vraie question :
"Comment transformer une chaine en tableau quand on connait le séparateur ?"
La réponse est dans 1000 et 1 questions identiques posées sur ce forum, en tapant simplement "texte tableau" dans le menu Rechercher parmi le forum :
Dim monTableau() As String
... ' lecture d'une ligne
monTableau = Split(buffer, monSéparateur)
où la 1ere donnée est dans monTableau(0) et la dernière dans monTableau(UBound(monTableau))
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
kwadadel
Messages postés6Date d'inscriptionjeudi 4 septembre 2003StatutMembreDernière intervention27 septembre 2006 27 sept. 2006 à 14:07
J'ai essayé toutes vos propositions sans avoir le résultat escompté.
Vu mon niveau je ne sais paas si je fais des erreurs mais bon...
je n'ai pas des valeurs dans mon tableau car il faut que je puisse réutiliser ces valeurs dans mon programme.
Merci de me proposer une autre methode
Vous n’avez pas trouvé la réponse que vous recherchez ?
geobasic
Messages postés69Date d'inscriptionjeudi 6 novembre 2003StatutMembreDernière intervention 3 octobre 2006 27 sept. 2006 à 16:03
Ok, Je comprend mieux ton problème. Je pense que tu veux enregistrer toutes les valeurs dans un tableau à deux dimensions. le problème est qu'à priori on ne connait pas le nombre de coordonnées à mémoriser, il dépent du nombre de ligne. Il faudrai traiter le problème en 2 temps. D'abort chercher à savoir le nombre de ligne du fichier. La solution serait de lire le fichier en un seul bloc et charger une première table contenant les lignes, en splitant avec le caractère de fin de ligne. Ensuite on balaye cette table pour en extraire les données, en ayant auparavant redemenssionné la table principale. Cela donnerait quelque chose comme ça:
Dim MonTableau() As String
Dim Buffer As String
Dim Lignes() As String, Valeurs() As String, i As Integer
Open MonFichier For Input As #1
Buffer = Input(LOF(1), 1)
Close #1
Lignes = Split(Buffer, vbCrLf)
ReDim MonTableau(UBound(Lignes), 1)
For i = 0 To UBound(Lignes)
Valeurs = Split(Lignes(i), ",")
If UBound(Valeurs) > -1 Then 'pour éviter les lignes à blanc
MonTableau(i, 0) = Valeurs(0)
MonTableau(i, 1) = Valeurs(1)
End If
Next i