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

Langage Delphi Discussion :

const record et array


Sujet :

Langage Delphi

  1. #1
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 438
    Points : 3 076
    Points
    3 076
    Par défaut const record et array
    Bonjour,

    Tout va être dans le code ci-dessous:

    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
     
      TElement = record
        Idx: Integer;
        Valeurs: TIntegerDynArray;
      end;
     
      TElements = array of TElement;
     
    const
      Elements: array[0..0] of TElement = (
        (Idx: 0; Valeurs:[1])
      );
     
      LElements: array[0..0] of TElements = (
     
         ?????????
     
      );
    Impossible de trouver la bonne syntaxe.

    Bon w-e !
    J-L aka Papy pour les amis

  2. #2
    Membre éprouvé
    Avatar de Cirec
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 467
    Points : 1 072
    Points
    1 072
    Par défaut
    Bonjour,

    en fait je crois, si je dis pas de conneries, que tu peux pas initialiser un tableau dynamique comme ça


    edit:
    si tu passes en tableau normal tu peux faire ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    type
      TElement = packed record
        Idx: Integer;
        Valeurs: array[0..2] of Integer;
      end;
     
      TElements = array[0..1] of TElement;
    const
      Elements: array[0..0] of TElement = (
        (Idx: 0; Valeurs:(1, 2, 3))
      );
     
      LElements: array[0..0] of TElements = (((Idx:0; Valeurs:(5,8,10)),
                                              (Idx:1; Valeurs:(15,18,110))));
    Cordialement,
    @+

  3. #3
    Membre éprouvé
    Avatar de Cirec
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 467
    Points : 1 072
    Points
    1 072
    Par défaut
    ...
    depuis XE7 on peut initialiser un tableau dynamique dans une constante ...
    mais dès qu'il contient un record ... ça coince

    j'ai pas encore réussit

  4. #4
    Membre expérimenté
    Avatar de retwas
    Homme Profil pro
    Développeur Java/Delphi
    Inscrit en
    Mars 2010
    Messages
    698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java/Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 698
    Points : 1 608
    Points
    1 608
    Billets dans le blog
    4
    Par défaut
    Et avec une TObjectList<T record> ?

  5. #5
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    il doit y avoir une faiblesse dans le compilateur

    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
     
    type
      TElement = record
        Idx    : Integer;
        Valeurs: TArray<Integer>;
      end;
     
      TElements = TArray<TElement>;
     
    const
      El1 : TElement = (Idx: 1; Valeurs: [1]); // ok
     
      Elements1 : array[0..0] of TElement = ((Idx: 1; Valeurs: [1])); // ok
     
      Elements2 : TElements = []; // ok
     
      Elements3 : TElements = [El1];  // E2026 Expression constante attendu
      Elements4 : TElements = [(Idx: 1; Valeurs: [1])]; // E2003 Indentificateur non déclaré 'Idx'
    je pense que Elements4 aurait du compiler...
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 438
    Points : 3 076
    Points
    3 076
    Par défaut
    Toutes réponses me confortent ! J'avais peur d'être devenu complètement nul ou d'avoir subi l'effet vendredi
    Il y a donc bien un truc qui coince.

    J'ai aussi essayé de déclarer d'abord le le tableau inclus mais rien n'y a fait.
    J-L aka Papy pour les amis

  7. #7
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 438
    Points : 3 076
    Points
    3 076
    Par défaut
    Citation Envoyé par retwas Voir le message
    Et avec une TObjectList<T record> ?
    Le but est d'avoir un accès facile à certaines données imbriquées.
    Je trouvais plus simple d'avoir un record que je n'ai pas besoin de créer, remplir, libérer (délivrer ..... ).
    Mais oui, ça pourrait être une solution alternative.

    J'ai opté pour une initialisation des données dans une fonction.
    J-L aka Papy pour les amis

Discussions similaires

  1. record et array
    Par Mordokkai dans le forum Ada
    Réponses: 5
    Dernier message: 26/09/2014, 18h56
  2. Record en Array of StringList
    Par BuzzLeclaire dans le forum Langage
    Réponses: 14
    Dernier message: 31/10/2009, 16h00
  3. low d un array of record : pb ds boucle FOR
    Par sp2308 dans le forum Débuter
    Réponses: 9
    Dernier message: 24/01/2009, 19h09
  4. [LG] Array to packed record
    Par Nomiss dans le forum Langage
    Réponses: 4
    Dernier message: 16/12/2005, 22h28
  5. [Types] Manipulation d'un array of const
    Par Clorish dans le forum Langage
    Réponses: 2
    Dernier message: 03/06/2005, 14h18

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