[VB6]Problème fichier

Résolu
aurelien2723 Messages postés 181 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 26 janvier 2011 - 10 mai 2006 à 09:51
aurelien2723 Messages postés 181 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 26 janvier 2011 - 6 juin 2006 à 10:34
Salut!!

Je fais un petit programme en VB6.

J'ai une erreur de compilation incompréhensible....
Surtout que j'utilises exactement le même code dans un autre projet....

Alors voici le bout de code :

' on ouvre le fichier en texte pour corriger les bugs d'Excel
fluxTmp = FreeFile()
Open LireINI("BR7", "PathOut") + "BR7.txt" For Input As #fluxTmp
texte = Input(LOF(fluxTmp), fluxTmp)
Close fluxTmp
texte = Replace(texte, Chr(34) + Chr(34) + Chr(34), Chr(34))

J'ai une erreur sur texte = Input(LOF(fluxTmp), fluxTmp) qui me dit :
Erreur 68 :
L'entrée dépasse la fin de fichier

Sachant que la fonction LireINI est ok puisqu'utilisé avant dans le code correctement

Si quelqu'un peut m'aider svp

Merci bien :)

19 réponses

aurelien2723 Messages postés 181 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 26 janvier 2011 1
6 juin 2006 à 10:34
Salut!

J'avais toujours ce problème. Je viens de me rendre compte que les fichiers texte n'étaient identiqes qu'en apparance en fait. En les ouvrant avec un éditeur de texte, celui qui créé le bug était différent, et donc avait certainement un caractère 1A ou autre qui faisait bugger....
Un gros c'était un bug de boulet....

désolé.
Merci beaucoup pour l'aide
@+
3
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
10 mai 2006 à 10:16
Heeeeeee, le fichier que tu lit n'est pas vide par hasard? Oui je sais c une question béte mais une erreur est si vite venu. Si non je ne vois pas de problème dans ton bout de code. Verifi ce que te renvoie ta fonction LireINI(...), des fois que le fichier pointer n'est pas celui que tu crois.

D'oh! Nuts!
Mmmmm...
DONUTS
0
aurelien2723 Messages postés 181 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 26 janvier 2011 1
10 mai 2006 à 11:36
J'ai testé en passant par une variable temporaire, le chemin du fichier est correct... :(

Help me please
0
aurelien2723 Messages postés 181 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 26 janvier 2011 1
10 mai 2006 à 12:07
Enfait j'ai testé avec mon autre fichier texte, et la pas de soucis....

Peut-etre parceque je ferme mal??
0

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

Posez votre question
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
10 mai 2006 à 13:29
Ba, à chaque open #x il faut un close #x (moi je ferme les fichiers dé que j'ai fini de travailer dessus, quite à le ré-ouvrir plus loin)

D'oh! Nuts!
Mmmmm...
DONUTS
0
aurelien2723 Messages postés 181 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 26 janvier 2011 1
10 mai 2006 à 14:40
oui c'est ce que je fais, le problème est que le message d'erreur est avant le close
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
10 mai 2006 à 14:57
extrait de l'aide de VB :
--------------------------------
Important En mode Binary, Input et
Random, vous n'êtes pas obligé de fermer un fichier avant de l'ouvrir
sous un autre numéro de fichier. En mode Append et Output, vous
devez fermer un fichier avant de l'ouvrir sous un autre numéro de fichier.
--------------------------
tu ouvre dans ta fonction en "Input" donc pas de souci pour l'ouvrir plusieur fois (a moin qu'il soit ouvert en Output ou Append avant, peut être même que tu aura un problème si tu cherche à ouvrir en Output et que il est déja ouvert en Input????)

Essais avec un fichier plus petit (le fichier est peut être trop gros pour tenir dans une seul variable)

