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 :

Concatener une variable structurée


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 309
    Par défaut Concatener une variable structurée
    Bonjour à tous

    Voila ....si je me créé une variable structurée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Type Structure
      a As String
      b As String
      c As String
    End Type
     
    Private Phrase As Structure
    Et que maintenant j'ai besoin de concatener dans une boucle, les elements de la variable structuré.
    Comment puis je faire ????

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Sub Form_Load()
     
     For i = 1 To 3
      Debug.Print Phrase.?????
     Next
     
    End Sub
    Je vous remercie
    Bonne journée

  2. #2
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 155
    Par défaut
    j'espère répondre à ta question...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub Form_Load() 
      Debug.Print Phrase.a & Phrase.b & Phrase.c
    End Sub

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 309
    Par défaut
    Bonjour ANNECA

    Le probleme c'est que je voudrais les faire apparaitre mais avec une boucle style for/next
    Et dans une boucle on ne peut enumerer qu'avec des chiffres.
    Et comme les structures de la variable ne peut etre appellées que par la lettre a, b et c.

    Y aurait il une combine pour voir apparaitre toutes les structures de la variable sans donner leur nom a, b et c

    Un peu comme si on pouvait dire

    Ou bien

    Ou bien

    Et que l'on ai exactement le resultat qu'avec le code que tu viens de me donner

    Si

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Phrase.a = "Coucou"
    Phrase.b = "je suis une"
    Phrase.c = "variable structurée"
    On obtiendrait donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Coucouje suis unevariable structurée
    C'est dur a expliquer

  4. #4
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 155
    Par défaut
    Je ne suis pas sûre que ce soit possible. Pourquoi n'utiliserais-tu pas plutôt un array comme ceci?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Option Explicit
    Private monarray() As String
    Private Sub Command1_Click()
    Dim i As Integer
       For i = 0 To UBound(monarray)
            Debug.Print monarray(i)
       Next i
    End Sub
     
    Private Sub Form_Load()
        monarray(0) = "Coucou"
        monarray(1) = "je suis une"
        monarray(2) = "variable structurée"
    End Sub

  5. #5
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    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 131
    Par défaut
    Bonjour,
    Un UDT est défini en mémoire par des pointeurs consécutifs(1 long pour 1 string variable)
    sauf s'il s'agit de strings délimités (string *... qui ont la longueur de la chaine).
    Ton type est donc défini en mémoire par 3 longs qui pointent chacun vers la chaine correspondante ;
    dès lors, il est aisé de les récupérer les uns après les autres dans une boucle.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 309
    Par défaut
    Je ne suis pas sûre que ce soit possible. Pourquoi n'utiliserais-tu pas plutôt un array comme ceci?
    Oui a force de lire un peu partout, j'ai l'impression que ce n'est pas possible
    Tu as raison.
    En fait, je voulais essayer d'utiliser une variable structurée plutot qu'un tableau, car je voulais simplifier la lecture de mon code grace justement a l'avantage de la structure qui justement porte un nom au lieu d'un chiffre comme le tableau.

    Evidemment comme c'est des noms ça a son avantage...mais je viens de trouver l'inconvenient

    Ca aurait été cool, que l'on puisse dire

    Et aussi (par exemple)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print Phrase/1 ou Debug.Print Phrase[1]
    Ce qui aurait donné le meme résultat
    Bon ce n'est pas moi qui vais donner cette idée a bilou

    En tout cas merci beaucoup de ton aide

    Bonjour,
    Un UDT est défini en mémoire par des pointeurs consécutifs(1 long pour 1 string variable)
    sauf s'il s'agit de strings délimités (string *... qui ont la longueur de la chaine).
    Ton type est donc défini en mémoire par 3 longs qui pointent chacun vers la chaine correspondante ;
    dès lors, il est aisé de les récupérer les uns après les autres dans une boucle
    .
    Bonjour DARKVADER
    Content aussi de revoir ta cigarette

    Bon alors, si je comprend bien, une variable structurée est gérée comme un tableau en memoire.
    Car pour les tableaux de string non dimensionné, c'est aussi un tableau de pointeur qui est géré.

    Bon alors ça tombe bien, je viens d'essayer de comprendre pendant une semaine, les tableaux et pointeur.
    Et ça n'a pas été facile pour ma petite tete
    Mais il doit me rester des restes

    Je pense donc que l'API copymemory est de rigueur et aussi l'instruction "cachée" strptr ou bien varptr (J'ai encore pas trop compris la difference)

    Je vais essayer de creer cette fonction comme un grand

    Par contre j'ai une question qui me viens déja a l'esprit tout de suite ????
    Comment tu sais justement le nombre d'element de structure, y'a pas moyen de le savoir ????

  7. #7
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    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 131
    Par défaut
    Len/LenB retourne la taille occupée en mémoire par l'udt.
    Dans ton cas (suite de long) il suffira de diviser par 4

Discussions similaires

  1. Afficher une variable structurée..
    Par Endori dans le forum Débuter
    Réponses: 3
    Dernier message: 16/02/2011, 01h57
  2. [JSTL] concatener une variable
    Par gentil dans le forum Taglibs
    Réponses: 1
    Dernier message: 30/03/2009, 22h27
  3. Tri à bulle dans une variable structurée
    Par viewtifulced dans le forum C
    Réponses: 5
    Dernier message: 19/08/2008, 11h33
  4. concatener une variable avec des guillemets
    Par 461219 dans le forum VBScript
    Réponses: 3
    Dernier message: 25/02/2008, 16h29
  5. Concatener une variable a un object?
    Par critok dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/02/2006, 19h38

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