Manipulation fichiers texte : erreur 67

pulpul74 Messages postés 77 Date d'inscription jeudi 11 octobre 2007 Statut Membre Dernière intervention 27 septembre 2010 - 8 juil. 2008 à 17:10
bonjourcheval Messages postés 228 Date d'inscription mercredi 13 décembre 2000 Statut Membre Dernière intervention 8 août 2011 - 10 juil. 2008 à 22:25
Bonjour,
Je viens d'avoir une erreur qui me préoccupe grandement.
J'explique mon cas:
J'ai 5 programmes vb qui tournent sur un pc. Tous ouvre ou copie un fichier texte à un moment ou à un autre. En tout, avec tous les programmes, je doit manipuler au maximum 25 fichier texte. Les traitement dans ces fichiers sont simple, juste des lecture, parfois je lit tout un fichier et je le réécris, mais bon rien de bien méchant.Voila pour la présentation.
Le problème, c'est que au bout d'un petit moment (1 semaine par exemple), il m'arive de trouver une erreur d'execution 67 : trop de fichiers. Pour l'instant, je ne l'ai vu que 2 fois, et sur 2 programmes différents.
Mais je ne vois pas pourquoi il me met ca, sachant que je ne gère pas tant de fichiers que ca, je les referme (je recherche si a un endroit je le fait pas bien, mais pour l'instant rien), et surtout comment régler ce problème...
Si vous avez une idées de la chose, cela m'aiderai bien!! merci d'avance

15 réponses

bonjourcheval Messages postés 228 Date d'inscription mercredi 13 décembre 2000 Statut Membre Dernière intervention 8 août 2011
8 juil. 2008 à 17:44
Je ne suis sur de rien, mais il est possible que tu oublies de fermer tes fichiers à quelques endroits dans ton code

Alors, apres x jours, ton freefile dépasse 255 et il fait une erreur.

C'est une supposition, rien n'est certain dans ce que je viens de dire =)
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
8 juil. 2008 à 18:42
salut,

[infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
pulpul74 Messages postés 77 Date d'inscription jeudi 11 octobre 2007 Statut Membre Dernière intervention 27 septembre 2010
9 juil. 2008 à 09:43
Oui merci pour vos réponses.
Cette explication de msdn, je l'avait déja lu, mais ca m'aidais pas beaucoup parce que je ne sais pas combien est la limite.
Alors d'après ce que dit bonjourcheval, la limite est de 255??
Sinon oui j'ai vérifié, les fichiers sont tous fermés... enfin en théorie...
Parce que je viens de voir dans un programme (faut que je vérifie les autres), qu'il peut y avoir une coquille.
J'ai dans un sub un 'On error goto...' et dans ce sub, j'appelle une fonction qui lit un fichier, et je sais que cette fonction plante parfois dans le 'input'... donc le 'close' est sauté, donc le fichier ne serait pas fermé correctement... Mais voila, je ne pense pas arriver à 255 erreurs, j'archive ces erreurs et je suis loin du compte...
0
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
9 juil. 2008 à 15:24
Salut,
Tes programmes tournent en continu non stop 24/24?
sinon au close de ton programme tu fait une rappel de tout fermer au moins la tu es sure que tous tes fichiers seront fermés.

S.L.B.
<hr />
0

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

Posez votre question
pulpul74 Messages postés 77 Date d'inscription jeudi 11 octobre 2007 Statut Membre Dernière intervention 27 septembre 2010
10 juil. 2008 à 09:46
Oui ils marchent 24H/24, a part 1 que je lance que quand j'ai besoin.
Mais oui si je n'arrive pas à solutionner ca, je pense que le redemarrage des programmes sera nécessaire...
Je vais mettre en place mon petit correctif, et je vais attendre voir ce qu'il va me dire....
Sinon concernant le nombre de fichier ouvrable par VB, c'est bien 255? je n'ai pas trouvé cette info...
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
10 juil. 2008 à 11:44
511
voir la fonction freefile qui accepte un argument

Mais voila, je ne pense pas arriver à 255 erreurs, j'archive ces erreurs et je suis loin du compte...
sans douter de ta gestion d'erreur, sachant que si tu as un erreur d'ouverture tu en fermes pas, on est aussi en droit de penser que la gestion n'archive pas ce "genre d'erreur" ^^

comment attribues-tu les numéros d'ouverture de fichier?
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
pulpul74 Messages postés 77 Date d'inscription jeudi 11 octobre 2007 Statut Membre Dernière intervention 27 septembre 2010
10 juil. 2008 à 14:14
Pour ma gestion, j'utilise un 'On error goto', et donc à l'étiquette,j'écris dans un fichier la ligne de l'erreur survenue. Cette fonction marche bien car je n'ai pas d'erreur avec celle ci. Le fait que la fonction en cause face une erreur est que ce fichier texte est en meme temps écris par un autre programme que VB, donc je pense que parfois les 2 programmes ce gènent.
Pour l'attribution des numéros d'ouverture, j'utilise freefile. Donc de ce coté là je ne pense pas qu'il y ait de problème.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
10 juil. 2008 à 14:36
...sauf si 255 sont ouverts en même temps (possible?)
il faut utiliser =freefile(1) pour aller de 256 à 511
0
pulpul74 Messages postés 77 Date d'inscription jeudi 11 octobre 2007 Statut Membre Dernière intervention 27 septembre 2010
10 juil. 2008 à 15:40
Non ce n'est pas possible (sauf si je ne referme pas bien les fichiers en tout cas à force peut etre). Je n'ouvre que 25 fichiers en tout (tous les programmes VB confondu).
Mais je pense sincerement que c'est ma boucle qui n'était pas terminée qui ne me fermée pas bien le fichier, mais je ne voit pas comment j'ai pu arriver à 511 fichiers d'ouvert. Mais j'ai fait une boucle de debug qui va comptait le nombre de fichier ouvert par programme, je vais voir dans quelques jours ce que ca donnera...
0
bonjourcheval Messages postés 228 Date d'inscription mercredi 13 décembre 2000 Statut Membre Dernière intervention 8 août 2011
10 juil. 2008 à 15:46
Comme mon post disait au début du topic, si on oublie de fermer un fichier à 1 seul emplacement dans ce projet, comme il ouvre et fermer des fichiers régulièrement, le freefile augmenterait tranquilement, jusqu'à ce qu'il atteigne 255 et bug.

Pulpul74, tu pourrais mettre un espion sur ton freefile et vérifier, par exemple, toute les 2 heures s'il a augmenterOu bien mettre un label qui affiche le freefile.

Ça te permetterait de voir si l'erreur viens de du freefile
0
pulpul74 Messages postés 77 Date d'inscription jeudi 11 octobre 2007 Statut Membre Dernière intervention 27 septembre 2010
10 juil. 2008 à 17:28
Oui c'est ce que j'ai fait il y a quelque jours, je viens d'y revenir, et en effet, il me marquait que 88 fichiers étaient ouvert. Et j'avais 87 erreurs dans la fameuse fonction qui générait des erreurs.
Je pense que le problème est ciblé, j'ai donc mis dans cette fonction au début un 'On error resume next'. Je vais bien voir ce que ca me donne.
En tout cas merci de vos réponses et de vous etes préoccupé de mon problème. Si jamais ca persiste je reposterais, mais là je pense que c'est bon.
0
bonjourcheval Messages postés 228 Date d'inscription mercredi 13 décembre 2000 Statut Membre Dernière intervention 8 août 2011
10 juil. 2008 à 18:03
Alors d'après ce que dit bonjourcheval, la limite est de 255??

Juste pour préciser de où je tiens cette information

Je crois que c'est 255, car j'avais fait une boucle infinie une fois et j'avais une ouverture de fichier dedans sans avoir de fermeture, et le programme avait planté à cause du freefile qui était rendu à 255. Donc, j'en ai déduis que 255 est la limite =)

Voilà.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
10 juil. 2008 à 21:42
bonjourcheval
-> la limite est celle accordée par FREEFILE
FREEFILE(0) est de 1 à 255
FREEFILE(1) est de 256 à 511

l'argument (0 1) étant optionnel, on utilise toujours JUSTE de 1 à 255, ce qui ne veut pas dire que FREFFILE limite à 255 ;)

voilà pour la petite précision, elle aussi disponible dans la MSDN (locale ou online)
0
bonjourcheval Messages postés 228 Date d'inscription mercredi 13 décembre 2000 Statut Membre Dernière intervention 8 août 2011
10 juil. 2008 à 22:04
J'avais envie de dire que même si on utilise le freefile(1), ça fait une limite de 255 fichiers :  511 - 256  = 255 , mais je ne le dirai pas xD
Mais bon, la limite réelle serait dont de 310 si on utilise les 2 freefiles!!

Enfin, je crois que nous avons fait le tour du sujet :)

On devrait faire un tutoriel qu'on pourrait appeler : Comment faire pour ouvrir 310 fichier en meme temps!

Ça cerait super pertinent en plus! Tous ceux qui ont 255 fichiers à ouvrir n'aurait plus à avoir peur d'en avoir 1 de plus à ouvrir.

Bon, je te laisse faire le tuto xD
0
bonjourcheval Messages postés 228 Date d'inscription mercredi 13 décembre 2000 Statut Membre Dernière intervention 8 août 2011
10 juil. 2008 à 22:25
Wow, 255 + 255 = 310

Replace(AutrePost,"310","510") 

<,<
0
Rejoignez-nous