Problème avec SEEK & LINE INPUT

Funkky Messages postés 8 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 3 mars 2011 - 3 mars 2011 à 15:29
Funkky Messages postés 8 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 3 mars 2011 - 3 mars 2011 à 17:39
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

Taur33 Messages postés 85 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 20 mai 2011
3 mars 2011 à 16:35
Essaye en remplacant seek #1,4 par Ligne.Substring(4,1)
0
Funkky Messages postés 8 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 3 mars 2011
3 mars 2011 à 16:59
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
0
Taur33 Messages postés 85 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 20 mai 2011
3 mars 2011 à 17:33
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)
0
Funkky Messages postés 8 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 3 mars 2011
3 mars 2011 à 17:37
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.
0

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

Posez votre question
Funkky Messages postés 8 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 3 mars 2011
3 mars 2011 à 17:39
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
0
Rejoignez-nous