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

Erreur inactive sur fichier ???

21 réponses
Avatar
LE TROLL
Bonjour,

J'ai un truc bizarre, que je n'arrive pas à
cerner, ma routine d'erreur semble ne pas
fonctionner, car, quand je tente d'ouvrir un
fichier inexistant, au lieu de débrancher à
l'adresse indiquée en cas d'erreur, il me sort une
erreur système "Fichier inexistant", et pourtant
je fais toujours ainsi, et ça marche ? Voici:

p01k = FreeFile
On Error GoTo erreur1
Open "mpprix.txt" For Input As p01k '
<<<---ERREUR ???
Line Input #p01k, trans
Close p01k
' ...
GoTo fin1
'
erreur1:
On Error Resume Next
Close p01k
p01k = FreeFile
Open "mpprix.txt" For Output As p01k
'...


--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------

10 réponses

1 2 3
Avatar
Gloops
Bonjour,

Et si cette fois le fichier n'avait pas été créé, ou pas bien pro prement
refermé par l'application qui l'a créé (ou une autre) ?

_______________________________________
LE TROLL a écrit, le 28/11/2007 11:27 :
Bonjour,

J'ai un truc bizarre, que je n'arrive pas à
cerner, ma routine d'erreur semble ne pas
fonctionner, car, quand je tente d'ouvrir un
fichier inexistant, au lieu de débrancher à
l'adresse indiquée en cas d'erreur, il me sort une
erreur système "Fichier inexistant", et pourtant
je fais toujours ainsi, et ça marche ? Voici:

p01k = FreeFile
On Error GoTo erreur1
Open "mpprix.txt" For Input As p01k '
<<<---ERREUR ???
Line Input #p01k, trans
Close p01k
' ...
GoTo fin1
'
erreur1:
On Error Resume Next
Close p01k
p01k = FreeFile
Open "mpprix.txt" For Output As p01k
'...




Avatar
Pascal
Bonjour,
suis pas ceratin à 100% mais n'aurait tu pas oublier : #
Open "mpprix.txt" For Input As #p01k '



moi c'est ainsi que j'ouvre

Pascal

"LE TROLL" <le a écrit dans le message de news:

Bonjour,

J'ai un truc bizarre, que je n'arrive pas à
cerner, ma routine d'erreur semble ne pas
fonctionner, car, quand je tente d'ouvrir un
fichier inexistant, au lieu de débrancher à
l'adresse indiquée en cas d'erreur, il me sort une
erreur système "Fichier inexistant", et pourtant
je fais toujours ainsi, et ça marche ? Voici:

p01k = FreeFile
On Error GoTo erreur1
Open "mpprix.txt" For Input As p01k '
<<<---ERREUR ???
Line Input #p01k, trans
Close p01k
' ...
GoTo fin1
'
erreur1:
On Error Resume Next
Close p01k
p01k = FreeFile
Open "mpprix.txt" For Output As p01k
'...


--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------




Avatar
Patrice Henrio
Pascal a écrit :
Bonjour,
suis pas ceratin à 100% mais n'aurait tu pas oublier : #
Open "mpprix.txt" For Input As #p01k '



moi c'est ainsi que j'ouvre

Pascal

"LE TROLL" <le a écrit dans le message de news:

Bonjour,

J'ai un truc bizarre, que je n'arrive pas à
cerner, ma routine d'erreur semble ne pas
fonctionner, car, quand je tente d'ouvrir un
fichier inexistant, au lieu de débrancher à
l'adresse indiquée en cas d'erreur, il me sort une
erreur système "Fichier inexistant", et pourtant
je fais toujours ainsi, et ça marche ? Voici:

p01k = FreeFile
On Error GoTo erreur1
Open "mpprix.txt" For Input As p01k '
<<<---ERREUR ???
Line Input #p01k, trans
Close p01k
' ...
GoTo fin1
'
erreur1:
On Error Resume Next
Close p01k
p01k = FreeFile
Open "mpprix.txt" For Output As p01k
'...


--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------









Pour ma part, j'utilise plutôt un prédicat (une fonction qui renvoie un
booléen) d'existence de fichier


