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

Delphi Discussion :

Type enregistrement ou "record"


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 57
    Par défaut Type enregistrement ou "record"
    Peut on réinitialiser d'un coup tous les champ de tous les enregistrement(soit 256 ici) de type "record" sans utiliser une boucle for i= ...to...do... ?:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    type
      TArticle = record
        PrixAchatHT          : currency;
        PrixPublicTTC        : currency;
        Designation          : string;
        Stock                : Integer;
    end;
     
    var
      Article : Array [1..256] of TArticle;
    Par réinitialiser cela signifie mettre les champs currency et integer à zéro, et les champs string à null

  2. #2
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 567
    Par défaut
    Non

    e-ric

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  3. #3
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Comme dit E-ric avec un tableau statique tu n'as pas d'autre moyen que de faire une boucle.

    Par contre avec un tableau dynamique il suffit de mettre sa longueur à 0 puis à 256.

    @+

  4. #4
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 567
    Par défaut
    Citation Envoyé par Claudius40
    Comme dit E-ric avec un tableau statique tu n'as pas d'autre moyen que de faire une boucle.

    Par contre avec un tableau dynamique il suffit de mettre sa longueur à 0 puis à 256.

    @+
    je souhaiterais connaître le rapport entre l'initialisation des éléments d'un tableau et l'utilisation de setLength, est-ce que SetLength procède à des initialisations implicites pour les types simples ?

    Personnellement, je préfère initialiser moi-même les éléments du tableau, au moins c'est explicite.

    Cordialement

    e-ric

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  5. #5
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut,

    Citation Envoyé par e-ric
    est-ce que SetLength procède à des initialisations implicites pour les types simples ?
    Oui 0 pour des Integer et Float, une chaine vide ('') pour des strings, False pour des Boolean, etc...

    Citation Envoyé par e-ric
    Personnellement, je préfère initialiser moi-même les éléments du tableau, au moins c'est explicite.
    Bien sûr, si les valeurs par défaut ne correspondent pas à tes besoins.

    @+ Claudius

  6. #6
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut
    Bonjour,

    avec une approche différente peut-être:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var
      Article : Array of TArticle;
    Et en jouant sur setlength:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    setlength(Article,256);  //alloué un tableau de 256 valeurs
      Article[0].Stock := 10; ;  //La tu remplis tes tableaux
    ...............
      setlength(Article,0);   //Efface ton tableau
      setlength(Article,256); //et le réalloue
    @+.

  7. #7
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut
    J'ai été devancé...

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 57
    Par défaut
    Bigre je n'avais pas pensé à la methode setlength avec une taille égale à zéro...(pas très logique de pouvoir définir un tableau de longueur nulle, mais bon ca marche...)

  9. #9
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Citation Envoyé par SurfingJeff
    Bigre je n'avais pas pensé à la methode setlength avec une taille égale à zéro...(pas très logique de pouvoir définir un tableau de longueur nulle, mais bon ca marche...)
    Si si c'est logique, c'est d'ailleurs ce que tu devras faire avant de quitter ton appli pour libérer la mémoire allouée au tableau.

    @+ Claudius

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

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