OVH Cloud OVH Cloud

komprend pas !! :(

3 réponses
Avatar
FooB
voici un bout de code qui normalement devrait remplir les variables
sChaine() et sNum() mais erreur "9 Index en dehors de la plage". l'erreur se
situe après "---->"


Dim sChaine() As String
Dim sNum() As String
Dim sFile as String

sFile = App.Path & "\accounts.cfg" 'chemin et nom du fichier

iDo = 0 'initialisation
lFile = FreeFile 'freefile

Open sFile For Input As #lFile
While Not EOF(lFile)
iDo = iDo + 1
Line Input #lFile, sTmpChaine
Line Input #lFile, sTmpNum
----> sChaine(iDo) = sTmpChaine
----> sNum(iDo) = sTmpNum
Wend
Close #lFile


Quel est le problème ??

3 réponses

Avatar
Stéphane Maillard
Bonjour,

Normal vos tableau ne sont pas initialisé, essayez avec un Redim ou Redim Preserve.

--

Cordialement

Stéphane Maillard
"FooB" a écrit dans le message de news:
| voici un bout de code qui normalement devrait remplir les variables
| sChaine() et sNum() mais erreur "9 Index en dehors de la plage". l'erreur se
| situe après "---->"
|
|
| Dim sChaine() As String
| Dim sNum() As String
| Dim sFile as String
|
| sFile = App.Path & "accounts.cfg" 'chemin et nom du fichier
|
| iDo = 0 'initialisation
| lFile = FreeFile 'freefile
|
| Open sFile For Input As #lFile
| While Not EOF(lFile)
| iDo = iDo + 1
| Line Input #lFile, sTmpChaine
| Line Input #lFile, sTmpNum
| ----> sChaine(iDo) = sTmpChaine
| ----> sNum(iDo) = sTmpNum
| Wend
| Close #lFile
|
|
| Quel est le problème ??
|
|
Avatar
François Picalausa
Bonjour/soir,

Après avoir vu le fchier en privé, l'erreur était un rien différente...
Il y avait bien une erreur de ligne impair mais uniquement à cause d'un code
ASCII 26, le caractère de fin de fichier, au ilieu de la troisième ligne...
En lecture binaire, ça fonctionne.

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


Zoury wrote:
merci francois mais j'ai toujours l'erreur de dépassement de fichier
n°62 erreur pour le 2ème line input #lFile !

je ne comprends pas pourquoi je dépasse ???



Tu dois avoir un nombre impair de ligne dans ton fichier...

D'habitude, on test la fin de fichier et si on ne l'a pas atteint, on
la ligne suivante.

Dans ton cas :

Tu vérifies si on est à la fin du fichier
While Not EOF(lFile)





Tu lis une ligne
Line Input #lFile, sTmpChaine





Ici tu ne retest pas et relis... tu connais la suite... BOUM! ;O)
------->Line Input #lFile, sTmpNum








Aussi, je te conseillerais d'adopter la structure Do... Loop au lieu
de While.. Wend. La première étant plus flexible (et plus récente)

Donc :
While Not EOF(lFile)
Wend

Devient :
Do Until EOF(lFile)
Loop


Avatar
Zoury
: merci francois mais j'ai toujours l'erreur de dépassement de fichier n°62
: erreur pour le 2ème line input #lFile !
:
: je ne comprends pas pourquoi je dépasse ???

Tu dois avoir un nombre impair de ligne dans ton fichier...

D'habitude, on test la fin de fichier et si on ne l'a pas atteint, on la ligne
suivante.

Dans ton cas :

Tu vérifies si on est à la fin du fichier
: > While Not EOF(lFile)

Tu lis une ligne
: > Line Input #lFile, sTmpChaine

Ici tu ne retest pas et relis... tu connais la suite... BOUM! ;O)
: > ------->Line Input #lFile, sTmpNum




Aussi, je te conseillerais d'adopter la structure Do... Loop au lieu de While..
Wend. La première étant plus flexible (et plus récente)

Donc :
While Not EOF(lFile)
Wend

Devient :
Do Until EOF(lFile)
Loop

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/