Private Declare Function FindFirstFile Lib "kernel32" Alias
"FindFirstFileA" _
(ByVal lpFileName As String, lpFindFileData As
WIN32_FIND_DATA) As Long

Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As
Long) As Long

Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * 260
cAlternate As String * 14
End Type

Public Function ExisteFichier(Fichier As String) As Boolean
Dim WFD As WIN32_FIND_DATA, hSearch As Long
hSearch = FindFirstFile(Fichier, WFD)
ExisteFichier = (hSearch <> -1)
FindClose (hSearch)
End Function

Fichier comporte le nom du fichier et son chemin d'accès.

A utiliser sous la forme
if existeFichier then
<actions si le fichier existe>
else
<actions si le fichier n'xiste pas>
end if
Avatar
Patrice Henrio
Pascal a écrit :
Bonjour,
suis pas ceratin à 100% mais n'aurait tu pas oublier : #
Open "mpprix.txt" For Input As #p01k '



moi c'est ainsi que j'ouvre

Pascal

"LE TROLL" <le a écrit dans le message de news:

Bonjour,

J'ai un truc bizarre, que je n'arrive pas à
cerner, ma routine d'erreur semble ne pas
fonctionner, car, quand je tente d'ouvrir un
fichier inexistant, au lieu de débrancher à
l'adresse indiquée en cas d'erreur, il me sort une
erreur système "Fichier inexistant", et pourtant
je fais toujours ainsi, et ça marche ? Voici:

p01k = FreeFile
On Error GoTo erreur1
Open "mpprix.txt" For Input As p01k '
<<<---ERREUR ???
Line Input #p01k, trans
Close p01k
' ...
GoTo fin1
'
erreur1:
On Error Resume Next
Close p01k
p01k = FreeFile
Open "mpprix.txt" For Output As p01k
'...


--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------









Pour ma part, j'utilise plutôt un prédicat (une fonction qui renvoie un
booléen) d'existence de fichier


Private Declare Function FindFirstFile Lib "kernel32" Alias
"FindFirstFileA" _
(ByVal lpFileName As String, lpFindFileData As
WIN32_FIND_DATA) As Long

Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As
Long) As Long

Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * 260
cAlternate As String * 14
End Type

Public Function ExisteFichier(Fichier As String) As Boolean
Dim WFD As WIN32_FIND_DATA, hSearch As Long
hSearch = FindFirstFile(Fichier, WFD)
ExisteFichier = (hSearch <> -1)
FindClose (hSearch)
End Function

Fichier comporte le nom du fichier et son chemin d'accès.

A utiliser sous la forme
if existeFichier then
<actions si le fichier existe>
else
<actions si le fichier n'xiste pas>
end if
Avatar
LE TROLL
Bonjour,

Merci, non, je crois que le "#" n'est
obligatoire qu'à l'intérieur, pour l'input_line ou
le print... C'est vrai que VB le met souvent en
démo, mais pour les anglais ça veut dire "mettre
un numéro, une valeur"...

Pour le pointeur pas bien refermé, en fait,
les pointeur je les assigne très méticuleusement,
ils portent toujours le nom de leur form p01, ...
p09, puis une lettre a, b (p01a, p01b), dont je ne
les réutilise pas, justement pour ne pas faire de
salade, qui parfois arrive...

En fait, ce qui se passe, c'est que mon
fichier n'est justement pas créé, puisque je tente
une lecture sur un fichier peut être inexistant (à
la première création)... C'est la façon de savoir
s'il existe de facto. Mais normalement il devrait
avec "on error goto", débrancher à l'erreur, ce
qu'il ne fait pas, là est le problème... En fait,
c'est la gestion d'erreur qui ne marche pas!

J'ai dû provoquer quelque chose de louche en
codant, quelque chose qui perturbe, mais je ne
sais pas quoi, le path est bon aussi, il est
défini dans la même procédure...

J'avais:

on error goto
open...input
-------

Ben là j'ai bétonné:

open Append
close
on error goto
open input
EOF() = true...goto

Là, en force, ça marche, mais bon...








--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Gloops" a écrit dans le
message de news:
%
Bonjour,

Et si cette fois le fichier n'avait pas été créé,
ou pas bien proprement
refermé par l'application qui l'a créé (ou une
autre) ?

_______________________________________
LE TROLL a écrit, le 28/11/2007 11:27 :
Bonjour,

