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 :

Tableaux delphi deux dimensions


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 78
    Points : 18
    Points
    18
    Par défaut Tableaux delphi deux dimensions
    Bonjour,

    Est il possible en delphi, d'avoir un tableau a deux dimensions avec plusieurs types ?

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 78
    Points : 18
    Points
    18
    Par défaut
    Mon problème, est que je dois récupérer plusieurs champs d'une table oracle dans un tableau, en Delphi, et ces champs là ne sont pas tous du même type.

  3. #3
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 856
    Points : 11 290
    Points
    11 290
    Billets dans le blog
    6
    Par défaut
    On ne peut avoir de tableau avec des colonnes de types différents (émulation possible avec pointeurs ou variants). On utilise couramment dans ce cas un tableau d'enregistrements :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    type
      TMyRec = record
        id: integer;
        name: string;
      end;
     
    var
      MyTab: array[1..100] of TMyRec;
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 78
    Points : 18
    Points
    18
    Par défaut
    Donc je créer un type ou j'indique tout les champs de ma table que j'ai besoin d'avoir en leur indiquant leur type et ensuite je parcours ma table et je récupère les champs que j'envoi dans mon tableau et cela marcherai du coup ? Mais dans ce cas la il faudrait que je fasse un table a deux dimensions non ?
    J'ai un problème il ne reconnait pas mon type, lorsque j’écris type il ne se met pas en gras, mon langage est du PascalScript

  5. #5
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 856
    Points : 11 290
    Points
    11 290
    Billets dans le blog
    6
    Par défaut
    La deuxième dimension du tableau est "remplacée" par la réunion des champs au sein de l'enregistrement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    MyRec[1].id:=123;
    MyRec[1].Name:='toto';
    // ou
    with MyRec[i] do 
    begin
      id:=123;
      Name:='toto';
    end;
    Quel est précisément ton langage de script ? RemObjects ? Ces derniers permettent apparemment les enregistrements.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 78
    Points : 18
    Points
    18
    Par défaut
    dac mais je peux aussi faire une boucle qui parcourt ma table pour afficher les valeurs ensuite dans le tableau parce que sinon si j'ai 20 valeur je devrais faire 20 fois :

    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
     
    MyRec[1].id:=123;
    MyRec[1].Name:='toto';
    // ou
    with MyRec[i] do 
    begin
      id:=123;
      Name:='toto';
    end;
     
    MyRec[1].id:=456;
    MyRec[1].Name:='titi';
    // ou
    with MyRec[i] do 
    begin
      id:=456;
      Name:='titi';
    end;
     
    ...
    J'utilise winpro, et dedans fastreport avec comme langage PascalScript mais pour moi c'est pareil que le Delphi

  7. #7
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 856
    Points : 11 290
    Points
    11 290
    Billets dans le blog
    6
    Par défaut
    Pas de bol pour les enregistrements ; en effet, on peut lire dans la documentation de FastScript :
    Missing features
    - No type declarations (records, classes) in the script; no records, no pointers, no sets
    (but you can use 'IN' operator - "a in ['a'..'c','d']"), no shortstrings, no GOTO statement.
    qui n'est donc pas PascalScript...
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2009
    Messages : 322
    Points : 310
    Points
    310
    Par défaut
    Les record sont une excellent solution

    Mais c'est possible avec des champs string. Et c'est d’ailleurs la solution que je privilégie.

    Ou encore (ce que la solution précédente amène), tu déclares plusieurs tableau à une dimension et chaque tableau a son type propre, et chaque indice de chaque tableau correspond au même enregistrement.

  9. #9
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 856
    Points : 11 290
    Points
    11 290
    Billets dans le blog
    6
    Par défaut
    Je ne suis pas sûr d'avoir bien compris tout le problème, malgré le MP.

    S'il s'agit de remplacer une fonction VB6 externe par un script FastScript dans FastReport de WinPro7, il n'y a pas de rapport avec Delphi.

    S'il s'agit de remplacer un programme VB6 par un programme Delphi, pourquoi aurait-on des limitations de types de données liées à un langage de script ? D'autant que le traitement est indépendant et que le lien entre script et fonction Delphi concerne une procédure, donc sans paramètres.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  10. #10
    Membre éprouvé Avatar de Simara1170
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Avril 2014
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Delphi
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2014
    Messages : 423
    Points : 1 154
    Points
    1 154
    Par défaut
    Je sais pas si c'est dans le cadre du problème, mais pour récupérer ta table sous forme de tableau 2D,
    tu crées un type record, comme on t'a déjà expliqué, avec les types voulus pour chaque champ de ta DB, et ensuite tu fait un array de record de la taille voulue?
    Citation Envoyé par deuche
    Il y a encore à peine 150 ans, nous vivions encore comme il y a environ 2000 ans.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 78
    Points : 18
    Points
    18
    Par défaut
    Oui ca j'ai bien compris j'avais pensé a faire aussi avec un enregistrement mais mon environnement ne me permet pas de faire cela il ne reconnait pas le mot clé type

  12. #12
    Membre éprouvé Avatar de Simara1170
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Avril 2014
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Delphi
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2014
    Messages : 423
    Points : 1 154
    Points
    1 154
    Par défaut
    Euh, t'es sûr que tu codes dans l'IDE delphi? Que tu déclares ton type au bon endroit?
    Citation Envoyé par deuche
    Il y a encore à peine 150 ans, nous vivions encore comme il y a environ 2000 ans.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 78
    Points : 18
    Points
    18
    Par défaut
    Non je code dans winpro avec fastreport. Sinon est il possible de créer une base de donnée via delphi, comme çà je créer une nouvelle base de donnée avec tout mes champs plus trois nouveaux champs

  14. #14
    Membre éprouvé Avatar de Simara1170
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Avril 2014
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Delphi
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2014
    Messages : 423
    Points : 1 154
    Points
    1 154
    Par défaut
    Donc attend je résume:
    tu nous demande si tu peux peindre en vert avec un crayon bleu, alors que t'utilise un crayon rouge?
    T'a pas un peu l'impression que t'es à côté de la plaque?

    Pour ta question concernant Delphi, non (enfin je ne crois pas) que tu puisses créer une DB sous Delphi, par contre tu peux très bien en attaquer une (paradoxe, Firebird, mySql, PostGre, Oracle, le choix est très vaste).
    Citation Envoyé par deuche
    Il y a encore à peine 150 ans, nous vivions encore comme il y a environ 2000 ans.

Discussions similaires

  1. tableaux dynamiques à deux dimensions
    Par nox75 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 23/04/2007, 17h35
  2. Réponses: 6
    Dernier message: 20/02/2007, 17h00
  3. Réponses: 27
    Dernier message: 19/04/2006, 17h58
  4. [Tableaux] tri de tableau deux dimensions
    Par oursquetaire dans le forum Langage
    Réponses: 8
    Dernier message: 27/12/2005, 14h27
  5. [Tableaux] Gerer des tableaux à deux dimensions
    Par FrankOVD dans le forum Langage
    Réponses: 2
    Dernier message: 02/12/2005, 15h20

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