Ds un projet VB6, je découpe une chaine de caractères (nom de fichier)
suivant le caractère ".". J'utilise donc la fonction split().
Toutefois, j'ai fait qq modifs ds mon code et maintenant mon code pourtant
simple de "splitage" me retourne l'erreur: <indice en dehors de la plage>
pour UBound(St1)
q = 0
While Dir(FolderEnv) <> ""
Chaine = Dir(FolderEnv)
St1() = Split(Chaine, ".")
For q = 1 To UBound(St1)
MsgBox St1(q)
Next q
Wend
St1() est déclaré en Dim St1(). Chaine est déclaré en Dim Chaine as string.
C'est très énervant.
Une idée du pkoi ?
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
Bul
bonjour, la séquence est faite même si chaine = vbnullstring St1() = Split(Chaine, ".") For q = 1 To UBound(St1) MsgBox St1(q) Next q donc ubound(st1)=0
chaine=Dir(FolderEnv) While chaine <> "" St1() = Split(Chaine, ".") For q = 1 To UBound(St1) MsgBox St1(q) Next q Chaine = Dir Wend ça devrait aller mieux
bonjour,
la séquence est faite même si
chaine = vbnullstring
St1() = Split(Chaine, ".")
For q = 1 To UBound(St1)
MsgBox St1(q)
Next q
donc ubound(st1)=0
chaine=Dir(FolderEnv)
While chaine <> ""
St1() = Split(Chaine, ".")
For q = 1 To UBound(St1)
MsgBox St1(q)
Next q
Chaine = Dir
Wend
ça devrait aller mieux
bonjour, la séquence est faite même si chaine = vbnullstring St1() = Split(Chaine, ".") For q = 1 To UBound(St1) MsgBox St1(q) Next q donc ubound(st1)=0
chaine=Dir(FolderEnv) While chaine <> "" St1() = Split(Chaine, ".") For q = 1 To UBound(St1) MsgBox St1(q) Next q Chaine = Dir Wend ça devrait aller mieux
Dom
Merci Bull de la réponse mais ce n'est pas ca. Au moment ou j'arrive ds le split, je suis toujours certain que la chaine à spliter est non nulle. L'erreur n'est donc pas dû à une chaine nulle. Autre idée ?
Dom
Merci Bull de la réponse mais ce n'est pas ca.
Au moment ou j'arrive ds le split, je suis toujours certain que la chaine à
spliter est non nulle.
L'erreur n'est donc pas dû à une chaine nulle.
Autre idée ?
Merci Bull de la réponse mais ce n'est pas ca. Au moment ou j'arrive ds le split, je suis toujours certain que la chaine à spliter est non nulle. L'erreur n'est donc pas dû à une chaine nulle. Autre idée ?
Dom
Dom
Précision: je viens de remarquer qu'un autre split situé plus haut dans mon code me retourne maintenant la même erreur <indice en dehors de la plage> lorsque je passe dessus. Je n'ai rien touché à ce split là et il fonctionnait sans pb jusque lors ... J'y perds mon latin ... Que se passe t il ??? Dom
Précision: je viens de remarquer qu'un autre split situé plus haut dans mon
code me retourne maintenant la même erreur <indice en dehors de la plage>
lorsque je passe dessus. Je n'ai rien touché à ce split là et il
fonctionnait sans pb jusque lors ... J'y perds mon latin ... Que se passe t
il ???
Dom
Précision: je viens de remarquer qu'un autre split situé plus haut dans mon code me retourne maintenant la même erreur <indice en dehors de la plage> lorsque je passe dessus. Je n'ai rien touché à ce split là et il fonctionnait sans pb jusque lors ... J'y perds mon latin ... Que se passe t il ??? Dom
Patrice Henrio
Es-tu sûr que le tableau obtenu par split commence à 1. de mémoire et sans vérifier je crois qu'il commence à 0. Je viens de vérifier c'est bien le cas. Donc For q = 0 To UBound(St1) MsgBox St1(q) Next q Je pense que le problème arrive s'il n'y a pas de . donc le tableau ne comporte que la case 0 et la boucle va de 0 à 1. Je ne suis pas sûr de ce que je viens d'avancer mais c'est vers cela qu'il faut creuser en utilisant diverse valeur d'une variable string. "Dom" a écrit dans le message de news:
Précision: je viens de remarquer qu'un autre split situé plus haut dans mon code me retourne maintenant la même erreur <indice en dehors de la plage> lorsque je passe dessus. Je n'ai rien touché à ce split là et il fonctionnait sans pb jusque lors ... J'y perds mon latin ... Que se passe t il ??? Dom
Es-tu sûr que le tableau obtenu par split commence à 1. de mémoire et sans
vérifier je crois qu'il commence à 0.
Je viens de vérifier c'est bien le cas.
Donc
For q = 0 To UBound(St1)
MsgBox St1(q)
Next q
Je pense que le problème arrive s'il n'y a pas de . donc le tableau ne
comporte que la case 0 et la boucle va de 0 à 1. Je ne suis pas sûr de ce
que je viens d'avancer mais c'est vers cela qu'il faut creuser en utilisant
diverse valeur d'une variable string.
"Dom" <laurentNOSPANdom@free.fr> a écrit dans le message de news:
u2HQqdLoEHA.3392@TK2MSFTNGP15.phx.gbl...
Précision: je viens de remarquer qu'un autre split situé plus haut dans
mon
code me retourne maintenant la même erreur <indice en dehors de la plage>
lorsque je passe dessus. Je n'ai rien touché à ce split là et il
fonctionnait sans pb jusque lors ... J'y perds mon latin ... Que se passe
t
il ???
Dom
Es-tu sûr que le tableau obtenu par split commence à 1. de mémoire et sans vérifier je crois qu'il commence à 0. Je viens de vérifier c'est bien le cas. Donc For q = 0 To UBound(St1) MsgBox St1(q) Next q Je pense que le problème arrive s'il n'y a pas de . donc le tableau ne comporte que la case 0 et la boucle va de 0 à 1. Je ne suis pas sûr de ce que je viens d'avancer mais c'est vers cela qu'il faut creuser en utilisant diverse valeur d'une variable string. "Dom" a écrit dans le message de news:
Précision: je viens de remarquer qu'un autre split situé plus haut dans mon code me retourne maintenant la même erreur <indice en dehors de la plage> lorsque je passe dessus. Je n'ai rien touché à ce split là et il fonctionnait sans pb jusque lors ... J'y perds mon latin ... Que se passe t il ??? Dom
Patrice Henrio
Es-tu sûr que le tableau obtenu par split commence à 1. de mémoire et sans vérifier je crois qu'il commence à 0. Je viens de vérifier c'est bien le cas. Donc For q = 0 To UBound(St1) MsgBox St1(q) Next q Je pense que le problème arrive s'il n'y a pas de . donc le tableau ne comporte que la case 0 et la boucle va de 0 à 1. Je ne suis pas sûr de ce que je viens d'avancer mais c'est vers cela qu'il faut creuser en utilisant diverse valeur d'une variable string. "Dom" a écrit dans le message de news:
Précision: je viens de remarquer qu'un autre split situé plus haut dans mon code me retourne maintenant la même erreur <indice en dehors de la plage> lorsque je passe dessus. Je n'ai rien touché à ce split là et il fonctionnait sans pb jusque lors ... J'y perds mon latin ... Que se passe t il ??? Dom
Es-tu sûr que le tableau obtenu par split commence à 1. de mémoire et sans
vérifier je crois qu'il commence à 0.
Je viens de vérifier c'est bien le cas.
Donc
For q = 0 To UBound(St1)
MsgBox St1(q)
Next q
Je pense que le problème arrive s'il n'y a pas de . donc le tableau ne
comporte que la case 0 et la boucle va de 0 à 1. Je ne suis pas sûr de ce
que je viens d'avancer mais c'est vers cela qu'il faut creuser en utilisant
diverse valeur d'une variable string.
"Dom" <laurentNOSPANdom@free.fr> a écrit dans le message de news:
u2HQqdLoEHA.3392@TK2MSFTNGP15.phx.gbl...
Précision: je viens de remarquer qu'un autre split situé plus haut dans
mon
code me retourne maintenant la même erreur <indice en dehors de la plage>
lorsque je passe dessus. Je n'ai rien touché à ce split là et il
fonctionnait sans pb jusque lors ... J'y perds mon latin ... Que se passe
t
il ???
Dom
Es-tu sûr que le tableau obtenu par split commence à 1. de mémoire et sans vérifier je crois qu'il commence à 0. Je viens de vérifier c'est bien le cas. Donc For q = 0 To UBound(St1) MsgBox St1(q) Next q Je pense que le problème arrive s'il n'y a pas de . donc le tableau ne comporte que la case 0 et la boucle va de 0 à 1. Je ne suis pas sûr de ce que je viens d'avancer mais c'est vers cela qu'il faut creuser en utilisant diverse valeur d'une variable string. "Dom" a écrit dans le message de news:
Précision: je viens de remarquer qu'un autre split situé plus haut dans mon code me retourne maintenant la même erreur <indice en dehors de la plage> lorsque je passe dessus. Je n'ai rien touché à ce split là et il fonctionnait sans pb jusque lors ... J'y perds mon latin ... Que se passe t il ??? Dom
Jean-Marc
Hello,
comme ça aucun soucis:
Private Sub Command1_Click() Dim q As Integer Dim st1() As String Dim chaine As String
st1() = Split(chaine, ".") For q = LBound(st1()) To UBound(st1()) MsgBox st1(q) Next q chaine = Dir$() Wend End Sub
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't."
"Dom" a écrit dans le message de news:
Bonjour,
Ds un projet VB6, je découpe une chaine de caractères (nom de fichier) suivant le caractère ".". J'utilise donc la fonction split(). Toutefois, j'ai fait qq modifs ds mon code et maintenant mon code pourtant simple de "splitage" me retourne l'erreur: <indice en dehors de la plage> pour UBound(St1)
q = 0 While Dir(FolderEnv) <> "" Chaine = Dir(FolderEnv) St1() = Split(Chaine, ".") For q = 1 To UBound(St1) MsgBox St1(q) Next q Wend
St1() est déclaré en Dim St1(). Chaine est déclaré en Dim Chaine as
string.
C'est très énervant. Une idée du pkoi ?
Merci Dom
Hello,
comme ça aucun soucis:
Private Sub Command1_Click()
Dim q As Integer
Dim st1() As String
Dim chaine As String
st1() = Split(chaine, ".")
For q = LBound(st1()) To UBound(st1())
MsgBox st1(q)
Next q
chaine = Dir$()
Wend
End Sub
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
"Dom" <laurentNOSPANdom@free.fr> a écrit dans le message de
news:uUp6VELoEHA.2904@TK2MSFTNGP15.phx.gbl...
Bonjour,
Ds un projet VB6, je découpe une chaine de caractères (nom de fichier)
suivant le caractère ".". J'utilise donc la fonction split().
Toutefois, j'ai fait qq modifs ds mon code et maintenant mon code pourtant
simple de "splitage" me retourne l'erreur: <indice en dehors de la plage>
pour UBound(St1)
q = 0
While Dir(FolderEnv) <> ""
Chaine = Dir(FolderEnv)
St1() = Split(Chaine, ".")
For q = 1 To UBound(St1)
MsgBox St1(q)
Next q
Wend
St1() est déclaré en Dim St1(). Chaine est déclaré en Dim Chaine as
st1() = Split(chaine, ".") For q = LBound(st1()) To UBound(st1()) MsgBox st1(q) Next q chaine = Dir$() Wend End Sub
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't."
"Dom" a écrit dans le message de news:
Bonjour,
Ds un projet VB6, je découpe une chaine de caractères (nom de fichier) suivant le caractère ".". J'utilise donc la fonction split(). Toutefois, j'ai fait qq modifs ds mon code et maintenant mon code pourtant simple de "splitage" me retourne l'erreur: <indice en dehors de la plage> pour UBound(St1)
q = 0 While Dir(FolderEnv) <> "" Chaine = Dir(FolderEnv) St1() = Split(Chaine, ".") For q = 1 To UBound(St1) MsgBox St1(q) Next q Wend
St1() est déclaré en Dim St1(). Chaine est déclaré en Dim Chaine as
string.
C'est très énervant. Une idée du pkoi ?
Merci Dom
Vincent Guichard
Dom a écrit :
Bonjour,
Ds un projet VB6, je découpe une chaine de caractères (nom de fichier) suivant le caractère ".". J'utilise donc la fonction split(). Toutefois, j'ai fait qq modifs ds mon code et maintenant mon code pourtant simple de "splitage" me retourne l'erreur: <indice en dehors de la plage> pour UBound(St1)
q = 0 While Dir(FolderEnv) <> "" Chaine = Dir(FolderEnv) St1() = Split(Chaine, ".") For q = 1 To UBound(St1) MsgBox St1(q) Next q Wend
St1() est déclaré en Dim St1(). Chaine est déclaré en Dim Chaine as string. C'est très énervant. Une idée du pkoi ?
Merci Dom
Essaie d'enlever les parenthèses après St1: St1 = Split(Chaine, ".")
Et défini de préférence St1 comme tableau de chaine (Dim St1() as String)
Vincent Guichard
Dom a écrit :
Bonjour,
Ds un projet VB6, je découpe une chaine de caractères (nom de fichier)
suivant le caractère ".". J'utilise donc la fonction split().
Toutefois, j'ai fait qq modifs ds mon code et maintenant mon code pourtant
simple de "splitage" me retourne l'erreur: <indice en dehors de la plage>
pour UBound(St1)
q = 0
While Dir(FolderEnv) <> ""
Chaine = Dir(FolderEnv)
St1() = Split(Chaine, ".")
For q = 1 To UBound(St1)
MsgBox St1(q)
Next q
Wend
St1() est déclaré en Dim St1(). Chaine est déclaré en Dim Chaine as string.
C'est très énervant.
Une idée du pkoi ?
Merci
Dom
Essaie d'enlever les parenthèses après St1:
St1 = Split(Chaine, ".")
Et défini de préférence St1 comme tableau de chaine (Dim St1() as String)
Ds un projet VB6, je découpe une chaine de caractères (nom de fichier) suivant le caractère ".". J'utilise donc la fonction split(). Toutefois, j'ai fait qq modifs ds mon code et maintenant mon code pourtant simple de "splitage" me retourne l'erreur: <indice en dehors de la plage> pour UBound(St1)
q = 0 While Dir(FolderEnv) <> "" Chaine = Dir(FolderEnv) St1() = Split(Chaine, ".") For q = 1 To UBound(St1) MsgBox St1(q) Next q Wend
St1() est déclaré en Dim St1(). Chaine est déclaré en Dim Chaine as string. C'est très énervant. Une idée du pkoi ?
Merci Dom
Essaie d'enlever les parenthèses après St1: St1 = Split(Chaine, ".")
Et défini de préférence St1 comme tableau de chaine (Dim St1() as String)
Vincent Guichard
Il y a toujours la possibilité de donner
Option base 1
dans le module que tu programme... ainsi tous tes array commenceront a l'index 1
Il y a toujours la possibilité de donner
Option base 1
dans le module que tu programme...
ainsi tous tes array commenceront a l'index 1
dans le module que tu programme... ainsi tous tes array commenceront a l'index 1
Patrice Henrio
Et non, même avec option base 1, Split renvoie un tableau indexé à partir de 0.
a écrit dans le message de news: 093501c4a14d$1355cb80$ Il y a toujours la possibilité de donner
Option base 1
dans le module que tu programme... ainsi tous tes array commenceront a l'index 1
Et non, même avec option base 1, Split renvoie un tableau indexé à partir de
0.
<anonymous@discussions.microsoft.com> a écrit dans le message de news:
093501c4a14d$1355cb80$a301280a@phx.gbl...
Il y a toujours la possibilité de donner
Option base 1
dans le module que tu programme...
ainsi tous tes array commenceront a l'index 1