J'ai un truc bizarre, que je n'arrive pas à
cerner, ma routine d'erreur semble ne pas
fonctionner, car, quand je tente d'ouvrir un
fichier inexistant, au lieu de débrancher à
l'adresse indiquée en cas d'erreur, il me sort
une
erreur système "Fichier inexistant", et pourtant
je fais toujours ainsi, et ça marche ? Voici:

p01k = FreeFile
On Error GoTo erreur1
Open "mpprix.txt" For Input As p01k '
<<<---ERREUR ???
Line Input #p01k, trans
Close p01k
' ...
GoTo fin1
'
erreur1:
On Error Resume Next
Close p01k
p01k = FreeFile
Open "mpprix.txt" For Output As p01k
'...




Avatar
LE TROLL
Bonjour,

Merci, non, je crois que le "#" n'est
obligatoire qu'à l'intérieur, pour l'input_line ou
le print... C'est vrai que VB le met souvent en
démo, mais pour les anglais ça veut dire "mettre
un numéro, une valeur"...


--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Pascal" a écrit dans le
message de news:

| Bonjour,
| suis pas ceratin à 100% mais n'aurait tu pas
oublier : #
| > Open "mpprix.txt" For Input As #p01k '
|
| moi c'est ainsi que j'ouvre
|
| Pascal
|
| "LE TROLL" <le a écrit dans le
message de news:
|
| > Bonjour,
| >
| > J'ai un truc bizarre, que je n'arrive pas à
| > cerner, ma routine d'erreur semble ne pas
| > fonctionner, car, quand je tente d'ouvrir un
| > fichier inexistant, au lieu de débrancher à
| > l'adresse indiquée en cas d'erreur, il me sort
une
| > erreur système "Fichier inexistant", et
pourtant
| > je fais toujours ainsi, et ça marche ? Voici:
| >
| > p01k = FreeFile
| > On Error GoTo erreur1
| > Open "mpprix.txt" For Input As p01k '
| > <<<---ERREUR ???
| > Line Input #p01k, trans
| > Close p01k
| > ' ...
| > GoTo fin1
| > '
| > erreur1:
| > On Error Resume Next
| > Close p01k
| > p01k = FreeFile
| > Open "mpprix.txt" For Output As p01k
| > '...
| >
| >
| > --
| > Merci beaucoup, au revoir et à bientôt :o)
| > ------
| > Romans, logiciels, email, site personnel
| > http://irolog.free.fr/joe.htm
|
> ------------------------------------------------------------------------------------
| >
| >
|
Avatar
LE TROLL
Bonjour,

Merci :o)
Oui, mais là on sort un peu de VB, en faisant
ça, alors que ça marche normalemet en vb...

p = FreeFile
On Error GoTo erreur1
Open "nom.txt" For Input As p
close p: goto suite1
erreur1:
On Error Resume Next
Close p ' = inexistant ou vide
...
suite1:





