Bonjour,
J'ai :
6
dépassement de capacité
projet 1
Lol, dépassement de capacité de quoi, où, comment faire ???
Merci beaucoup, au revoir et à bientôt :o)
Bonjour,
J'ai :
6
dépassement de capacité
projet 1
Lol, dépassement de capacité de quoi, où, comment faire ???
Merci beaucoup, au revoir et à bientôt :o)
Bonjour,
J'ai :
6
dépassement de capacité
projet 1
Lol, dépassement de capacité de quoi, où, comment faire ???
Merci beaucoup, au revoir et à bientôt :o)
Ajoute une gestion d'erreur dans chaque procédure.
Private Function Toto as boolean
on error goto Erreur
...
'ton code
exit function
Erreur:
MsgBox Error,,"Fonction Toto"
'Resume Next
end function
Ajoute une gestion d'erreur dans chaque procédure.
Private Function Toto as boolean
on error goto Erreur
...
'ton code
exit function
Erreur:
MsgBox Error,,"Fonction Toto"
'Resume Next
end function
Ajoute une gestion d'erreur dans chaque procédure.
Private Function Toto as boolean
on error goto Erreur
...
'ton code
exit function
Erreur:
MsgBox Error,,"Fonction Toto"
'Resume Next
end function
Salutatoi X,
Tu as donc déclaré :Bonjour,
J'ai :
6
dépassement de capacité
projet 1
Lol, dépassement de capacité de quoi, où, comment faire ???
Merci beaucoup, au revoir et à bientôt :o)
Ajoute une gestion d'erreur dans chaque procédure.
Private Function Toto as boolean
on error goto Erreur
...
'ton code
exit function
Erreur:
MsgBox Error,,"Fonction Toto"
'Resume Next
end function
Une fois que tu as repéré la fonction en cause, tu enlèves le ' devant
resume next, tu places un point d'arrêt et lorsque l'erreur se produit tu
tapes F8 et tu te trouves sous la ligne ayant causé l'erreur.
--
Cordialement
Aski
AntiSpamEdit (ASE) - XtractOE - Aide de K9 en français
http://h.charlier.de.chily.perso.cegetel.net/
ou
http://h.dechily.free.fr/
Salutatoi X,
Tu as donc déclaré :
Bonjour,
J'ai :
6
dépassement de capacité
projet 1
Lol, dépassement de capacité de quoi, où, comment faire ???
Merci beaucoup, au revoir et à bientôt :o)
Ajoute une gestion d'erreur dans chaque procédure.
Private Function Toto as boolean
on error goto Erreur
...
'ton code
exit function
Erreur:
MsgBox Error,,"Fonction Toto"
'Resume Next
end function
Une fois que tu as repéré la fonction en cause, tu enlèves le ' devant
resume next, tu places un point d'arrêt et lorsque l'erreur se produit tu
tapes F8 et tu te trouves sous la ligne ayant causé l'erreur.
--
Cordialement
Aski
AntiSpamEdit (ASE) - XtractOE - Aide de K9 en français
http://h.charlier.de.chily.perso.cegetel.net/
ou
http://h.dechily.free.fr/
Salutatoi X,
Tu as donc déclaré :Bonjour,
J'ai :
6
dépassement de capacité
projet 1
Lol, dépassement de capacité de quoi, où, comment faire ???
Merci beaucoup, au revoir et à bientôt :o)
Ajoute une gestion d'erreur dans chaque procédure.
Private Function Toto as boolean
on error goto Erreur
...
'ton code
exit function
Erreur:
MsgBox Error,,"Fonction Toto"
'Resume Next
end function
Une fois que tu as repéré la fonction en cause, tu enlèves le ' devant
resume next, tu places un point d'arrêt et lorsque l'erreur se produit tu
tapes F8 et tu te trouves sous la ligne ayant causé l'erreur.
--
Cordialement
Aski
AntiSpamEdit (ASE) - XtractOE - Aide de K9 en français
http://h.charlier.de.chily.perso.cegetel.net/
ou
http://h.dechily.free.fr/
Merci,
En fait j'ai trouvé l'erreur (une liste qui avait trop avalée),
mais j'ai mis longtemps, cernant par des messages dans une autre
liste... Le problème est que je suis sur un fichier de 1,8 Mo, et je
le lis par octet, alors c'est long en plus...
Merci,
En fait j'ai trouvé l'erreur (une liste qui avait trop avalée),
mais j'ai mis longtemps, cernant par des messages dans une autre
liste... Le problème est que je suis sur un fichier de 1,8 Mo, et je
le lis par octet, alors c'est long en plus...
Merci,
En fait j'ai trouvé l'erreur (une liste qui avait trop avalée),
mais j'ai mis longtemps, cernant par des messages dans une autre
liste... Le problème est que je suis sur un fichier de 1,8 Mo, et je
le lis par octet, alors c'est long en plus...
"Aski" a écrit dans le message de
news:%Ajoute une gestion d'erreur dans chaque procédure.
Private Function Toto as boolean
on error goto Erreur
...
'ton code
exit function
Erreur:
MsgBox Error,,"Fonction Toto"
'Resume Next
end function
Hello,
En plus de ce qu'a déjà expliqué Aski, voici quelques conseils
et détails:
- Toujours placer une gestion d'erreur, dans les fonctions comme
dans les Sub (à ce proposer, plutot utiliser uniquement des fonctions)
- Se servir du retour de la focntion comme indicateur de bon
fonctionnement (par ex TRUE=OK, FALSE=NOT OK, ou l'inverse)
- Toujours passer des paramètres additionnels à la fonction, qui
contiendront le code de l'erreur, la descrition de l'erreur et une
description détaillée, la plus précise possible.
- Toujours laisser à l APPELANT le soin de gérer l'erreur, pour une
simple raison: la fonction elle même ne peut en général pas faire
grand chose pour réparer, contrairement à l'appelant.
Sur cette base, voici un exemple de fonction et d'appel de celle ci
avec traitement de l'erreur:
' 8<----------------------------
Option Explicit
Private Sub Command1_Click()
Dim bRet As Boolean
Dim szErr As String
Dim szErrExtended As String
Dim lErr As Long
Dim param1 As Long
Dim param2 As Long
param1 = 23
param2 = 0
bRet = maFonction(param1, param2, szErrExtended, szErr, lErr)
If Not bRet Then
' une erreur s'est produite, on la traite
' pour l'exemple une simple message box:
MsgBox "Erreur : " & szErrExtended & vbCrLf & _
szErr & "(" & lErr & ")", vbExclamation, "exemple"
Else
' tout va bien on continue
End If
End Sub
'-------------------------------------------------------
' Procedure : maFonction
' DateTime : 4/02/2006 14:06
' Author : Jean-Marc
' Purpose : On place ici une description fonctionnelle,
' la signification des paramètres, etc.
'-------------------------------------------------------
'
Private Function maFonction(ByVal param1 As Long, _
ByVal param2 As Long, _
ByRef szErrExtended As String, _
ByRef szErr As String, _
ByRef lErr As Long) As Boolean
' Les déclarations locales
Dim test As Long
' la gestion d'erreur
On Error GoTo maFonction_ERR
' le code proprement dit
test = param1 / param2
maFonction = True ' tout est OK
' label de fin de fonction
maFonction_END:
Exit Function
maFonction_ERR:
' récupération de la descritpion et
' du numéro de l'erreur
szErr = Err.Description
lErr = Err.Number
szErrExtended = "Fonction maFonction(), valeur des paramètres:" &
vbCrLf & _
"param1=" & param1 & " param2=" & param2
maFonction = False ' NON OK
Resume maFonction_END
End Function
' 8<----------------------------
Ca fait beaucoup de code me direz vous? Oui, bien sur!
Dans un programme professionnel bien écrit, on compte
en moyenne:
- 1/6 code utile = 16%
- 1/3 gestion d'erreur = 34%
- 1/2 commentaires = 50%
Ce ne sont pas des chiffres sortis comme ça du chapeau. C'est le
reflet de stats faites sur des années sur de très nombreux programmes,
de toute taille et style, dans n'importe quel langage. On s'est apperçu
que les programmes qui ne respectent pas plus ou moins cette proportion
sont des nids à bugs, ou des trucs qui marchent mais si immondes que
personne ne veut les faire évoluer, de peur de tout casser. Les
programmes
"autistes" (pas commentés, gestion d'erreur inexistante) ont coûté et
coûtent
encore des sommes astronomiques à bien des sociétés.
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;
"Aski" <aski@asci.asc> a écrit dans le message de
news:%23BJbUlYKGHA.3732@TK2MSFTNGP10.phx.gbl...
Ajoute une gestion d'erreur dans chaque procédure.
Private Function Toto as boolean
on error goto Erreur
...
'ton code
exit function
Erreur:
MsgBox Error,,"Fonction Toto"
'Resume Next
end function
Hello,
En plus de ce qu'a déjà expliqué Aski, voici quelques conseils
et détails:
- Toujours placer une gestion d'erreur, dans les fonctions comme
dans les Sub (à ce proposer, plutot utiliser uniquement des fonctions)
- Se servir du retour de la focntion comme indicateur de bon
fonctionnement (par ex TRUE=OK, FALSE=NOT OK, ou l'inverse)
- Toujours passer des paramètres additionnels à la fonction, qui
contiendront le code de l'erreur, la descrition de l'erreur et une
description détaillée, la plus précise possible.
- Toujours laisser à l APPELANT le soin de gérer l'erreur, pour une
simple raison: la fonction elle même ne peut en général pas faire
grand chose pour réparer, contrairement à l'appelant.
Sur cette base, voici un exemple de fonction et d'appel de celle ci
avec traitement de l'erreur:
' 8<----------------------------
Option Explicit
Private Sub Command1_Click()
Dim bRet As Boolean
Dim szErr As String
Dim szErrExtended As String
Dim lErr As Long
Dim param1 As Long
Dim param2 As Long
param1 = 23
param2 = 0
bRet = maFonction(param1, param2, szErrExtended, szErr, lErr)
If Not bRet Then
' une erreur s'est produite, on la traite
' pour l'exemple une simple message box:
MsgBox "Erreur : " & szErrExtended & vbCrLf & _
szErr & "(" & lErr & ")", vbExclamation, "exemple"
Else
' tout va bien on continue
End If
End Sub
'-------------------------------------------------------
' Procedure : maFonction
' DateTime : 4/02/2006 14:06
' Author : Jean-Marc
' Purpose : On place ici une description fonctionnelle,
' la signification des paramètres, etc.
'-------------------------------------------------------
'
Private Function maFonction(ByVal param1 As Long, _
ByVal param2 As Long, _
ByRef szErrExtended As String, _
ByRef szErr As String, _
ByRef lErr As Long) As Boolean
' Les déclarations locales
Dim test As Long
' la gestion d'erreur
On Error GoTo maFonction_ERR
' le code proprement dit
test = param1 / param2
maFonction = True ' tout est OK
' label de fin de fonction
maFonction_END:
Exit Function
maFonction_ERR:
' récupération de la descritpion et
' du numéro de l'erreur
szErr = Err.Description
lErr = Err.Number
szErrExtended = "Fonction maFonction(), valeur des paramètres:" &
vbCrLf & _
"param1=" & param1 & " param2=" & param2
maFonction = False ' NON OK
Resume maFonction_END
End Function
' 8<----------------------------
Ca fait beaucoup de code me direz vous? Oui, bien sur!
Dans un programme professionnel bien écrit, on compte
en moyenne:
- 1/6 code utile = 16%
- 1/3 gestion d'erreur = 34%
- 1/2 commentaires = 50%
Ce ne sont pas des chiffres sortis comme ça du chapeau. C'est le
reflet de stats faites sur des années sur de très nombreux programmes,
de toute taille et style, dans n'importe quel langage. On s'est apperçu
que les programmes qui ne respectent pas plus ou moins cette proportion
sont des nids à bugs, ou des trucs qui marchent mais si immondes que
personne ne veut les faire évoluer, de peur de tout casser. Les
programmes
"autistes" (pas commentés, gestion d'erreur inexistante) ont coûté et
coûtent
encore des sommes astronomiques à bien des sociétés.
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
"Aski" a écrit dans le message de
news:%Ajoute une gestion d'erreur dans chaque procédure.
Private Function Toto as boolean
on error goto Erreur
...
'ton code
exit function
Erreur:
MsgBox Error,,"Fonction Toto"
'Resume Next
end function
Hello,
En plus de ce qu'a déjà expliqué Aski, voici quelques conseils
et détails:
- Toujours placer une gestion d'erreur, dans les fonctions comme
dans les Sub (à ce proposer, plutot utiliser uniquement des fonctions)
- Se servir du retour de la focntion comme indicateur de bon
fonctionnement (par ex TRUE=OK, FALSE=NOT OK, ou l'inverse)
- Toujours passer des paramètres additionnels à la fonction, qui
contiendront le code de l'erreur, la descrition de l'erreur et une
description détaillée, la plus précise possible.
- Toujours laisser à l APPELANT le soin de gérer l'erreur, pour une
simple raison: la fonction elle même ne peut en général pas faire
grand chose pour réparer, contrairement à l'appelant.
Sur cette base, voici un exemple de fonction et d'appel de celle ci
avec traitement de l'erreur:
' 8<----------------------------
Option Explicit
Private Sub Command1_Click()
Dim bRet As Boolean
Dim szErr As String
Dim szErrExtended As String
Dim lErr As Long
Dim param1 As Long
Dim param2 As Long
param1 = 23
param2 = 0
bRet = maFonction(param1, param2, szErrExtended, szErr, lErr)
If Not bRet Then
' une erreur s'est produite, on la traite
' pour l'exemple une simple message box:
MsgBox "Erreur : " & szErrExtended & vbCrLf & _
szErr & "(" & lErr & ")", vbExclamation, "exemple"
Else
' tout va bien on continue
End If
End Sub
'-------------------------------------------------------
' Procedure : maFonction
' DateTime : 4/02/2006 14:06
' Author : Jean-Marc
' Purpose : On place ici une description fonctionnelle,
' la signification des paramètres, etc.
'-------------------------------------------------------
'
Private Function maFonction(ByVal param1 As Long, _
ByVal param2 As Long, _
ByRef szErrExtended As String, _
ByRef szErr As String, _
ByRef lErr As Long) As Boolean
' Les déclarations locales
Dim test As Long
' la gestion d'erreur
On Error GoTo maFonction_ERR
' le code proprement dit
test = param1 / param2
maFonction = True ' tout est OK
' label de fin de fonction
maFonction_END:
Exit Function
maFonction_ERR:
' récupération de la descritpion et
' du numéro de l'erreur
szErr = Err.Description
lErr = Err.Number
szErrExtended = "Fonction maFonction(), valeur des paramètres:" &
vbCrLf & _
"param1=" & param1 & " param2=" & param2
maFonction = False ' NON OK
Resume maFonction_END
End Function
' 8<----------------------------
Ca fait beaucoup de code me direz vous? Oui, bien sur!
Dans un programme professionnel bien écrit, on compte
en moyenne:
- 1/6 code utile = 16%
- 1/3 gestion d'erreur = 34%
- 1/2 commentaires = 50%
Ce ne sont pas des chiffres sortis comme ça du chapeau. C'est le
reflet de stats faites sur des années sur de très nombreux programmes,
de toute taille et style, dans n'importe quel langage. On s'est apperçu
que les programmes qui ne respectent pas plus ou moins cette proportion
sont des nids à bugs, ou des trucs qui marchent mais si immondes que
personne ne veut les faire évoluer, de peur de tout casser. Les
programmes
"autistes" (pas commentés, gestion d'erreur inexistante) ont coûté et
coûtent
encore des sommes astronomiques à bien des sociétés.
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;
Salutatoi X,
Tu as donc déclaré :Merci,
En fait j'ai trouvé l'erreur (une liste qui avait trop avalée),
mais j'ai mis longtemps, cernant par des messages dans une autre
liste... Le problème est que je suis sur un fichier de 1,8 Mo, et je
le lis par octet, alors c'est long en plus...
As-tu essayé la fonction
Input(n, #1) apès un Seek
n étant le nombre de caractères lus et 1 étant le n° du fichier ouvert.
Un fichier de 1,8 Mo n'est pas très long à lire surtout su tu lis par
groupe de garactères
Salutatoi X,
Tu as donc déclaré :
Merci,
En fait j'ai trouvé l'erreur (une liste qui avait trop avalée),
mais j'ai mis longtemps, cernant par des messages dans une autre
liste... Le problème est que je suis sur un fichier de 1,8 Mo, et je
le lis par octet, alors c'est long en plus...
As-tu essayé la fonction
Input(n, #1) apès un Seek
n étant le nombre de caractères lus et 1 étant le n° du fichier ouvert.
Un fichier de 1,8 Mo n'est pas très long à lire surtout su tu lis par
groupe de garactères
Salutatoi X,
Tu as donc déclaré :Merci,
En fait j'ai trouvé l'erreur (une liste qui avait trop avalée),
mais j'ai mis longtemps, cernant par des messages dans une autre
liste... Le problème est que je suis sur un fichier de 1,8 Mo, et je
le lis par octet, alors c'est long en plus...
As-tu essayé la fonction
Input(n, #1) apès un Seek
n étant le nombre de caractères lus et 1 étant le n° du fichier ouvert.
Un fichier de 1,8 Mo n'est pas très long à lire surtout su tu lis par
groupe de garactères
En plus de ce qu'a déjà expliqué Aski, voici quelques conseils
et détails:
- Toujours placer une gestion d'erreur, dans les fonctions comme
dans les Sub (à ce proposer, plutot utiliser uniquement des fonctions)
- Se servir du retour de la focntion comme indicateur de bon
fonctionnement (par ex TRUE=OK, FALSE=NOT OK, ou l'inverse)
- Toujours passer des paramètres additionnels à la fonction, qui
contiendront le code de l'erreur, la descrition de l'erreur et une
description détaillée, la plus précise possible.
- Toujours laisser à l APPELANT le soin de gérer l'erreur, pour une
simple raison: la fonction elle même ne peut en général pas faire
grand chose pour réparer, contrairement à l'appelant.
En plus de ce qu'a déjà expliqué Aski, voici quelques conseils
et détails:
- Toujours placer une gestion d'erreur, dans les fonctions comme
dans les Sub (à ce proposer, plutot utiliser uniquement des fonctions)
- Se servir du retour de la focntion comme indicateur de bon
fonctionnement (par ex TRUE=OK, FALSE=NOT OK, ou l'inverse)
- Toujours passer des paramètres additionnels à la fonction, qui
contiendront le code de l'erreur, la descrition de l'erreur et une
description détaillée, la plus précise possible.
- Toujours laisser à l APPELANT le soin de gérer l'erreur, pour une
simple raison: la fonction elle même ne peut en général pas faire
grand chose pour réparer, contrairement à l'appelant.
En plus de ce qu'a déjà expliqué Aski, voici quelques conseils
et détails:
- Toujours placer une gestion d'erreur, dans les fonctions comme
dans les Sub (à ce proposer, plutot utiliser uniquement des fonctions)
- Se servir du retour de la focntion comme indicateur de bon
fonctionnement (par ex TRUE=OK, FALSE=NOT OK, ou l'inverse)
- Toujours passer des paramètres additionnels à la fonction, qui
contiendront le code de l'erreur, la descrition de l'erreur et une
description détaillée, la plus précise possible.
- Toujours laisser à l APPELANT le soin de gérer l'erreur, pour une
simple raison: la fonction elle même ne peut en général pas faire
grand chose pour réparer, contrairement à l'appelant.
On Sat, 4 Feb 2006 14:34:37 +0100, "Jean-Marc"
wrote:
J'suis d'accord mais je me demande quand même pourquoi tu ne te sers
pas de l'objet Err pour remonter l'erreur à la source (tu peux
modifier Err.Source pour indiquer dans quelle procédure l'erreur a eu
lieu et remonter jusqu'à ta procédure principale à coup d'Err.Raise).
C'est un peu moins lourd que d'ajouter systématiquement 3 paramètres à
toutes fonctions. En prime, avec MZ-Tools, on peut implémenter ça
presque automatiquement.
On Sat, 4 Feb 2006 14:34:37 +0100, "Jean-Marc"
<NO_SPAM_jean_marc_n2@yahoo.fr> wrote:
J'suis d'accord mais je me demande quand même pourquoi tu ne te sers
pas de l'objet Err pour remonter l'erreur à la source (tu peux
modifier Err.Source pour indiquer dans quelle procédure l'erreur a eu
lieu et remonter jusqu'à ta procédure principale à coup d'Err.Raise).
C'est un peu moins lourd que d'ajouter systématiquement 3 paramètres à
toutes fonctions. En prime, avec MZ-Tools, on peut implémenter ça
presque automatiquement.
On Sat, 4 Feb 2006 14:34:37 +0100, "Jean-Marc"
wrote:
J'suis d'accord mais je me demande quand même pourquoi tu ne te sers
pas de l'objet Err pour remonter l'erreur à la source (tu peux
modifier Err.Source pour indiquer dans quelle procédure l'erreur a eu
lieu et remonter jusqu'à ta procédure principale à coup d'Err.Raise).
C'est un peu moins lourd que d'ajouter systématiquement 3 paramètres à
toutes fonctions. En prime, avec MZ-Tools, on peut implémenter ça
presque automatiquement.
Voila, désolé si j'ai été un peu long :-) C'est un sujet que je
connais très très bien (...) et je pourrais en discuter pendant des
heures :-)
Voila, désolé si j'ai été un peu long :-) C'est un sujet que je
connais très très bien (...) et je pourrais en discuter pendant des
heures :-)
Voila, désolé si j'ai été un peu long :-) C'est un sujet que je
connais très très bien (...) et je pourrais en discuter pendant des
heures :-)