IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Savoir si un tableau de chaine a ete dimensionné ?


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2002
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 41
    Points : 31
    Points
    31
    Par défaut Savoir si un tableau de chaine a ete dimensionné ?
    Bonjour,

    En VB6, j'ai une déclaration de tableau de chaine non dimensionné :

    Et je voudrais faire un test pour savoir si ce tableau a été dimensionné ? (Tout en évitant les bricoles du style On Error Goto)

    J'ai essayé pas mal de choses mais aucune ne fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if Tabl is Null 
    if Tabl is Nothing 
    if IsNull (Tabl) 
    if IsEmpty(Tabl) 
    if IsError(Tabl) 
    if IsError(Tabl(0))
    Si qqun sait comment faire ...
    Merci.
      0  0

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Beu..h si tu veux éviter les bricoles faudras vois ailleur...
    bof... en variant ça commence à être possible. sans garantie (pas tester)
    je vais encore me faise houspiller par Ousk.
      0  0

  3. #3
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Et la propriété ubound(MaVariable) ne te convient pas ?
      0  0

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bonjour pc75

    Tant Lbound que Ubound devraient provoquer une erreur si le tableau n'est pas dimensionné.

    Bonne continuation...
      0  0

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2002
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    Merci mais UBound provoque une erreur "Subscript out of range"

    A défaut d'autre chose je suis quand même preneur des bricoles avec Variant !
      0  0

  6. #6
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Citation Envoyé par sergio_bzh Voir le message
    Bonjour,

    En VB6, j'ai une déclaration de tableau de chaine non dimensionné :

    Et je voudrais faire un test pour savoir si ce tableau a été dimensionné ? (Tout en évitant les bricoles du style On Error Goto)
    .../...
    En quoi une solution par le traitement des exceptions serait une bricole ?
    Si tu trouves une autre solution, beaucoup sera preneur sur ce forum.
      0  0

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bonjour, sergio_bzh

    Un code dont le déroulement a été bien pensé ne devrait jamais conduire à la nécessité d'un tel test.

    Mais passons...
    Si tu as des raisons qui m'échappent, sers-toi donc d'une variable booloéenne globale (force-la à false au départ (je sais pourquoi je le dis car j'entrevois une maladresse exposée en PS) et passe-la à True lors du dimensionnement dans ton code)
    Il te suffit ensuite de tester la valeur de cette variable et de décider de tes actions en fonction de cette valeur.

    tu devrais revoir, à mon avis, la manière dont tu déroules ton code).

    PS : ne s'agirait-il pas de maladresse résultant de l'utilisation maladroire de déchargements et rechargement, ou encore d'évènements Activate malencontreux ?

    Bonne coninuation... mais pense à ce que j'ai dit en ce qui concerne un déroulement malheureux ou mal pensé...
      0  0

  8. #8
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Avec une variable non déclarée essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim T
    Private Sub Form_Load()
    Dim e
        e = IsArray(T) '=Faux
    ReDim T(5)
        e = IsArray(T) '=Vrai
    End Sub
    J'ai testé.
    A+
      0  1

  9. #9
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Le test ne concerne que le cas d'une variable non typée et non n'importe quel tableau correctement déclaré.

    PS: Le plus comique, j'ai testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Dim t
        Dim e
            Debug.Print e = IsArray(t) '=Vrai
            ReDim t(5)
            Debug.Print e = IsArray(t) '=Faux
    dans la même procédure et j'ai le résultat inverse !
      0  0

  10. #10
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour DarkVader,
    C'est bien ce que j'ai précisé dans mon 1er poste. Rien n'empèche ensuite de redimentionner comme tu peu le constater.
    Et j'ai effectivement inversé le retour

    A+
    EDIT: mais non je n'ai pas inverser le retour...
    quand tu fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Debug.Print e = IsArray(T)
    C'est vrai puisque e = 0 et IsArray(T) aussi
    essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       e = IsArray(T) 
        Debug.Print e
      0  0

  11. #11
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par DarkVader Voir le message
    En quoi une solution par le traitement des exceptions serait une bricole ?
    Si tu trouves une autre solution, beaucoup sera preneur sur ce forum.
    +1


    tiens voici une "bricole"
    http://www.developpez.net/forums/sho...8&postcount=14
      0  0

  12. #12
    Nouveau membre du Club
    Inscrit en
    Novembre 2002
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    Je vois que ça réagit au terme "bricole" ! je dis bricole car c'est peut-être du traitement d'exception mais c'est du Goto et il me semblait que le Goto était une hérésie en programmation ...

    Ceci dit, je vais vous donner le contexte de mon pb.
    J'ai repris un code où une fonction de lecture d'une database rendait toujours un résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim Tabl() as String 
    Tabl = ReadDB(...)
    Aujourd'hui l'évolution des données fait que l'on peut ne pas avoir de résultat.
    Mon idée était donc de modifier ReadDB pour que la fonction ramène Nothing. Mais ce n'est donc pas possible.
    Je précise que la séquence ci-dessus (l'appel à ReadDB) existe en pas mal d'exemplaires dans le code, et qu'il y a quelquefois des On Error Goto en route. Donc toute modif serait à répéter un bon paquet de fois sauf si c'est dans ReadDB.


    Je viens d'essayer . C'est OK avec le Variant et le test IsArray ou IsEmpty.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim Tabl as Variant 
    Tabl = ReadDB(...) 
    if IsArray(Tabl) Then ....
    ' ou
    if IsEmpty(Tabl) Then ....
    c'est très bien comme cela, les modifs seront quand même minimum. Il y aura moins de taf qu'avec un On Error Goto ;-)

    Merci.
    Sergio
      0  0

  13. #13
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    il est où le goto ..? dans mon code... ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    Function EstVide(ByRef tb) As Boolean
        Dim bVide As Boolean
        bVide = True
        On Error Resume Next
        bVide = Not (UBound(tb) >= 0)
        EstVide = bVide
    End Function
      0  0

  14. #14
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Me revoilà ...

    Je savais bien que j'avais ça qui trainait dans mes tiroirs (code de Bill McCarthy)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    Private Declare Sub CopyMemory Lib "Kernel32.dll" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
    Private Declare Function VarPtr Lib "msvbvm60.dll" (aPtr As Any) As Long
     
     
    Public Function GetArrayDimensions(arr As Variant) As Integer
     
       Dim ppSA As Long, pSA As Long, intType As Integer
     
       CopyMemory intType, ByVal VarPtr(arr), 2&
       If intType And &H2000& Then
          If intType And &H4000& Then
             CopyMemory ppSA, ByVal VarPtr(arr) + 8, 4&
             CopyMemory pSA, ByVal ppSA, 4&
          Else
             CopyMemory pSA, ByVal VarPtr(arr) + 8, 4&
          End If
     
          If pSA Then CopyMemory GetArrayDimensions, ByVal pSA, 2&
       End If
     
    End Function
    en code «propre» .

    Pour la procédure de test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if GetArrayDimensions(myArr)<>0 then
      0  0

  15. #15
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Je suis au collège et il n'y a pas VB6 d'installé sur les postes (cette session-ci, du moins). J'ai donc testé avec VBA Excel (Ms Office 2003 avec VBA 6.3).

    Effectivement, lorsqu'un tableau dynamique n'es pas encore redimentionné les fonctions UBound et LBound provoque une erreur. C'est même une erreur numéro 9! Donc,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim tableau() As Integer
     
    Sub maprocedure()
        Dim i As Integer
        On Error Resume Next
        i = LBound(tableau)
        If Err.Number = 9 Then
            ' un premier élément à l'indice zéro
            ReDim tableau(0)
        End If
        MsgBox i
    End Sub
    devrait régler le problème.

    Reste plus qu'à vérifier si, sur VB6, c'est le même numéro d'erreur (ce qui devrait être le cas, à mon humble avis).
      0  0

  16. #16
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bonsoir,

    Excusez-moi d'intervenir tardivement (je m'étais promis de le faire et la chose m'est tout simplement sortie de l'esprit...).

    Je répare donc cet oubli maintenant.
    Voilà, sans faire appel à l'Api de Windows :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Command1_Click()
      Dim toto() As String
      MsgBox MonUbound(Not toto, toto)
      Dim titi(4) As String
      MsgBox MonUbound(Not titi, titi)
    End Sub
     
    Private Function MonUbound(ByRef quoi, qui) As Integer
      MonUbound = 0 ' cette ligne n'est d'ailleurs même pas nécessaire, puisque la fonction est typée en integer (donc 0 si rien)
      If Not quoi Then MonUbound = UBound(qui)
    End Function
    La même fonction servira pour plusieurs tableaux... (je laisse à chacun le soin d'ajouter ce qu'il convient de faire - c'est facile- pour extraire les Ubounds d'un tableau à plusieurs dimensions).
      0  0

  17. #17
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 165
    Points
    17 165
    Par défaut
    Citation Envoyé par ucfoutu
    MonUbound = 0 ' cette ligne n'est d'ailleurs même pas nécessaire
    a moins que ...... , et pour rester dans l'esprit des noms de variables chères à ucfoutu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Private Function MonUbound(ByRef quoi, qui) As Integer
      ' cette ligne n'est d'ailleurs même pas nécessaire ........
      MonUbound = -1 '<=========  a moins que, ma petite contribution
      If Not quoi Then MonUbound = UBound(qui)
    End Function
     
    Private Sub Form_Load()
      Dim toto() As String
      MsgBox "pour toto()" & vbCrLf & MonUbound(Not toto, toto) & " donc jamais dimensionné"
     
      Dim titi(4 To 9) As String
      If MonUbound(Not titi, titi) <> -1 Then
       MsgBox "pour titi(4 To 9)" & vbCrLf _
       & "indice le plus bas  = " & LBound(titi) & vbCrLf _
       & "indice le plus haut = " & UBound(titi) & vbCrLf _
       & "nombre d'indice " & (UBound(titi) - LBound(titi) + 1)
      End If
     
      Dim tata(0) As String
      If MonUbound(Not tata, tata) <> -1 Then
       If LBound(tata) Eqv UBound(tata) Then
        MsgBox "pour tata(0)" & vbCrLf & "nombre d'indice = 1" & vbCrLf _
       & "valeur de l'indice = " & UBound(tata)
       End If
      End If
     
       Dim tutu(2 To 2) As String
      If MonUbound(Not tutu, tutu) <> -1 Then
       If LBound(tutu) Eqv UBound(tutu) Then
        MsgBox "pour tutu(2 To 2)" & vbCrLf & "nombre d'indice = 1" & vbCrLf _
       & "valeur de l'indice = " & UBound(tutu)
       End If
      End If
     
    End
    End Sub
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈
      0  0

  18. #18
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bonjour, Progelect,

    Je salue ta recherche et ta réflexion.

    Je rajoute donc ici un petit élément de réflexion (mais te laisserai faire le reste)

    Que ferait ceci, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Private Sub Command1_Click()
      Dim toto()
      MsgBox cptdimensions(Not toto, toto)
      Dim titi(3, 2, 1)
      MsgBox cptdimensions(Not titi, titi)
    End Sub
     
    Private Function cptdimensions(quoi, qui) As Integer
      dim i as integer, blabla as integer
      If Not quoi Then MonUbound = UBound(qui) Else Exit Function
      i = 1
      Do While UBound(qui, i) > 0
      DoEvents
        On Error Resume Next
        blabla = UBound(qui, i)
        If Err <> 0 Then Exit Do
        i = i + 1
      Loop
      cptdimensions = i - 1
    End Function
    Et comment s'en servirait-on ?
    Je me sauve.
    Je te laisse le plaisir de "conjuguer" le tout (tant la/les fonction(s), que l'appel de la résultante de cette "conjugaison"... va falloir ajouter des paramètres...).. Bon amusement. Je te confie, comme à la Feria de Bayonne, les clefs de la ville.

    Amitiés à toi.
      0  1

  19. #19
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 165
    Points
    17 165
    Par défaut
    Petit erreur dans ton code (signalement pour les débutants qui risqueraient de ne pas comprendre se qui se passe)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      If Not quoi Then MonUbound = UBound(qui) Else Exit Function
    Citation Envoyé par Il faut
    If Not quoi Then cptdimensions = UBound(qui) Else Exit Function
    Cela m'embête un peu de continuer sur ce sujet (20 posts, je trouve que cela est déjà pas mal), j'apprécie la fonction MonUbound, j'ai encor appris quelque chose.
    Pour moi ton dernier post par sur un sujet complémentaire, qui grâce à la fonction que tu nous a mis MonUbound, permet, sans bug et en se passant d‘une gestion d‘erreur de Ubound(Tableau), de rechercher si il s’agit d’un tableau a une dimension ou plusieurs, mais cela ne m’a jamais posé de problème, la première étape par contre oui, que j’ai solutionné avec un On Error Resume Next.

    Je ne reviendrai pas sur ce post, pour moi, je suis content d’avoir appris une nouvelle chose, mais reste conscient que le dernier code que tu a mis, peut servir a d’autres.
    A la prochaine
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈
      0  0

  20. #20
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    oh ... (on a chômé...).
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Private Sub Command1_Click()
      Dim toto()
      MsgBox "pas initialisé ====> " & lebound(Not toto, toto, "bornesup", 1)
      MsgBox "pas initialisé ====> " & lebound(Not toto, toto, "borneinf", 1)
      Dim titi(6, 2 To 8, 1 To 15)
      MsgBox lebound(Not titi, titi, "borneinf", 1)
      MsgBox lebound(Not titi, titi, "bornesup", 1)
      MsgBox lebound(Not titi, titi, "borneinf", 2)
      MsgBox lebound(Not titi, titi, "bornesup", 2)
      MsgBox lebound(Not titi, titi, "borneinf", 3)
      MsgBox lebound(Not titi, titi, "bornesup", 3)
    End Sub
     
    Private Function lebound(quoi, qui, borne As String, dimen As Integer) As Integer
      Dim i As Integer, blabla As Integer
      If Not quoi Then
        i = 1
        Do While UBound(qui, i) > 0
          DoEvents
          On Error Resume Next
          blabla = UBound(qui, i)
          If Err Then Exit Do
          i = i + 1
        Loop
        If i - 1 >= dimen Then
          Select Case borne
            Case "bornesup"
              lebound = UBound(qui, dimen)
            Case "borneinf"
              lebound = LBound(qui, dimen)
            End Select
        End If
      End If
    End Function
      0  1

Discussions similaires

  1. Réponses: 10
    Dernier message: 31/05/2007, 15h10
  2. [C] tableau de chaines de caractères
    Par kitsune dans le forum C
    Réponses: 18
    Dernier message: 01/04/2006, 18h18
  3. [onclick]savoir l'id du champ qui a ete cliqué
    Par hansaplast dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/03/2006, 12h46
  4. tableau de chaine
    Par florantine dans le forum C++
    Réponses: 1
    Dernier message: 18/01/2006, 15h17
  5. Réponses: 11
    Dernier message: 31/12/2005, 13h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo