Test Initialisation Tableau dynamique ???

ptithomm Messages postés 10 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 17 mai 2006 - 17 mai 2006 à 09:25
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 17 mai 2006 à 22:49
Bonjour,

Voila, j'ai un petit problème. J'utilise un tableau dynamique dans une fonction de mon programme. Cependant, lors de l'execution du programme je ne passe pas forcement dans cette fonction.
Dans une autre fonction (d'export) je souhaite tester si mon tableau est initialisé ou non.
exemple:

global Tableau() as Integer

public function Fonc()

Redim Tableau(1 to Toto)
.....

end function

public function Export()

if Tableau()=Nothing then ??????????????????
for i=Lbound(Tableau) to Ubound(Tableau)
......
next i
end if
.....
end function

Est on obligé de faire un redim du tableau genre redim tableau(0) quelque part pour que je teste si la dimension du tableau est egale a 1 si on n'est pas passé dans la fonction ? Ou y a t'il un test possible pour savoir si le tableau a été initialisé.

Merci d'avance

8 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 mai 2006 à 10:07
merci pour le multi post.....
Global est a remplacer par Public

tu peux tester le champs cDims de ton tableau....

(un truc dans ce genre :
Dim nPtr As Long
    CopyMemory nPtr, ByVal vlpArray, 4
    IsArrayInitialized = (nPtr <> 0))

mais le plus simple, c'est, je pense de conserver dans une variable l'etat du tableau (initialisé ou non)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
ptithomm Messages postés 10 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 17 mai 2006
17 mai 2006 à 10:45
Heu et en VB6 c'est possible ?
Car c'est du .Net ca non?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 mai 2006 à 10:49
c'est du VB6....

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
ptithomm Messages postés 10 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 17 mai 2006
17 mai 2006 à 10:52
ah ok pardon !
Je ne dois pas avoir la réference dans mon projet
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 mai 2006 à 10:59
la référence ? quelle référence ?
CopyMemory est une API.... ne passe pas par ce moyen, bien qu'il fonctionne....

fais simplement :

Public Tableau() as integer
Public IsTableauInitialized as Boolean

et plus loin :

Redim Tableau (. ......)
IsTableauInitialized  = True

et dans ton test :

If IsTableauInitialized  Then
     For i = Lbound ( Tableau ....

Il est également possible, bien sur de simplement mettre un On Error ... Mais bon, si on peux s'en passer !

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
17 mai 2006 à 19:02
Ou toujours possible via un gestionnaire d'erreur ...
Function Export()
Dim IL As Long

On Error Goto TableauNonInit
IL = Ubound(TonTableau)
On Error Goto 0
... Ici le tableau est bien initialisé
...
Exit Function
TableauNonInit:
... Ici le tableau n'est pas initialisé
End Function


ATTENTION !! Tu ne précise pas le type de valeur retournée par ta fonction, donc par défaut elle renvoi un Variant, ce qui n'est pas le top !

CR
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
17 mai 2006 à 21:07
ou alors ma méthode personnelle:


if Not (Not Tableau) Then

   le tableau est bien initialisé

   Else

   le tableau n'est pas initialisé

   End If

Daniel
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 mai 2006 à 22:49
très fort gobillot cette astuce


Crenaud76, bon exemple ^^ j'avais la flemme, j'ai juste mentionné le On Error ^^

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Rejoignez-nous