Acces a un fichier sequentiel

cs_oligator Messages postés 3 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 18 octobre 2003 - 10 sept. 2003 à 17:25
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 - 10 sept. 2003 à 23:59
Ma question est simple.

J'ai un fichier texte qui comprend des coordonnées

EX: 250 50
150 30
30 60

Une fois le fichier ouvert je veux pouvoir lire les données ligne par ligne et je veux stocker ces coordonnées dans un tableau dynamique a deux dimensions.
Je ne sais pas comment faire pour placer le premier nombre d'une ligne dans le tableau (ex: T(1, 1) 250 et ensuite lire le deuxieme nombre de la ligne et le stocker ailleurs dans le tableau (ex : T(1, 2) 50).

merci oli

5 réponses

cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
10 sept. 2003 à 18:01
Bonjour

Qui a créé le fichier texte ? Toi ? Il est tout fait ?
0
trigoutte Messages postés 4 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 29 septembre 2003 2
10 sept. 2003 à 18:21
Open "nom_de_fichier" For Input As 1 'ouverture du fichier
i=0
Do While Not EOF(1) ' Vérifie si la fin du fichier est atteinte.
Line Input #1, a,b ' Lit les lignes de données.
tab(i,1)=a
tab(1,2)=b
i=i+1
Loop
close #1

Normalement, ça marche
Jerome
0
S2R Messages postés 25 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 17 novembre 2004
10 sept. 2003 à 18:39
je pense pas que ce soit le plus efficace, mais ça peut aider...
le tableau s'appelle T, le fichier est c:\données.txt
(j'ai vb5 mais je pense que ça marche avec les autres)

Dim tmp As String, i As Integer, nombre As String
Dim x As Integer, y As Integer
x = 1
y = 1
Open "c:\données.txt" For Input As #1
Do
Input #1, tmp
i = 1
Do
If Mid(tmp, i, 1) = " " Then
t(x, y) = CInt(nombre)
x = x + 1
nombre = ""
Else
nombre = nombre & Mid(tmp, i, 1)
End If
i = i + 1
Loop While i <= Len(tmp)
t(x, y) = CInt(nombre)
nombre = ""
x = 1
y = y + 1
Loop Until EOF(1)
Close #1

l'idée c'est de prendre chaque ligne, et de copier les carractères tant qu'on a pas un espace, si on en a un, on met dans le tableau, puis on passe à l'élément suivant du tableau, ...

voilà, j'espère que ça t'aide....
(je l'ai essayé, ça fonctionne :-))
0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
10 sept. 2003 à 22:55
Line Input lit une ligne : a ou b mais pas a, b
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
10 sept. 2003 à 23:59
Bonsoir

Si tu es sûr que chaque ligne du fichier contient 2 nombres séparés par un(des) espace(s) ou une(des) tabulation(s) ou une virgule :

Dim Tableau() As Integer 'si ce sont des entiers
Dim i As Integer 'compteur
Open "C:\fichier.txt" For Input As #1
Do While Not EOF(1)
Input #1, a, b
i = i + 1
ReDim Preserve Tableau(1 To 2, 1 To i)Tableau(1, i) a: Tableau(2, i) b
Loop
Close 1

Le premier indice (1 To 2) est le numéro de colonne (car on ne peut pas le redimensionner) ; le second indice est le numéro de ligne
0
Rejoignez-nous