--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Patrice Henrio" a
écrit dans le message de news:
%23$ppC$
| Pascal a écrit :
| > Bonjour,
| > suis pas ceratin à 100% mais n'aurait tu pas
oublier : #
| >> Open "mpprix.txt" For Input As #p01k '
| >
| > moi c'est ainsi que j'ouvre
| >
| > Pascal
| >
| > "LE TROLL" <le a écrit dans le
message de news:
| >
| >> Bonjour,
| >>
| >> J'ai un truc bizarre, que je n'arrive pas
à
| >> cerner, ma routine d'erreur semble ne pas
| >> fonctionner, car, quand je tente d'ouvrir un
| >> fichier inexistant, au lieu de débrancher à
| >> l'adresse indiquée en cas d'erreur, il me
sort une
| >> erreur système "Fichier inexistant", et
pourtant
| >> je fais toujours ainsi, et ça marche ? Voici:
| >>
| >> p01k = FreeFile
| >> On Error GoTo erreur1
| >> Open "mpprix.txt" For Input As p01k '
| >> <<<---ERREUR ???
| >> Line Input #p01k, trans
| >> Close p01k
| >> ' ...
| >> GoTo fin1
| >> '
| >> erreur1:
| >> On Error Resume Next
| >> Close p01k
| >> p01k = FreeFile
| >> Open "mpprix.txt" For Output As p01k
| >> '...
| >>
| >>
| >> --
| >> Merci beaucoup, au revoir et à bientôt :o)
| >> ------
| >> Romans, logiciels, email, site personnel
| >> http://irolog.free.fr/joe.htm
|
>> ------------------------------------------------------------------------------------
| >>
| >>
| >>
| >
|
| Pour ma part, j'utilise plutôt un prédicat (une
fonction qui renvoie un
| booléen) d'existence de fichier
|
|
| Private Declare Function FindFirstFile Lib
"kernel32" Alias
| "FindFirstFileA" _
| (ByVal lpFileName As String,
lpFindFileData As
| WIN32_FIND_DATA) As Long
|
| Private Declare Function FindClose Lib
"kernel32" (ByVal hFindFile As
| Long) As Long
|
| Private Type FILETIME
| dwLowDateTime As Long
| dwHighDateTime As Long
| End Type
|
| Private Type WIN32_FIND_DATA
| dwFileAttributes As Long
| ftCreationTime As FILETIME
| ftLastAccessTime As FILETIME
| ftLastWriteTime As FILETIME
| nFileSizeHigh As Long
| nFileSizeLow As Long
| dwReserved0 As Long
| dwReserved1 As Long
| cFileName As String * 260
| cAlternate As String * 14
| End Type
|
| Public Function ExisteFichier(Fichier As String)
As Boolean
| Dim WFD As WIN32_FIND_DATA, hSearch As Long
| hSearch = FindFirstFile(Fichier, WFD)
| ExisteFichier = (hSearch <> -1)
| FindClose (hSearch)
| End Function
|
| Fichier comporte le nom du fichier et son chemin
d'accès.
|
| A utiliser sous la forme
| if existeFichier then
| <actions si le fichier existe>
| else
| <actions si le fichier n'xiste pas>
| end if
Avatar
tking
LE TROLL a formulé la demande :
Bonjour,

J'ai un truc bizarre, que je n'arrive pas à
cerner, ma routine d'erreur semble ne pas
fonctionner, car, quand je tente d'ouvrir un
fichier inexistant, au lieu de débrancher à
l'adresse indiquée en cas d'erreur, il me sort une
erreur système "Fichier inexistant", et pourtant
je fais toujours ainsi, et ça marche ? Voici:

p01k = FreeFile
On Error GoTo erreur1
Open "mpprix.txt" For Input As p01k '
<<<---ERREUR ???
Line Input #p01k, trans
Close p01k
' ...
GoTo fin1
'
erreur1:
On Error Resume Next
Close p01k
p01k = FreeFile
Open "mpprix.txt" For Output As p01k
'...




Etrange en effet, si tu changes le nom du fichier "mpprix.txt" par
"prix.txt" l'erreur fichier introuvable se produit.

mpprix.txt semble iniber la routine d'erreur!
Avatar
LE TROLL
Ah bon ??? Tu as fait un test ???




--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"tking" a écrit dans le message de
news:
| LE TROLL a formulé la demande :
| > Bonjour,
| >
| > J'ai un truc bizarre, que je n'arrive pas
à
| > cerner, ma routine d'erreur semble ne pas
| > fonctionner, car, quand je tente d'ouvrir un
| > fichier inexistant, au lieu de débrancher à
| > l'adresse indiquée en cas d'erreur, il me sort
une
| > erreur système "Fichier inexistant", et
pourtant
| > je fais toujours ainsi, et ça marche ? Voici:
| >
| > p01k = FreeFile
| > On Error GoTo erreur1
| > Open "mpprix.txt" For Input As p01k '
| > <<<---ERREUR ???
| > Line Input #p01k, trans
| > Close p01k
| > ' ...
| > GoTo fin1
| > '
| > erreur1:
| > On Error Resume Next
| > Close p01k
| > p01k = FreeFile
| > Open "mpprix.txt" For Output As p01k
| > '...
|
|
| Etrange en effet, si tu changes le nom du
fichier "mpprix.txt" par
| "prix.txt" l'erreur fichier introuvable se
produit.
|
| mpprix.txt semble iniber la routine d'erreur!
|
|
Avatar
tking
LE TROLL a utilisé son clavier pour écrire :
Ah bon ??? Tu as fait un test ???





Oui évidemment.
1 2 3