LOF renvoi la taille du fichier (en carac? moi j'ai déja eu des problèmes avec les retour à la ligne "chr(13) & chr(10)" reconu comme un carac ou deux carac suivant les fonctions, peut être que????)
au lieu de "texte = Input(LOF(fluxTmp), fluxTmp)" test :
-------------------
dim Temp as string
text = ""
do while EOF(fluxTmp)
line input #fluxTmp, temp
test = test & temp & chr(13) & chr(10) 'verif si chr(10) est nesesaire (je le pense)
loop
--------------------

D'oh! Nuts!
Mmmmm...
DONUTS
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
10 mai 2006 à 14:58
Je pense que c'est LOF qui posse problème car ton erreur est "L'entrée dépasse la fin de fichier"

D'oh! Nuts!
Mmmmm...
DONUTS
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
10 mai 2006 à 15:00
Heeeeeee perdon j'ai valider sans avoir fini.


Je pense que c'est LOF qui posse problème car ton erreur est "L'entrée dépasse la fin de fichier" donc c'est que tu cherche à lire plus loin que la fin du fichier.

Pense à valider la(les) rèponce(s) qui t'on permis de résoudre ton problème.

D'oh! Nuts!
Mmmmm...
DONUTS
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
10 mai 2006 à 15:16
je crois que je suis fatigué. Plein de faute dans le bout de code plus haut
-------------------
dim Temp as string
texte = ""

do while EOF(fluxTmp)
line input #fluxTmp, temp
texte
= texte
& temp & chr(13) & chr(10) 'verif si chr(10) est nesesaire (je le pense)
loop
--------------------

D'oh! Nuts!
Mmmmm...
DONUTS
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
10 mai 2006 à 16:17
Alors ça marche?

D'oh! Nuts!
Mmmmm...
DONUTS
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
11 mai 2006 à 00:40
Salut,



Tu lis certainement un fichier binaire, qui contient un caractère de fin chr$(26)
donc impossible de le lire en Input

tu dois le lire en binary


Daniel
0
aurelien2723 Messages postés 181 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 26 janvier 2011 1
11 mai 2006 à 11:10
Salut!

J'ai testé ton code Polack77 , la variable temp est vide ... (je la remet dans le fichier après et celui ci est vide)
Le fichier n'est pas binaire, il est enregistrer en txt avec Excel dans le même programme.

J'ai le même code a coté qui lui marche... Avec un fichier plus gros...
0
aurelien2723 Messages postés 181 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 26 janvier 2011 1
11 mai 2006 à 11:36
Y'avais une tite erreur dans ton code

do while EOF(fluxTmp) = false

Je me retrouve avec un fichier qui a 19ko de caractère identiques après

' on referme et sauvegarde le fichier avec les modifications
Open LireINI("BR7", "PathOut") + "BR7.txt" For Output As #fluxTmp
Print #fluxTmp, texte
Close fluxTmp


merci pour votre aide :)

ca marche toujours pas :(
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
11 mai 2006 à 11:41
Oui désol on contigue temps que le fichier n'est pas terminer!!!!

"ca marche toujours pas :(" ?????????????????????????????????
Ques qui marche pas si arive à lire ton fichier????????????

D'oh! Nuts!
Mmmmm...
DONUTS
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
11 mai 2006 à 11:45
je maintiens, la seule façon d'avoir ce message, c'est d'avoir le caractère 1A dans le fichier,

c'est pas une question de taille de fichier.

il suffit de chercher avec un éditeur hexa.

Daniel
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
11 mai 2006 à 11:52
Daniel tu veut dire que en ouvrant simplement le ficheir avec :
open "Machin.ext" for binary access right as #x
on poura le lire (avec Input(number, [#]filenumber))
C'est ca???
Peut tu me dire quel est la differance entre un fichier séquentiel et binaire meric

D'oh! Nuts!
Mmmmm...
DONUTS
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
11 mai 2006 à 11:59
non pas avec input mais avec Get

ça passera à tous les coups, quelque soit les caractères du fichier:



Dim Buffer As String



Open Nomfichier For Binary As #1

Buffer = Space$(Lof(1))

Get #1, , Buffer

Close #1


Daniel
0
aurelien2723 Messages postés 181 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 26 janvier 2011 1
11 mai 2006 à 12:02
Ca marche lorsque je met binary ( pas besoin de la boucle de Polack77)

Merci bien :)

Par contre, j'ouvre le fichier pour faire un Replace, qui la, ne fonctionne pas :
fluxTmp = FreeFile()
Open LireINI("BR7", "PathOut") + "BR7.txt" For Binary As #fluxTmp
texte = Input(LOF(fluxTmp), fluxTmp)
Close fluxTmp

texte = Replace(texte, Chr(34) + Chr(34) + Chr(34), Chr(34))

' on referme et sauvegarde le fichier avec les modifications
Open LireINI("BR7", "PathOut") + "BR7.txt" For Output As #fluxTmp
Print #fluxTmp, texte
Close fluxTmp

Merci bien :)
0
Rejoignez-nous