dans ce mode, lors d'une ouverture de fichier
qui ne contient pas une ligne vierge à la fin
(soit deux "retours chariot")
plantage lorsque le nom d'une variable locale (procédure)
est appellée par une autre qui contient le même
nom de variable : la variable devient partagée ???
- traditionnelement, "I"
ce problème a-t-il été référencé ou il vous
faut un exemple de code précis ?
--
Thierry MARTIN
Forums Réunion (dont parapente)
http://ardf.free.fr/forums/
dans ce mode, lors d'une ouverture de fichier qui ne contient pas une ligne vierge à la fin (soit deux "retours chariot") plantage lorsque le nom d'une variable locale (procédure) est appellée par une autre qui contient le même nom de variable : la variable devient partagée ??? - traditionnelement, "I"
ce problème a-t-il été référencé ou il vous faut un exemple de code précis ?
Bonjour/soir,
Selon ce que j'ai compris tu as:
Option Explicit
Sub Toto()
Dim i As Long
i = 5
MsgBox i
'utilisation de i => plantage?
End Sub
Private Sub Command1_Click()
Dim i As Long
Toto
MsgBox i
End Sub
La variable n'estpas partagée.
Celle dans Toto existe le temps que Toto s'exécute.
Et ce petit bout de code ne plante pas ;-)
Pauxeux-tu préciser quel est ce "plantage" ou redécrire le problème? (un
bout de code est toujours le bienvenu)
"Thierry M." <thry.PASDEPUB.martin@free.fr> a écrit dans le message de
news:u8kpzoG3DHA.1720@TK2MSFTNGP10.phx.gbl
Strange :
dans ce mode, lors d'une ouverture de fichier
qui ne contient pas une ligne vierge à la fin
(soit deux "retours chariot")
plantage lorsque le nom d'une variable locale (procédure)
est appellée par une autre qui contient le même
nom de variable : la variable devient partagée ???
- traditionnelement, "I"
ce problème a-t-il été référencé ou il vous
faut un exemple de code précis ?
dans ce mode, lors d'une ouverture de fichier qui ne contient pas une ligne vierge à la fin (soit deux "retours chariot") plantage lorsque le nom d'une variable locale (procédure) est appellée par une autre qui contient le même nom de variable : la variable devient partagée ??? - traditionnelement, "I"
ce problème a-t-il été référencé ou il vous faut un exemple de code précis ?
Zoury
Salut Thierry! :O)
dans ce mode,
quel mode?
lors d'une ouverture de fichier qui ne contient pas une ligne vierge à la fin (soit deux "retours chariot")
quel fichier?
plantage lorsque le nom d'une variable locale (procédure) est appellée par une autre qui contient le même nom de variable : la variable devient partagée ???
quelle variable? plantage où? pourquoi? quelle est l'erreur et la ligne de code fautive?
ce problème a-t-il été référencé ou il vous faut un exemple de code précis ?
ce ne serait pas de refus... j'ai réellement *aucune idée* de ce à quoi tu fais allusion. ;O)
Merci de poster les réponses au groupe afin d'en faire profiter à tous
Salut Thierry! :O)
dans ce mode,
quel mode?
lors d'une ouverture de fichier
qui ne contient pas une ligne vierge à la fin
(soit deux "retours chariot")
quel fichier?
plantage lorsque le nom d'une variable locale (procédure)
est appellée par une autre qui contient le même
nom de variable : la variable devient partagée ???
quelle variable? plantage où? pourquoi? quelle est l'erreur et la ligne de
code fautive?
ce problème a-t-il été référencé ou il vous
faut un exemple de code précis ?
ce ne serait pas de refus... j'ai réellement *aucune idée* de ce à quoi tu
fais allusion. ;O)
lors d'une ouverture de fichier qui ne contient pas une ligne vierge à la fin (soit deux "retours chariot")
quel fichier?
plantage lorsque le nom d'une variable locale (procédure) est appellée par une autre qui contient le même nom de variable : la variable devient partagée ???
quelle variable? plantage où? pourquoi? quelle est l'erreur et la ligne de code fautive?
ce problème a-t-il été référencé ou il vous faut un exemple de code précis ?
ce ne serait pas de refus... j'ai réellement *aucune idée* de ce à quoi tu fais allusion. ;O)
Merci de poster les réponses au groupe afin d'en faire profiter à tous
Thierry M.
François Picalausa écrivait:
La variable n'estpas partagée. Celle dans Toto existe le temps que Toto s'exécute.
oui, mais si elle est stockée au même endroit, rien ne va plus: une variable locale n'est pas référencée sous son nom dans le code, mais à une adresse, non ?
bon, de toute façon, je n'y comprends rien, c'est incompréhensible et ma compréhrension se refuse à voir un quelconque rapport entre une fin de fichier, une variable locale et un appel de sous procédure, d'autant que ça n'arrive ni en mode programmation (en pcode, je suppose), ni en mode de compilation "optimisation de la taille du code" ...
donc,
redécrire le problème? (un bout de code est toujours le bienvenu)
soit un fichier (format ini) donc genre [rubrique1] Item1Úta1 ...
on a déjà un tel fichier #1 ouvert et ou on est déjà positionné sur une [rubrique], on veut savoir quel est le nombre de lignes de type ItemÚta avant la prochaine rubrique [rubrique] ou avant la fin du fichier, donc :
I=0 Do Until EOF(1) Ligne_Suivante ' sous procédure appellant la variable$ Ligne_Courante suivante I = I + 1 Réponse(I) = Trouve_Item() ' fonction recherche de 'Item', utilise une variable locale I If Fin_Rubrique = True Then I = I - 1: Exit Do 'Fin-Rubrique signale qu'on est arrivé au [] suivant Coef_Réponse(I) = Val(Trouve_Data()) 'fonction recherche de 'data', utilise une variable locale I Loop NombreRéponses = I 'A Close #1
For J = 1 To NombreRéponses 'B Next J
ceci fonctionne correctement, mais si on élude A pour mettre en B un I à la place de NombreRéponses on devrais obtenir la même chose non ? OR quand on quitte le DO LOOP en fin de fichier si on a pas 2 retours chariots I devient=0 quand on compile en mode "optimisation de la vitesse du code"
extraordinaire non ?
Bon, de toute façon, suffit de rajouter ces 2 retours chariots, ou de compiler en "mode d'optimisation de la taille du code" ou d'utiliser une variable partagée comme dans l'exemple au dessus (ou de faire tout à la fois, pour être trois fois sur :-) ) pour régler le probleme mais intellectuellement, ça me dérange quand même ...
-- Thierry non comprendo dérangé :)
François Picalausa <fpicalausa@chez.com> écrivait:
La variable n'estpas partagée.
Celle dans Toto existe le temps que Toto s'exécute.
oui, mais si elle est stockée au même endroit, rien ne
va plus: une variable locale n'est pas référencée sous son nom
dans le code, mais à une adresse, non ?
bon, de toute façon, je n'y comprends rien, c'est
incompréhensible et ma compréhrension se refuse
à voir un quelconque rapport entre une fin de fichier,
une variable locale et un appel de sous procédure,
d'autant que ça n'arrive ni en mode programmation
(en pcode, je suppose), ni en mode de compilation
"optimisation de la taille du code" ...
donc,
redécrire le problème? (un
bout de code est toujours le bienvenu)
soit un fichier (format ini) donc genre
[rubrique1]
Item1Úta1
...
on a déjà un tel fichier #1 ouvert et ou on est déjà
positionné sur une [rubrique], on veut savoir quel est
le nombre de lignes de type
ItemÚta
avant la prochaine rubrique [rubrique]
ou avant la fin du fichier, donc :
I=0
Do Until EOF(1)
Ligne_Suivante ' sous procédure appellant la variable$ Ligne_Courante
suivante
I = I + 1
Réponse(I) = Trouve_Item() ' fonction recherche de 'Item', utilise une
variable locale I
If Fin_Rubrique = True Then I = I - 1: Exit Do 'Fin-Rubrique signale qu'on
est arrivé au [] suivant
Coef_Réponse(I) = Val(Trouve_Data()) 'fonction recherche de 'data', utilise
une variable locale I
Loop
NombreRéponses = I 'A
Close #1
For J = 1 To NombreRéponses 'B
Next J
ceci fonctionne correctement, mais si on élude A
pour mettre en B un I à la place de NombreRéponses
on devrais obtenir la même chose non ?
OR quand on quitte le DO LOOP en fin de fichier
si on a pas 2 retours chariots I devient=0 quand
on compile en mode "optimisation de la vitesse du code"
extraordinaire non ?
Bon, de toute façon, suffit de rajouter ces 2 retours chariots,
ou de compiler en "mode d'optimisation de la taille du code"
ou d'utiliser une variable partagée comme dans l'exemple au dessus
(ou de faire tout à la fois, pour être trois fois sur :-) )
pour régler le probleme
mais intellectuellement, ça me dérange quand même ...
La variable n'estpas partagée. Celle dans Toto existe le temps que Toto s'exécute.
oui, mais si elle est stockée au même endroit, rien ne va plus: une variable locale n'est pas référencée sous son nom dans le code, mais à une adresse, non ?
bon, de toute façon, je n'y comprends rien, c'est incompréhensible et ma compréhrension se refuse à voir un quelconque rapport entre une fin de fichier, une variable locale et un appel de sous procédure, d'autant que ça n'arrive ni en mode programmation (en pcode, je suppose), ni en mode de compilation "optimisation de la taille du code" ...
donc,
redécrire le problème? (un bout de code est toujours le bienvenu)
soit un fichier (format ini) donc genre [rubrique1] Item1Úta1 ...
on a déjà un tel fichier #1 ouvert et ou on est déjà positionné sur une [rubrique], on veut savoir quel est le nombre de lignes de type ItemÚta avant la prochaine rubrique [rubrique] ou avant la fin du fichier, donc :
I=0 Do Until EOF(1) Ligne_Suivante ' sous procédure appellant la variable$ Ligne_Courante suivante I = I + 1 Réponse(I) = Trouve_Item() ' fonction recherche de 'Item', utilise une variable locale I If Fin_Rubrique = True Then I = I - 1: Exit Do 'Fin-Rubrique signale qu'on est arrivé au [] suivant Coef_Réponse(I) = Val(Trouve_Data()) 'fonction recherche de 'data', utilise une variable locale I Loop NombreRéponses = I 'A Close #1
For J = 1 To NombreRéponses 'B Next J
ceci fonctionne correctement, mais si on élude A pour mettre en B un I à la place de NombreRéponses on devrais obtenir la même chose non ? OR quand on quitte le DO LOOP en fin de fichier si on a pas 2 retours chariots I devient=0 quand on compile en mode "optimisation de la vitesse du code"
extraordinaire non ?
Bon, de toute façon, suffit de rajouter ces 2 retours chariots, ou de compiler en "mode d'optimisation de la taille du code" ou d'utiliser une variable partagée comme dans l'exemple au dessus (ou de faire tout à la fois, pour être trois fois sur :-) ) pour régler le probleme mais intellectuellement, ça me dérange quand même ...