Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Un probleme bizarre...

4 réponses
Avatar
Adam Pietrasiewicz
J'ai un probleme bizarre...

je me suis pose une but - ne plus utiliser On Error Resume next... En
fait dans mon programme (la nouvelle version de mon client mail) je
veux ne pas utiliser de "On Error" du tout. Et pour l'instant ca a
marche - bien que cela exige une attention extreme a ce que l'on
fait.

Mais je suis arrive a un point sur leque je bute - une lecture de
fichier.

En recuperant les mails du serveur je les inscrit dans des fichiers
que je traite par la suite pour les entrer dans la base de donnees. Ce
sont des fichiers texte, comme le mails le sont.

Et ce matin j'ai eu un pb bizarre, du au probleme de communication ou
un probleme sur ma machine. Un fichier ne contenait pas QUE du texte
mais il y a eu du binaire pur et dur. Je ne connais pas la raison de
cette situation (une erreur d'addressage memoire peut etre, ou un
autre, je ne sais pas) mais cela a plante le programme. En fait, je
fais:

Dim Frf As Long
Frf = FreeFile
Open NomDuFichier For Input As Frf
ContenuDuFichier = Input$(LOF(Frf), #Frf)
Close #Frf

et d'habitude cela marche, sauf dans ce cas! La, il m'a dit que la
lecture se faisait APRES la fin du fichier ce qui etait NORMAL car le
fichier contenait du binaire, co qui theoriquement ne devrait JAMAIS
etre le cas, mais cela m'est quand meme arrive!

Est-ce que quelqu'un a une idee comment peut on resoudre ce probleme
sans que je sois oblige d'utiliser On Error?

--
Pozdrawiam
Adam Pietrasiewi

4 réponses

Avatar
François Picalausa
Bonjour/soir,

PEut-etre y avait-il un caractere de fin de fichier dans le binaire?
Pour éviter cela, écrit/lit tes fichiers avec Open For Binary. (Sans compter
que Binary est plus rapide que Input/Output)

Par contre, je te conseille dans les procédures de garder un On Error au
moins pour traiter les erreurs innatendues et les gérer comme il faut (une
fermeture du programme parce qu'il y a eu une erreur de ressources
insuffisante, alors qu'on rédigeait un mail, par exemple, peut etre une
situation génante et on peut éventuellement tenter d'enregistrer le mail non
terminé avant de tout quitter...)

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


"Adam Pietrasiewicz" a écrit dans le message de
news:
J'ai un probleme bizarre...

je me suis pose une but - ne plus utiliser On Error Resume next... En
fait dans mon programme (la nouvelle version de mon client mail) je
veux ne pas utiliser de "On Error" du tout. Et pour l'instant ca a
marche - bien que cela exige une attention extreme a ce que l'on
fait.

Mais je suis arrive a un point sur leque je bute - une lecture de
fichier.

En recuperant les mails du serveur je les inscrit dans des fichiers
que je traite par la suite pour les entrer dans la base de donnees. Ce
sont des fichiers texte, comme le mails le sont.

Et ce matin j'ai eu un pb bizarre, du au probleme de communication ou
un probleme sur ma machine. Un fichier ne contenait pas QUE du texte
mais il y a eu du binaire pur et dur. Je ne connais pas la raison de
cette situation (une erreur d'addressage memoire peut etre, ou un
autre, je ne sais pas) mais cela a plante le programme. En fait, je
fais:

Dim Frf As Long
Frf = FreeFile
Open NomDuFichier For Input As Frf
ContenuDuFichier = Input$(LOF(Frf), #Frf)
Close #Frf

et d'habitude cela marche, sauf dans ce cas! La, il m'a dit que la
lecture se faisait APRES la fin du fichier ce qui etait NORMAL car le
fichier contenait du binaire, co qui theoriquement ne devrait JAMAIS
etre le cas, mais cela m'est quand meme arrive!

Est-ce que quelqu'un a une idee comment peut on resoudre ce probleme
sans que je sois oblige d'utiliser On Error?

--
Pozdrawiam
Adam Pietrasiewi


Avatar
Jean-Marc
"Adam Pietrasiewicz" a écrit dans le message de
news:


J'ai un probleme bizarre...

je me suis pose une but - ne plus utiliser On Error Resume next... En
fait dans mon programme (la nouvelle version de mon client mail) je
veux ne pas utiliser de "On Error" du tout. Et pour l'instant ca a
marche - bien que cela exige une attention extreme a ce que l'on
fait.

Mais je suis arrive a un point sur leque je bute - une lecture de
fichier.

En recuperant les mails du serveur je les inscrit dans des fichiers
que je traite par la suite pour les entrer dans la base de donnees. Ce
sont des fichiers texte, comme le mails le sont.

Et ce matin j'ai eu un pb bizarre, du au probleme de communication ou
un probleme sur ma machine. Un fichier ne contenait pas QUE du texte
mais il y a eu du binaire pur et dur. Je ne connais pas la raison de
cette situation (une erreur d'addressage memoire peut etre, ou un
autre, je ne sais pas) mais cela a plante le programme. En fait, je
fais:

Dim Frf As Long
Frf = FreeFile
Open NomDuFichier For Input As Frf
ContenuDuFichier = Input$(LOF(Frf), #Frf)
Close #Frf

et d'habitude cela marche, sauf dans ce cas! La, il m'a dit que la
lecture se faisait APRES la fin du fichier ce qui etait NORMAL car le
fichier contenait du binaire, co qui theoriquement ne devrait JAMAIS
etre le cas, mais cela m'est quand meme arrive!

Est-ce que quelqu'un a une idee comment peut on resoudre ce probleme
sans que je sois oblige d'utiliser On Error?



Hello,

oui en lisant en mode binaire

Dim Frf As Integer
Dim ContenuDuFichier as String

Frf = FreeFile
Open NomDuFichier For binary As #Frf
ContenuDuFichier = space$(LOF(Frf))
Get #Frf, , ConenuDuFichier
Close #Frf

Jean-Marc
Avatar
Adam Pietrasiewicz
W sobotê 28-lutego-2004 o godzinie 22:24:40 François Picalausa
napisa³/a


Bonjour/soir,



PEut-etre y avait-il un caractere de fin de fichier dans le binaire?
Pour éviter cela, écrit/lit tes fichiers avec Open For Binary. (Sans compter
que Binary est plus rapide que Input/Output)



Ce qui est drole, j'utilise open for binary pour ecrire dans ces
fichiers, mais je n'ai pas pense DU TOUT a lire en binair - merci pour
cette idee!


Par contre, je te conseille dans les procédures de garder un On Error au
moins pour traiter les erreurs innatendues et les gérer comme il faut (une
fermeture du programme parce qu'il y a eu une erreur de ressources
insuffisante, alors qu'on rédigeait un mail, par exemple, peut etre une
situation génante et on peut éventuellement tenter d'enregistrer le mail non
terminé avant de tout quitter...)



OUI! Le On Error vont apparaitre dans mon programme quand je le
finirai, mais pour l'instant je ne les utilise pas. La version
precedente de mon programme etait basee sur la gestion des erreur et
j'ai enfin compris que ce n'etait pas une bonne politique - trop de
choses m'echappaient en passant par les resume next (sans ou avec
enregistrement de l'erreur).

J'ai decide donc d'ecrire la totalite en partant de rien et sans les
On Error. IUne fois que je testerai le pgm sur win 2000, XP et 98 je
vais y ajouter une gestion d'erreur INTELLIGENTE. Ce que j'ai fait
auaparavent etait quand meme BETE.

Par ailleurs je voudrais signaler aux programmeurs VB qui utilisent
encore DAO que j'ai remarque un probleme persistant avec
l'eregistrement de la bibliotheque DAO350.dll sur les Windows 2000 -
mon programme est telecharge par quelqes dizaines personnes par mois
et je vois que les utilisateurs de Win 2000 m'ecrivent souvent au
sujet de pb lies a cette bibliotheque.

Quelqu'un connait-il la raison? Sur XP ce probleme est INEXISTANT. --

Pozdrawiam
Adam Pietrasiewicz
Avatar
Adam Pietrasiewicz
W sobotê 28-lutego-2004 o godzinie 23:53:33 François Picalausa
napisa³/a

Mais au juste, le pigeon v2.0.0 beta, il serait pas un peu cassé? dans
outlook express, quand tu réponds a un message, on dirait que la réponse se
fait au premier message du thread!?



C'est bien possible.

Le Pigeon 2.0.0.beta, qui n'est meme pas encore beta reellement mais
omega, n'est pas teste a fond! Je dirai meme qu'il n'est pas teste DU
TOUT! Mais je travaille sur ce programme que pour le plaisir et
uniquement quand je n'ai rien d'autre a faire, je vous prie donc de
m'excuser.

Il n'y a que moi qui utilise cette nouvelle version pour l'instant, et
en plus la composition des messages marche (a PEU pres) depuis 1
semaine.

Il s'agit probablement du mauvais emplacement des messages-id dans les
references. Je vais regarder. En fait je n'utilise pas de partage en
threads dans la lecture des news (je ne l'ai jamais fait, meme quand
j'utilisais OE) et c'est pour cela que je ne vois pas ce type
d'anomalie. Merci pour l'info.

Peut-etre que tu pourrais enregistrer programmaticalement la dll comme
indiqué dans http://support.microsoft.com/default.aspx?scid=kb;en-us;173091



Oui, je decide de le faire pour toutes les bibliotheques, mais cela
exige la gestion des erreurs par On Error - je vais l'ajouter ca donc
a la fin.

Merci pour tous vos conseils!
--
Pozdrawiam
Adam Pietrasiewi