Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Marc
"Titeuf" a écrit dans le message de news:
Bonsoir, Tout est dans la question je pense, Quelle est la différence entre
Dim mavariable as String et Static mavariable as String
Hello,
Le mot static est utilisé pour déclarer une variable qui doit garder sa valeur tout au long du programme. On l'utilise au sein des fonctions et procédures pour déclarer une variable qui doit garder sa valeur d'appel en appel, et ne pas être réinitialisée comme c'est le cas normalement. C'est très utile dans de nombreux cas, par exemple pour protéger une section de code qui ne doit être exécuté qu'une seule fois:
Private Sub ProcBidule() Static dejaInitialise As Boolean
If dejaInitialise Then ' on est deja passé au moins une fois dans la procedure Else ' faire un eventuel traitement d'initialisation ' et s'en rappeler dejaInitialise = True End If End Sub
L'utilisation de Static évite l'utilisation des globales, qui sont à éviter dans la mesure du possible.
Notes: - une static de type numérique (integer, long, etc) est initialisée à 0. - une static de type booléen est initialisée à FALSE.
On peut aussi utiliser les statics pour faire un compteur de passe, etc.
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't."
"Titeuf" <zititeuf@no-spam.org> a écrit dans le message de
news:OPJTP1e7EHA.2552@TK2MSFTNGP09.phx.gbl...
Bonsoir,
Tout est dans la question je pense,
Quelle est la différence entre
Dim mavariable as String
et
Static mavariable as String
Hello,
Le mot static est utilisé pour déclarer une variable qui doit garder sa
valeur tout au long du programme. On l'utilise au sein des fonctions et
procédures pour déclarer une variable qui doit garder sa valeur d'appel
en appel, et ne pas être réinitialisée comme c'est le cas normalement.
C'est très utile dans de nombreux cas, par exemple pour protéger une
section de code qui ne doit être exécuté qu'une seule fois:
Private Sub ProcBidule()
Static dejaInitialise As Boolean
If dejaInitialise Then
' on est deja passé au moins une fois dans la procedure
Else
' faire un eventuel traitement d'initialisation
' et s'en rappeler
dejaInitialise = True
End If
End Sub
L'utilisation de Static évite l'utilisation des globales, qui sont à
éviter dans la mesure du possible.
Notes:
- une static de type numérique (integer, long, etc) est initialisée à 0.
- une static de type booléen est initialisée à FALSE.
On peut aussi utiliser les statics pour faire un compteur de passe, etc.
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Bonsoir, Tout est dans la question je pense, Quelle est la différence entre
Dim mavariable as String et Static mavariable as String
Hello,
Le mot static est utilisé pour déclarer une variable qui doit garder sa valeur tout au long du programme. On l'utilise au sein des fonctions et procédures pour déclarer une variable qui doit garder sa valeur d'appel en appel, et ne pas être réinitialisée comme c'est le cas normalement. C'est très utile dans de nombreux cas, par exemple pour protéger une section de code qui ne doit être exécuté qu'une seule fois:
Private Sub ProcBidule() Static dejaInitialise As Boolean
If dejaInitialise Then ' on est deja passé au moins une fois dans la procedure Else ' faire un eventuel traitement d'initialisation ' et s'en rappeler dejaInitialise = True End If End Sub
L'utilisation de Static évite l'utilisation des globales, qui sont à éviter dans la mesure du possible.
Notes: - une static de type numérique (integer, long, etc) est initialisée à 0. - une static de type booléen est initialisée à FALSE.
On peut aussi utiliser les statics pour faire un compteur de passe, etc.
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't."
Lorex
Salut,
"Dim" est un mot réservé pour le VB, qui permet de définir l'idée suivante: "ce qui suit sont des variables public que l'on souhaite déclarées, (avec un type, mais c'est autre chose...)" "Static" définit la même idée, mais comme on utilise un mot différent, c'est qu'il y a une différence. Elle est où ? Est bien voilà,...
Une variable possède un champ de visibilité qui est fonction de la position où se trouve le mot clef "Dim/Static". Dans cette zone de visibilité: - "Dim" déclare que la variable peut-être écrasée et l"espace mémoire qu'elle utilise peut-être utilisé pour une autre variable; - "Static" déclare que la variable ne doit pas perdre sa valeur lorsque l'on sort de son champ de visibilité, et qu'en plus, elle doit garder sa valeur lorsque l'on retourne dans son champ de visibilité.
Essaye de compiler le prog. qui suit, tu verras la différence dans la fenêtre de debug...
PRIVATE SUB main()
DIM lgTmp AS LONG
FOR lgTmp=1 TO 10 execDelta NEXT lgTmp END SUB
PRIVATE SUB execDelta() DIM lgValDim AS LONG STATIC lgValStatic AS LONG
lgValDim=lgValDim+1 lgValStatic=lgValStatic+1
DEBUG.PRINT "dim value: " & cstr(lgValDim) DEBUG.PRINT "static value: " & cstr(lgValStatic) END SUB
A+
Laurent "Titeuf" a écrit dans le message de news:
Bonsoir, Tout est dans la question je pense, Quelle est la différence entre
Dim mavariable as String et Static mavariable as String
Merci
Salut,
"Dim" est un mot réservé pour le VB, qui permet de définir l'idée suivante:
"ce qui suit sont des variables public que l'on souhaite déclarées, (avec un
type, mais c'est autre chose...)"
"Static" définit la même idée, mais comme on utilise un mot différent, c'est
qu'il y a une différence. Elle est où ? Est bien voilà,...
Une variable possède un champ de visibilité qui est fonction de la position
où se trouve le mot clef "Dim/Static". Dans cette zone de visibilité:
- "Dim" déclare que la variable peut-être écrasée et l"espace mémoire
qu'elle utilise peut-être utilisé pour une autre variable;
- "Static" déclare que la variable ne doit pas perdre sa valeur lorsque l'on
sort de son champ de visibilité, et qu'en plus, elle doit garder sa valeur
lorsque l'on retourne dans son champ de visibilité.
Essaye de compiler le prog. qui suit, tu verras la différence dans la
fenêtre de debug...
PRIVATE SUB main()
DIM lgTmp AS LONG
FOR lgTmp=1 TO 10
execDelta
NEXT lgTmp
END SUB
PRIVATE SUB execDelta()
DIM lgValDim AS LONG
STATIC lgValStatic AS LONG
lgValDim=lgValDim+1
lgValStatic=lgValStatic+1
DEBUG.PRINT "dim value: " & cstr(lgValDim)
DEBUG.PRINT "static value: " & cstr(lgValStatic)
END SUB
A+
Laurent
"Titeuf" <zititeuf@no-spam.org> a écrit dans le message de
news:OPJTP1e7EHA.2552@TK2MSFTNGP09.phx.gbl...
Bonsoir,
Tout est dans la question je pense,
Quelle est la différence entre
Dim mavariable as String
et
Static mavariable as String
"Dim" est un mot réservé pour le VB, qui permet de définir l'idée suivante: "ce qui suit sont des variables public que l'on souhaite déclarées, (avec un type, mais c'est autre chose...)" "Static" définit la même idée, mais comme on utilise un mot différent, c'est qu'il y a une différence. Elle est où ? Est bien voilà,...
Une variable possède un champ de visibilité qui est fonction de la position où se trouve le mot clef "Dim/Static". Dans cette zone de visibilité: - "Dim" déclare que la variable peut-être écrasée et l"espace mémoire qu'elle utilise peut-être utilisé pour une autre variable; - "Static" déclare que la variable ne doit pas perdre sa valeur lorsque l'on sort de son champ de visibilité, et qu'en plus, elle doit garder sa valeur lorsque l'on retourne dans son champ de visibilité.
Essaye de compiler le prog. qui suit, tu verras la différence dans la fenêtre de debug...
PRIVATE SUB main()
DIM lgTmp AS LONG
FOR lgTmp=1 TO 10 execDelta NEXT lgTmp END SUB
PRIVATE SUB execDelta() DIM lgValDim AS LONG STATIC lgValStatic AS LONG
lgValDim=lgValDim+1 lgValStatic=lgValStatic+1
DEBUG.PRINT "dim value: " & cstr(lgValDim) DEBUG.PRINT "static value: " & cstr(lgValStatic) END SUB
A+
Laurent "Titeuf" a écrit dans le message de news:
Bonsoir, Tout est dans la question je pense, Quelle est la différence entre
Dim mavariable as String et Static mavariable as String
Merci
Adam Pietrasiewicz
W ¶rodê 29-grudnia-2004 o godzinie 22:42:49 Jean-Marc napisa³/a
L'utilisation de Static évite l'utilisation des globales, qui sont a éviter dans la mesure du possible.
Je me demande toujours si ce n'est pas une legende pour les programmeurs debutants. J'utilise les variables globales et cela ne m'a jamais pose de probleme.
Je voudrais donc lire une explication precise de cette mise en garde...
-- Pozdrawiam Adam Pietrasiewicz
W ¶rodê 29-grudnia-2004 o godzinie 22:42:49 Jean-Marc napisa³/a
L'utilisation de Static évite l'utilisation des globales, qui sont a
éviter dans la mesure du possible.
Je me demande toujours si ce n'est pas une legende pour les
programmeurs debutants. J'utilise les variables globales et cela ne
m'a jamais pose de probleme.
Je voudrais donc lire une explication precise de cette mise en
garde...
W ¶rodê 29-grudnia-2004 o godzinie 22:42:49 Jean-Marc napisa³/a
L'utilisation de Static évite l'utilisation des globales, qui sont a éviter dans la mesure du possible.
Je me demande toujours si ce n'est pas une legende pour les programmeurs debutants. J'utilise les variables globales et cela ne m'a jamais pose de probleme.
Je voudrais donc lire une explication precise de cette mise en garde...
-- Pozdrawiam Adam Pietrasiewicz
ng
Salut,
Comme en C++ static definit une variable (au sein d'une fonction) avec une adresse constante qui n'est initialisée qu'une fois, exemple :
Public Sub TestDim() Dim dwVar As Long dwVar = dwVar + 1 Debug.Print "TestDim : " & dwVar End Sub
Public Sub TestStatic() Static dwVar As Long '//initialisé à 0 dwVar = dwVar + 1 Debug.Print "TestStatic : " & dwVar End Sub
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Titeuf wrote:
Bonsoir, Tout est dans la question je pense, Quelle est la différence entre
Dim mavariable as String et Static mavariable as String
Merci
Salut,
Comme en C++ static definit une variable (au sein d'une fonction) avec une
adresse constante qui n'est initialisée qu'une fois, exemple :
Public Sub TestDim()
Dim dwVar As Long
dwVar = dwVar + 1
Debug.Print "TestDim : " & dwVar
End Sub
Public Sub TestStatic()
Static dwVar As Long '//initialisé à 0
dwVar = dwVar + 1
Debug.Print "TestStatic : " & dwVar
End Sub
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Titeuf wrote:
Bonsoir,
Tout est dans la question je pense,
Quelle est la différence entre
Dim mavariable as String
et
Static mavariable as String
Comme en C++ static definit une variable (au sein d'une fonction) avec une adresse constante qui n'est initialisée qu'une fois, exemple :
Public Sub TestDim() Dim dwVar As Long dwVar = dwVar + 1 Debug.Print "TestDim : " & dwVar End Sub
Public Sub TestStatic() Static dwVar As Long '//initialisé à 0 dwVar = dwVar + 1 Debug.Print "TestStatic : " & dwVar End Sub
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Titeuf wrote:
Bonsoir, Tout est dans la question je pense, Quelle est la différence entre
Dim mavariable as String et Static mavariable as String
Merci
Patrice Henrio
Static est une variable locale, donc visible uniquement dans sa procédure, mais qui garde sa valeur d'un appel à l'autre.
"ng" a écrit dans le message de news:
Salut,
Comme en C++ static definit une variable (au sein d'une fonction) avec une adresse constante qui n'est initialisée qu'une fois, exemple :
Public Sub TestDim() Dim dwVar As Long dwVar = dwVar + 1 Debug.Print "TestDim : " & dwVar End Sub
Public Sub TestStatic() Static dwVar As Long '//initialisé à 0 dwVar = dwVar + 1 Debug.Print "TestStatic : " & dwVar End Sub
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Titeuf wrote:
Bonsoir, Tout est dans la question je pense, Quelle est la différence entre
Dim mavariable as String et Static mavariable as String
Merci
Static est une variable locale, donc visible uniquement dans sa procédure,
mais qui garde sa valeur d'un appel à l'autre.
"ng" <ng@ngsoft-fr.com> a écrit dans le message de news:
ele5OKf7EHA.2540@TK2MSFTNGP09.phx.gbl...
Salut,
Comme en C++ static definit une variable (au sein d'une fonction) avec une
adresse constante qui n'est initialisée qu'une fois, exemple :
Public Sub TestDim()
Dim dwVar As Long
dwVar = dwVar + 1
Debug.Print "TestDim : " & dwVar
End Sub
Public Sub TestStatic()
Static dwVar As Long '//initialisé à 0
dwVar = dwVar + 1
Debug.Print "TestStatic : " & dwVar
End Sub
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Titeuf wrote:
Bonsoir,
Tout est dans la question je pense,
Quelle est la différence entre
Dim mavariable as String
et
Static mavariable as String
Static est une variable locale, donc visible uniquement dans sa procédure, mais qui garde sa valeur d'un appel à l'autre.
"ng" a écrit dans le message de news:
Salut,
Comme en C++ static definit une variable (au sein d'une fonction) avec une adresse constante qui n'est initialisée qu'une fois, exemple :
Public Sub TestDim() Dim dwVar As Long dwVar = dwVar + 1 Debug.Print "TestDim : " & dwVar End Sub
Public Sub TestStatic() Static dwVar As Long '//initialisé à 0 dwVar = dwVar + 1 Debug.Print "TestStatic : " & dwVar End Sub
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Titeuf wrote:
Bonsoir, Tout est dans la question je pense, Quelle est la différence entre
Dim mavariable as String et Static mavariable as String
Merci
ng
Oui.
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Patrice Henrio wrote:
Static est une variable locale, donc visible uniquement dans sa procédure, mais qui garde sa valeur d'un appel à l'autre.
"ng" a écrit dans le message de news:
Salut,
Comme en C++ static definit une variable (au sein d'une fonction) avec une adresse constante qui n'est initialisée qu'une fois, exemple : Public Sub TestDim() Dim dwVar As Long dwVar = dwVar + 1 Debug.Print "TestDim : " & dwVar End Sub
Public Sub TestStatic() Static dwVar As Long '//initialisé à 0 dwVar = dwVar + 1 Debug.Print "TestStatic : " & dwVar End Sub
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Titeuf wrote:
Bonsoir, Tout est dans la question je pense, Quelle est la différence entre
Dim mavariable as String et Static mavariable as String
Merci
Oui.
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Patrice Henrio wrote:
Static est une variable locale, donc visible uniquement dans sa
procédure, mais qui garde sa valeur d'un appel à l'autre.
"ng" <ng@ngsoft-fr.com> a écrit dans le message de news:
ele5OKf7EHA.2540@TK2MSFTNGP09.phx.gbl...
Salut,
Comme en C++ static definit une variable (au sein d'une fonction)
avec une adresse constante qui n'est initialisée qu'une fois,
exemple : Public Sub TestDim()
Dim dwVar As Long
dwVar = dwVar + 1
Debug.Print "TestDim : " & dwVar
End Sub
Public Sub TestStatic()
Static dwVar As Long '//initialisé à 0
dwVar = dwVar + 1
Debug.Print "TestStatic : " & dwVar
End Sub
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Titeuf wrote:
Bonsoir,
Tout est dans la question je pense,
Quelle est la différence entre
Dim mavariable as String
et
Static mavariable as String
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Patrice Henrio wrote:
Static est une variable locale, donc visible uniquement dans sa procédure, mais qui garde sa valeur d'un appel à l'autre.
"ng" a écrit dans le message de news:
Salut,
Comme en C++ static definit une variable (au sein d'une fonction) avec une adresse constante qui n'est initialisée qu'une fois, exemple : Public Sub TestDim() Dim dwVar As Long dwVar = dwVar + 1 Debug.Print "TestDim : " & dwVar End Sub
Public Sub TestStatic() Static dwVar As Long '//initialisé à 0 dwVar = dwVar + 1 Debug.Print "TestStatic : " & dwVar End Sub
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Titeuf wrote:
Bonsoir, Tout est dans la question je pense, Quelle est la différence entre
Dim mavariable as String et Static mavariable as String