Sous VB6 et Vista (pas sous XP), j'obtiens un dépassement de capacité sur
une assignation d'un entier long (Long), qui en fait se comporte comme un
Integer.
Avez-vous déjà eu ce pb et comment l'avez-vous résolu ?
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
LE TROLL
Bonjour,
Si je fais ça : Dim l As Long l = 123456789012
C'est un dépassement de capacité !
Qu'est-ce que tu lui rentres dans ton long, peut être quelque chose d'indigeste ? Il se comporte comme un integer, pourquoi ? Ce sont des entiers signés éventuellement et seulement, dont la diférenc est la capacité...
Il se passe quoi si tu mets un double à la place ?
"Christian Hubert-Hugoud / weabow - Xtrem7" a écrit dans le message de news:%
Bonjour à tous,
Sous VB6 et Vista (pas sous XP), j'obtiens un dépassement de capacité sur une assignation d'un entier long (Long), qui en fait se comporte comme un Integer.
Avez-vous déjà eu ce pb et comment l'avez-vous résolu ?
Excellente continuation
Christian
Bonjour,
Si je fais ça :
Dim l As Long
l = 123456789012
C'est un dépassement de capacité !
Qu'est-ce que tu lui rentres dans ton long, peut être quelque chose
d'indigeste ?
Il se comporte comme un integer, pourquoi ?
Ce sont des entiers signés éventuellement et seulement, dont la diférenc est
la capacité...
Il se passe quoi si tu mets un double à la place ?
"Christian Hubert-Hugoud / weabow - Xtrem7" <nospam@weabow.com> a écrit dans
le message de news:%23HiasNCPKHA.4468@TK2MSFTNGP04.phx.gbl...
Bonjour à tous,
Sous VB6 et Vista (pas sous XP), j'obtiens un dépassement de capacité sur
une assignation d'un entier long (Long), qui en fait se comporte comme un
Integer.
Avez-vous déjà eu ce pb et comment l'avez-vous résolu ?
Qu'est-ce que tu lui rentres dans ton long, peut être quelque chose d'indigeste ? Il se comporte comme un integer, pourquoi ? Ce sont des entiers signés éventuellement et seulement, dont la diférenc est la capacité...
Il se passe quoi si tu mets un double à la place ?
"Christian Hubert-Hugoud / weabow - Xtrem7" a écrit dans le message de news:%
Bonjour à tous,
Sous VB6 et Vista (pas sous XP), j'obtiens un dépassement de capacité sur une assignation d'un entier long (Long), qui en fait se comporte comme un Integer.
Avez-vous déjà eu ce pb et comment l'avez-vous résolu ?
Excellente continuation
Christian
Christian Hubert-Hugoud / weabow - Xtrem7
Facile :
Si je dépasse les 32.000 et des peuffes, il plante le message d'erreur.
Je n'avais pas ce pb dans le passé. Je me demande si ce n'est pas une question de Vista, car j'ai régulièrement des "curiosités".
"LE TROLL" <le a écrit dans le message de news:
Bonjour,
Si je fais ça : Dim l As Long l = 123456789012
C'est un dépassement de capacité !
Qu'est-ce que tu lui rentres dans ton long, peut être quelque chose d'indigeste ? Il se comporte comme un integer, pourquoi ? Ce sont des entiers signés éventuellement et seulement, dont la diférenc est la capacité...
Il se passe quoi si tu mets un double à la place ?
"Christian Hubert-Hugoud / weabow - Xtrem7" a écrit dans le message de news:%
Bonjour à tous,
Sous VB6 et Vista (pas sous XP), j'obtiens un dépassement de capacité sur une assignation d'un entier long (Long), qui en fait se comporte comme un Integer.
Avez-vous déjà eu ce pb et comment l'avez-vous résolu ?
Excellente continuation
Christian
Facile :
Si je dépasse les 32.000 et des peuffes, il plante le message d'erreur.
Je n'avais pas ce pb dans le passé. Je me demande si ce n'est pas une
question de Vista, car j'ai régulièrement des "curiosités".
"LE TROLL" <le troll@enfer.fr> a écrit dans le message de
news:B5648E8E-108F-453A-94D9-F685BD1B70D7@microsoft.com...
Bonjour,
Si je fais ça :
Dim l As Long
l = 123456789012
C'est un dépassement de capacité !
Qu'est-ce que tu lui rentres dans ton long, peut être quelque chose
d'indigeste ?
Il se comporte comme un integer, pourquoi ?
Ce sont des entiers signés éventuellement et seulement, dont la diférenc
est la capacité...
Il se passe quoi si tu mets un double à la place ?
"Christian Hubert-Hugoud / weabow - Xtrem7" <nospam@weabow.com> a écrit
dans le message de news:%23HiasNCPKHA.4468@TK2MSFTNGP04.phx.gbl...
Bonjour à tous,
Sous VB6 et Vista (pas sous XP), j'obtiens un dépassement de capacité sur
une assignation d'un entier long (Long), qui en fait se comporte comme un
Integer.
Avez-vous déjà eu ce pb et comment l'avez-vous résolu ?
Si je dépasse les 32.000 et des peuffes, il plante le message d'erreur.
Je n'avais pas ce pb dans le passé. Je me demande si ce n'est pas une question de Vista, car j'ai régulièrement des "curiosités".
"LE TROLL" <le a écrit dans le message de news:
Bonjour,
Si je fais ça : Dim l As Long l = 123456789012
C'est un dépassement de capacité !
Qu'est-ce que tu lui rentres dans ton long, peut être quelque chose d'indigeste ? Il se comporte comme un integer, pourquoi ? Ce sont des entiers signés éventuellement et seulement, dont la diférenc est la capacité...
Il se passe quoi si tu mets un double à la place ?
"Christian Hubert-Hugoud / weabow - Xtrem7" a écrit dans le message de news:%
Bonjour à tous,
Sous VB6 et Vista (pas sous XP), j'obtiens un dépassement de capacité sur une assignation d'un entier long (Long), qui en fait se comporte comme un Integer.
Avez-vous déjà eu ce pb et comment l'avez-vous résolu ?
Excellente continuation
Christian
LE TROLL
Bonjour, suite,
Je ne sais pas, moi avec Vista 32 + VB6, aucun problème, enfin, si, j'ai juste eu les menus qui étaient devenus trop larges, voir les feuilles, mais ça a peut être aussi à voir avec la taille de l'écran ? J'ai tout retassé, depuis RAS.
Oui, ta variable long semble se comporter comme un integer, je ne sais pas, peut être un rapport avec le code en amont ?
Pour ce qui me concerne, quand j'ai un problème de ce genre et que je ne trouve pas, je balance un Double et c'est réglé, avec la RAM actuelle on n'est pas à une variable près, même pas à cent d'ailleurs, et peut être qu'après tu comprendras pourquoi... Y a par exemple la possibilité il me semble, sous un nom savant, de forcer un type de variable en un autre, n'est-ce pas un truc de ce genre...
Désolé, peut être qu'un savant en variables va répondre ?
"Christian Hubert-Hugoud / weabow - Xtrem7" a écrit dans le message de news:
Facile :
Si je dépasse les 32.000 et des peuffes, il plante le message d'erreur.
Je n'avais pas ce pb dans le passé. Je me demande si ce n'est pas une question de Vista, car j'ai régulièrement des "curiosités".
"LE TROLL" <le a écrit dans le message de news:
Bonjour,
Si je fais ça : Dim l As Long l = 123456789012
C'est un dépassement de capacité !
Qu'est-ce que tu lui rentres dans ton long, peut être quelque chose d'indigeste ? Il se comporte comme un integer, pourquoi ? Ce sont des entiers signés éventuellement et seulement, dont la diférenc est la capacité...
Il se passe quoi si tu mets un double à la place ?
"Christian Hubert-Hugoud / weabow - Xtrem7" a écrit dans le message de news:%
Bonjour à tous,
Sous VB6 et Vista (pas sous XP), j'obtiens un dépassement de capacité sur une assignation d'un entier long (Long), qui en fait se comporte comme un Integer.
Avez-vous déjà eu ce pb et comment l'avez-vous résolu ?
Excellente continuation
Christian
Bonjour, suite,
Je ne sais pas, moi avec Vista 32 + VB6, aucun problème, enfin, si, j'ai
juste eu les menus qui étaient devenus trop larges, voir les feuilles, mais
ça a peut être aussi à voir avec la taille de l'écran ? J'ai tout retassé,
depuis RAS.
Oui, ta variable long semble se comporter comme un integer, je ne sais
pas, peut être un rapport avec le code en amont ?
Pour ce qui me concerne, quand j'ai un problème de ce genre et que je ne
trouve pas, je balance un Double et c'est réglé, avec la RAM actuelle on
n'est pas à une variable près, même pas à cent d'ailleurs, et peut être
qu'après tu comprendras pourquoi... Y a par exemple la possibilité il me
semble, sous un nom savant, de forcer un type de variable en un autre,
n'est-ce pas un truc de ce genre...
Désolé, peut être qu'un savant en variables va répondre ?
"Christian Hubert-Hugoud / weabow - Xtrem7" <nospam@weabow.com> a écrit dans
le message de news:eEMNBDDPKHA.4692@TK2MSFTNGP06.phx.gbl...
Facile :
Si je dépasse les 32.000 et des peuffes, il plante le message d'erreur.
Je n'avais pas ce pb dans le passé. Je me demande si ce n'est pas une
question de Vista, car j'ai régulièrement des "curiosités".
"LE TROLL" <le troll@enfer.fr> a écrit dans le message de
news:B5648E8E-108F-453A-94D9-F685BD1B70D7@microsoft.com...
Bonjour,
Si je fais ça :
Dim l As Long
l = 123456789012
C'est un dépassement de capacité !
Qu'est-ce que tu lui rentres dans ton long, peut être quelque chose
d'indigeste ?
Il se comporte comme un integer, pourquoi ?
Ce sont des entiers signés éventuellement et seulement, dont la diférenc
est la capacité...
Il se passe quoi si tu mets un double à la place ?
"Christian Hubert-Hugoud / weabow - Xtrem7" <nospam@weabow.com> a écrit
dans le message de news:%23HiasNCPKHA.4468@TK2MSFTNGP04.phx.gbl...
Bonjour à tous,
Sous VB6 et Vista (pas sous XP), j'obtiens un dépassement de capacité
sur une assignation d'un entier long (Long), qui en fait se comporte
comme un Integer.
Avez-vous déjà eu ce pb et comment l'avez-vous résolu ?
Je ne sais pas, moi avec Vista 32 + VB6, aucun problème, enfin, si, j'ai juste eu les menus qui étaient devenus trop larges, voir les feuilles, mais ça a peut être aussi à voir avec la taille de l'écran ? J'ai tout retassé, depuis RAS.
Oui, ta variable long semble se comporter comme un integer, je ne sais pas, peut être un rapport avec le code en amont ?
Pour ce qui me concerne, quand j'ai un problème de ce genre et que je ne trouve pas, je balance un Double et c'est réglé, avec la RAM actuelle on n'est pas à une variable près, même pas à cent d'ailleurs, et peut être qu'après tu comprendras pourquoi... Y a par exemple la possibilité il me semble, sous un nom savant, de forcer un type de variable en un autre, n'est-ce pas un truc de ce genre...
Désolé, peut être qu'un savant en variables va répondre ?
"Christian Hubert-Hugoud / weabow - Xtrem7" a écrit dans le message de news:
Facile :
Si je dépasse les 32.000 et des peuffes, il plante le message d'erreur.
Je n'avais pas ce pb dans le passé. Je me demande si ce n'est pas une question de Vista, car j'ai régulièrement des "curiosités".
"LE TROLL" <le a écrit dans le message de news:
Bonjour,
Si je fais ça : Dim l As Long l = 123456789012
C'est un dépassement de capacité !
Qu'est-ce que tu lui rentres dans ton long, peut être quelque chose d'indigeste ? Il se comporte comme un integer, pourquoi ? Ce sont des entiers signés éventuellement et seulement, dont la diférenc est la capacité...
Il se passe quoi si tu mets un double à la place ?
"Christian Hubert-Hugoud / weabow - Xtrem7" a écrit dans le message de news:%
Bonjour à tous,
Sous VB6 et Vista (pas sous XP), j'obtiens un dépassement de capacité sur une assignation d'un entier long (Long), qui en fait se comporte comme un Integer.
Avez-vous déjà eu ce pb et comment l'avez-vous résolu ?
Excellente continuation
Christian
Gloops
Bonjour,
Je n'ai pas la réponse mais je me demande ce que ça donnerait en déclarant la variable en Double.
Est-ce qu'on trouve quelque chose en cherchant "types de données sous Vista" ? ________________________________________________________________________ Christian Hubert-Hugoud / weabow - Xtrem7 a écrit, le 23/09/2009 09:56 :
Bonjour à tous,
Sous VB6 et Vista (pas sous XP), j'obtiens un dépassement de capacité sur une assignation d'un entier long (Long), qui en fait se comporte comme un Integer.
Avez-vous déjà eu ce pb et comment l'avez-vous résolu ?
Excellente continuation
Christian
Bonjour,
Je n'ai pas la réponse mais je me demande ce que ça donnerait en
déclarant la variable en Double.
Est-ce qu'on trouve quelque chose en cherchant "types de données sous
Vista" ?
________________________________________________________________________
Christian Hubert-Hugoud / weabow - Xtrem7 a écrit, le 23/09/2009 09:56 :
Bonjour à tous,
Sous VB6 et Vista (pas sous XP), j'obtiens un dépassement de capacité
sur une assignation d'un entier long (Long), qui en fait se comporte
comme un Integer.
Avez-vous déjà eu ce pb et comment l'avez-vous résolu ?
Je n'ai pas la réponse mais je me demande ce que ça donnerait en déclarant la variable en Double.
Est-ce qu'on trouve quelque chose en cherchant "types de données sous Vista" ? ________________________________________________________________________ Christian Hubert-Hugoud / weabow - Xtrem7 a écrit, le 23/09/2009 09:56 :
Bonjour à tous,
Sous VB6 et Vista (pas sous XP), j'obtiens un dépassement de capacité sur une assignation d'un entier long (Long), qui en fait se comporte comme un Integer.
Avez-vous déjà eu ce pb et comment l'avez-vous résolu ?
Excellente continuation
Christian
elziphir
Bonjour,
Dans le deuxième exemple la solution Si on exécute le code ci-dessous il y aura une erreur et pourtant il n'y a pas de dépassement de capacité.
Sub Brol Dim Mt as double Dim X as Integer Dim Y as Integer X = 133 Y = 247 Mt = X * Y 'Dépassement de capacité !!? 133 * 247 = 32851 on utilise un double End Sub
Solution
Sub SolutionBrol 'En utilisant des "Singles" Dim X as Single Dim Y as Single Dim Mt as Double X = 133 Y = 247 Mt = X * Y ' OK End Sub
Les opérantes doivent être déclarées en "Single"
Cordialement
elziphir
"Christian Hubert-Hugoud / weabow - Xtrem" wrote:
Bonjour à tous,
Sous VB6 et Vista (pas sous XP), j'obtiens un dépassement de capacité sur une assignation d'un entier long (Long), qui en fait se comporte comme un Integer.
Avez-vous déjà eu ce pb et comment l'avez-vous résolu ?
Excellente continuation
Christian
Bonjour,
Dans le deuxième exemple la solution
Si on exécute le code ci-dessous il y aura une erreur et pourtant il n'y a
pas de dépassement de capacité.
Sub Brol
Dim Mt as double
Dim X as Integer
Dim Y as Integer
X = 133
Y = 247
Mt = X * Y 'Dépassement de capacité !!? 133 * 247 = 32851 on utilise un
double
End Sub
Solution
Sub SolutionBrol 'En utilisant des "Singles"
Dim X as Single
Dim Y as Single
Dim Mt as Double
X = 133
Y = 247
Mt = X * Y ' OK
End Sub
Les opérantes doivent être déclarées en "Single"
Cordialement
elziphir
"Christian Hubert-Hugoud / weabow - Xtrem" wrote:
Bonjour à tous,
Sous VB6 et Vista (pas sous XP), j'obtiens un dépassement de capacité sur
une assignation d'un entier long (Long), qui en fait se comporte comme un
Integer.
Avez-vous déjà eu ce pb et comment l'avez-vous résolu ?
Dans le deuxième exemple la solution Si on exécute le code ci-dessous il y aura une erreur et pourtant il n'y a pas de dépassement de capacité.
Sub Brol Dim Mt as double Dim X as Integer Dim Y as Integer X = 133 Y = 247 Mt = X * Y 'Dépassement de capacité !!? 133 * 247 = 32851 on utilise un double End Sub
Solution
Sub SolutionBrol 'En utilisant des "Singles" Dim X as Single Dim Y as Single Dim Mt as Double X = 133 Y = 247 Mt = X * Y ' OK End Sub
Les opérantes doivent être déclarées en "Single"
Cordialement
elziphir
"Christian Hubert-Hugoud / weabow - Xtrem" wrote:
Bonjour à tous,
Sous VB6 et Vista (pas sous XP), j'obtiens un dépassement de capacité sur une assignation d'un entier long (Long), qui en fait se comporte comme un Integer.
Avez-vous déjà eu ce pb et comment l'avez-vous résolu ?
Excellente continuation
Christian
Jean-marc
elziphir wrote:
Bonjour,
Hello,
Dans le deuxième exemple la solution Si on exécute le code ci-dessous il y aura une erreur et pourtant il n'y a pas de dépassement de capacité.
Si.
Sub Brol Dim Mt as double Dim X as Integer Dim Y as Integer X = 133 Y = 247 Mt = X * Y 'Dépassement de capacité !!? 133 * 247 = 32851 on utilise un double
NON.
Il faut lire la doc de Visual Basic. Quand tu fais une opération entre 2 variables de type A et B, VB calcule en interne en utilisant le type le plus grand (le moins contraignant). Ici, X et Y sont de type INTEGER, donc VB utilise ce type pour stocker son résultat intermédiaire. Or, x * y = 133 * 247 = 32851, qui est PLUS grand que 32767 (la limite pour un Integer).
Tu as donc bien un dépassement de capacité.
Et le fait que tu veuilles ensuite AFFECTER à un type moins contraignant (ici un double) n'y change rien.
Un article de notre FAQ t'explique tout ça: http://faq.vb.free.fr/index.php?question5
et la doc de VB est très claire à ce sujet: http://msdn.microsoft.com/en-us/library/aa242833(VS.60).aspx
Dans le deuxième exemple la solution
Si on exécute le code ci-dessous il y aura une erreur et pourtant il
n'y a pas de dépassement de capacité.
Si.
Sub Brol
Dim Mt as double
Dim X as Integer
Dim Y as Integer
X = 133
Y = 247
Mt = X * Y 'Dépassement de capacité !!? 133 * 247 = 32851 on
utilise un double
NON.
Il faut lire la doc de Visual Basic.
Quand tu fais une opération entre 2 variables de type A et B, VB calcule
en interne en utilisant le type le plus grand (le moins contraignant).
Ici, X et Y sont de type INTEGER, donc VB utilise ce type pour
stocker son résultat intermédiaire.
Or, x * y = 133 * 247 = 32851, qui est PLUS grand que 32767 (la limite
pour un Integer).
Tu as donc bien un dépassement de capacité.
Et le fait que tu veuilles ensuite AFFECTER à un type moins contraignant
(ici un double) n'y change rien.
Un article de notre FAQ t'explique tout ça:
http://faq.vb.free.fr/index.php?question5
et la doc de VB est très claire à ce sujet:
http://msdn.microsoft.com/en-us/library/aa242833(VS.60).aspx
Dans le deuxième exemple la solution Si on exécute le code ci-dessous il y aura une erreur et pourtant il n'y a pas de dépassement de capacité.
Si.
Sub Brol Dim Mt as double Dim X as Integer Dim Y as Integer X = 133 Y = 247 Mt = X * Y 'Dépassement de capacité !!? 133 * 247 = 32851 on utilise un double
NON.
Il faut lire la doc de Visual Basic. Quand tu fais une opération entre 2 variables de type A et B, VB calcule en interne en utilisant le type le plus grand (le moins contraignant). Ici, X et Y sont de type INTEGER, donc VB utilise ce type pour stocker son résultat intermédiaire. Or, x * y = 133 * 247 = 32851, qui est PLUS grand que 32767 (la limite pour un Integer).
Tu as donc bien un dépassement de capacité.
Et le fait que tu veuilles ensuite AFFECTER à un type moins contraignant (ici un double) n'y change rien.
Un article de notre FAQ t'explique tout ça: http://faq.vb.free.fr/index.php?question5
et la doc de VB est très claire à ce sujet: http://msdn.microsoft.com/en-us/library/aa242833(VS.60).aspx