Problème avec SEEK & LINE INPUT

Signaler
Messages postés
8
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
3 mars 2011
-
Messages postés
8
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
3 mars 2011
-
Bonjour, dans le bout de code simplifié ci dessous, j'ouvre un fichier txt qui contient 4 lignes qui ont les valeurs suivantes: lng1,lng2,lng3,lng4

J'éxécute ensuite le code suivant:

Open ("C:\test.txt") For Input As #1
For i=1 to 4
Line Input #1, ligne
Msgbox ligne
Next i 
Close #1


Jusque là tout va bien, ma msgbox me renvoie bien successivement "lng1", "lng2"...

Maintenant j'ai besoin de ne lire que le 4ème caractère sur ma ligne (en l'occurence 1, 2, 3 et 4) j'utilise donc un seek comme ci-dessous:

Open ("C:\test.txt") For Input As #1
For i=1 to 4
Line Input #1, ligne
Msgbox ligne
Seek #1, 4
Num_Ligne=input(1,#1)
Msgbox Num_Ligne
Next i
Close #1


Lors du 1er passage de boucle, j'obtiens le résultat attendu c'est à dire ligne="lng1" et Num_Ligne="1" mais lors du 2ème, 3ème et 4ème passage, j'obtiens ligne="" et Num_Ligne="1"

C'est la 1ère fois que j'utilise la fonction Seek donc apparemment soit je n'ai pas très bien compris son fonctionnement, soit j'ai oublié une étape ou un paramètre ou alors Seek n'est pas approprié à mon besoin...

Quelqu'un aurait-il une idée du problème svp?

Merci d'avance.

5 réponses

Messages postés
85
Date d'inscription
vendredi 24 septembre 2010
Statut
Membre
Dernière intervention
20 mai 2011

Essaye en remplacant seek #1,4 par Ligne.Substring(4,1)
Messages postés
8
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
3 mars 2011

J'ai un "Unvalid Qualifier", comment tu déclares ta variable 'ligne' ? car moi je l'ai laissé en string. Par contre, il y aurait pas une déclaration spécifique pour utiliser substring??

merci
Messages postés
85
Date d'inscription
vendredi 24 septembre 2010
Statut
Membre
Dernière intervention
20 mai 2011

c'est en vb.net mais en vb 6 il y aussi substring ou equivalent je crois Ca renvoie une sous chaine d'une chaine ou sinon y a Left(4,1)
Messages postés
8
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
3 mars 2011

Oui en fait il suffisait d'utiliser la fonction 'left' et surtout 'Mid' car ce sont de très longues chaines de caractères sans séparateur...

Le problème est donc réglè, merci de ton aide.

Bonne soirée.
Messages postés
8
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
3 mars 2011

Pour ceux que ça intéresse voici donc comment il fallait faire:

Open ("C:\test.txt") For Input As #1

For i=1 to 4

Line Input #1, ligne
Msgbox ligne

Num_Ligne = Mid(ligne, 4, 1)
Msgbox Num_Ligne

Next i

Close #1