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 :

Longueur d'un tableau en VB


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Longueur d'un tableau en VB
    Bonjour,

    Je cherche à écrire en VB une fonction de recherche dans un tableau.
    Voici la fonction :

    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
    Public Function bChercheChaineDansTableau(ByVal strChaineCherchee As String, ByRef strTTableau() As String) As Boolean
     
    Dim iBoucle As Integer          'Variable de boucle
    Dim bChaineTrouvee As Boolean   'Indique si la chaîne a été trouvée dans le tableau
     
    bChaineTrouvee = False
    If strTTableau.Length > 0 Then
        'Au moins un élément dans le tableau
        iBoucle = LBound(strTTableau)
        Do
            If strTTableau(iBoucle) = strChaineCherchee Then
                bChaineTrouvee = True
            End If
            iBoucle = iBoucle + 1
        Loop Until bChaineTrouvee Or iBoucle > UBound(strTTableau)
     
    End If
     
    bChercheChaineDansTableau = bChaineTrouvee
     
    End Function
    Pour éviter les problèmes lors de l'appel à LBound(strTTableau) si le tableau est vide, je teste avant la longueur de ce dernier (If strTTableau.Length > 0)
    Dès l'entrée dans la fonction, j'ai un message "Erreur de compilation: Qualificateur incorrect" sur strTTableau de strTTableau.Length

    Je ne comprends pas, quelqu'un a la solution? Merci

  2. #2
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Fais ton test sur UBound de ton tableau plutôt (avec détection d'erreur si le tableau est vide) et dans ta boucle pour comparer la chaine, tu peux sortir avec un "Exit Do" dès que tu trouves une chaine égale à la chaine recherchée, ça évite de balayer tout le tableau pour rien si tu trouves une correpondance dès le début.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Oui, ça a marché, merci pour ton aide
    Je teste sur UBound(strTTAbleau), ce qui génère une erreur si le tableau est vide, que je récupère par un traitement particulier.

    Par contre, pour ta deuxième remarque, je m'arrête de parcourir le tableau dès que je trouve une occurrence de la chaîne cherchée, c'est le but du booléen bChaineTrouvee. C'est pour ça que j'ai fait un répéter jusqu'à au lieu d'un for.
    Je préfère la solution du booléen à l'exit do car j'ai des scrupules à mettre des "goto" au beau milieu de mon programme.

    En tout cas, merci pour la réponse.

  4. #4
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Désolé, j'avais pas fait gaffe à ton test dans la boucle.
    Perso je prefere un Exit Do (qui n'est pas un Goto) car ça économise un test dans la boucle.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Length : longueur d'un tableau dans pointeur de record
    Par sendibacori dans le forum Ada
    Réponses: 8
    Dernier message: 25/12/2007, 20h55
  2. Réponses: 4
    Dernier message: 04/02/2007, 01h06
  3. Longueur d'un tableau en VB6
    Par ssakhri dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 01/12/2006, 13h51
  4. [debutant] Connaitre la longueur d'un tableau.
    Par parp1 dans le forum Langage
    Réponses: 3
    Dernier message: 18/05/2006, 19h32
  5. Longueur d'un tableau
    Par petdelascar dans le forum MFC
    Réponses: 11
    Dernier message: 28/10/2005, 05h59

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