Le Friday 17 October 2008 10:47:47 Francois Gatto, vous avez écrit :
> Bonjour,
>
> Fabien a écrit :
> > Bonjour,
> >
> > Sauf erreur de ma part, je crois que je suis tombé sur un bug gênant.
> > Si je considère la procédure suivante:
> >
> > Sub test
> >     dim st(2) as string
> >     st=array("a","b","c")
> >     print st(0)
> >     ReDim Preserve st(1)
> >     print st(0)
> > end sub
> >
> > Normalement, cette procédure devrait renvoyer deux fois "a".
> > Or le deuxième "print" me renvoie une chaîne vide...
>
> En effet et il s'agit là d'un bug !
>
> Toutefois, juste pour préciser les choses, il convient bien de
> travailler sur des variables de même type. Or dans ton code,
> l'instruction ReDim sous entend un type Variant

Merci. Je viens de comprendre.

Effectivement, ceci marche: 

Sub test
        dim st
        st=array("a","b","c")
        print st(0)
        ReDim Preserve st(1)
        print st(0)
end sub

L'informatique a parfois ses subtilités qu'il faut du temps à saisir...

> On peut contourner le problème en définissant explicitement le type
> Variant ou implicitement en ne fournissant pas le typage.

Je contourne le problème en utilisant une variable variant temporaire puis en 
recopiant tous les éléments dans un tableau de chaines (Chaque élément du 
variant reste en effet une chaine). Un peu lourd, mais ça m'évite des 
surprises de compatibilité de variables pour la suite.

Merci,

Fabien.





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à