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

C++Builder Discussion :

Tableau 2D de Variant


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 118
    Par défaut Tableau 2D de Variant
    Bonjour,

    j'ai besoin de construire un tableau de variant à 3 lignes et 2 colonnes.
    D'après l'aide de BCB, je dois utiliser la méthode VarArrayCreate :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    V: Variant;
    V := VarArrayCreate([0,3,0,2], varInteger);
    ...
    Problème, à la compilation j'ai 3 erreurs :
    Utilisation impropre de typedef 'Variant'
    Déclaration multiple pour 'V'
    Syntaxe de l'expression

    Une idéé

    Merci

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Heu... tu es sûr que c'est du C++ ton truc !?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 118
    Par défaut
    Ben oui je pense !!
    J'ai trouvé ça dans l'aide de Borland C++ Builder. Mais comme ce morceau de code (que je cherche depuis pas mal de tps) concerne uniquement du C++ j'ai posté ici.

    Peut-être as-tu une autre méthode pour construire ce tableau

    Xav

  4. #4
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    bah en fait, la syntaxe que tu utilises ressemble plutôt à du Delphi...

    ensuite, c'est la première fois que j'entends parler de Variant... c'est propre à BCB ?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  5. #5
    Membre expérimenté
    Avatar de lanonyme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    229
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 229
    Par défaut
    Bonjour,

    J'ai vu de temps a autres des bout de code en delphi dans l'aide du builder...
    enfin ca reste Borland

    Concernant les variants, cela n'est pas propre a BCB... y'en a un peu partout, c'est le type de tout les types... en effet un variant accepte n'importe quoi
    Il est surment possible d'avoir une definition plus correct en cherchant un peu


    Concernant les tableaux, je crois que le mieux c'est :

    Comment créer et utiliser un tableau avec std::vector ?

    lanonyme

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Par défaut
    bah en fait, la syntaxe que tu utilises ressemble plutôt à du Delphi...
    c'est ce que je me disais egalement.
    J'allais te dire d'aller la
    http://www.developpez.net/forums/sho...ableau+variant
    mais c'est deja un de tes post

  7. #7
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Citation Envoyé par Swoög
    bah en fait, la syntaxe que tu utilises ressemble plutôt à du Delphi...

    ensuite, c'est la première fois que j'entends parler de Variant... c'est propre à BCB ?
    Voilà ce que dit l'aide de Builder sur Variant.

    La classe Variant est une implémentation C++ du type Pascal Objet intrinsèque Variant.
    Les rares fois où je l'ai utilisé, c'était pendant des tests sur l'utilisation des OLE Word et Excel...

    Et je confirme le Delphi-isme du code présenté

    Pour créer le tableau, il faudrait regarder de ce côté:
    Crée un tableau de Variants.

    __fastcall Variant(const int* bounds, const int boundsSize, Word varType);
    __fastcall Variant(const Variant* values, const int valuesSize);

    Description

    Utilisez les constructeurs de tableau pour créer un tableau variant.

    La première syntaxe crée un tableau variant dont les bornes sont spécifiées par bounds et le type d'élément par varType. Le paramètre bounds doit contenir un nombre de valeurs pair, et chaque couple de valeurs doit spécifier les bornes supérieure et inférieure d'une dimension du tableau. Le paramètre boundsSize indique l'indice du dernier élément de bounds. Le type des éléments du tableau, indiqué par le paramètre varType, doit être l'un des codes de types TVarData, et il ne doit pas inclure les bits varArray ou varByRef. Le type de l'élément ne peut être varString. Pour créer un tableau de chaînes variant, utilisez le code de type varOleStr. Si le type des éléments est varVariant, les éléments du tableau sont eux-mêmes des variants qui peuvent à leur tour contenir des tableaux variant.

    La deuxième syntaxe crée un tableau variant à une dimension avec les éléments spécifiés par le paramètre values. La borne inférieure du tableau renvoyé est zéro, sa borne supérieure est donnée par valuesSize (l'indice de la dernière valeur). Le type d'élément du tableau instancié est variant.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 118
    Par défaut
    Citation Envoyé par mike600river
    c'est ce que je me disais egalement.
    J'allais te dire d'aller la
    http://www.developpez.net/forums/sho...ableau+variant
    mais c'est deja un de tes post
    Oui j'avais posté sur le Forum BCB et C++
    J'ai toujours pas réussi à faire fonctionner cela avec la solution du 1er post.

    Mais par contre la solution de bakaneko me semble être la bonne solution. Seul hic : ce paramètre bounds ???????
    Quelle valeur pour obtenir : { {1,1},{1,1},{1,1} } ??? Je vais chercher ça ce soir....

    En tout cas merci pour votre aide

    Xav

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 118
    Par défaut
    ça y est cela fonctionne enfin

    Pour les prochains qui se poseront la question voici la solution pour un tableau 2D de variants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Variant vFieldInfo;     // On veut {{1,2},{2,2},{3,4}}
     vFieldInfo = VarArrayCreate(OPENARRAY(int, (0, 2, 0, 1)), varInteger);
     vFieldInfo.PutElement(1,0,0); //on affecte 1 (Colonne Excel N°1) à la ligne 0 colonne 0 du tab
     vFieldInfo.PutElement(2,0,1); //on affecte 2 (Format Texte = 2) à la ligne 0 colonne 1 du tab
     vFieldInfo.PutElement(2,1,0); //on affecte 2 (Colonne Excel N°2) à la ligne 1 colonne 0 du tab
     vFieldInfo.PutElement(2,1,1); //on affecte 2 (Format Texte = 2) à la ligne 1 colonne 1 du tab
     vFieldInfo.PutElement(3,2,0); //on affecte 3 (Colonne Excel N°3) à la ligne 2 colonne 0 du tab
     vFieldInfo.PutElement(4,2,1); //on affecte 4 (Format Date JMA = 2) à la ligne 2 colonne 1 du tab
    Merci à tous pour votre aide

    Xav

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

Discussions similaires

  1. [XL-2010] Comment obtenir la dimension d'un tableau de type variant
    Par ninolo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/01/2015, 16h13
  2. Remplir un tableau de VARIANT
    Par magicpm7 dans le forum C++
    Réponses: 3
    Dernier message: 15/08/2007, 10h37
  3. [D5+OLE] Variant := Tableau de variant
    Par MelkInarian dans le forum Delphi
    Réponses: 1
    Dernier message: 15/04/2007, 20h24
  4. Réponses: 10
    Dernier message: 05/02/2007, 11h21
  5. Réponses: 17
    Dernier message: 15/05/2006, 17h18

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