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 :

Comment créer une fonction qui retourne un tableau?


Sujet :

Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 211
    Points : 137
    Points
    137
    Par défaut Comment créer une fonction qui retourne un tableau?
    Bonjour, J'ai besoin de créer une fonction qui retourne un tableau.
    N'y arrivant pas, j'ai fait un petit exemple basic mais qui me génère un message d'erreur a la compilation:

    [Erreur] Unit1.pas(277): Identificateur attendu(e) mais 'ARRAY' trouvé(e)
    [Erreur] Unit1.pas(290): Types incompatibles : 'Array' et 'Integer'
    [Erreur fatale] Project1.dpr(5): Impossible de compiler l'unité utilisée 'Unit1.pas'


    voici le code que j'utilise:

    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
     
    function giveT(v:integer):array of integer;
    var
     t:Array[-1..1] of integer;
    begin
     t[-1]:=v;
     t[0]:=v+1;
     t[1]:=v+2;
     result:=t;
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
      t1:Array[-1..1] of integer;
    begin
      t1:=giveT(2);
      memo1.Lines.Add(inttostr(t1[-1])+' - '+inttostr(t1[0])+' - '+inttostr(t1[1]));
    end;
    Si ca compile et que mon code est bon (lol), cette exemple deverait afficher dans le memo: 2 - 3 - 4


  2. #2
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Merci de faire une recherche avant de poster: ce sujet a déjà été traité un nombre incalculable de fois...

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 565
    Points : 25 168
    Points
    25 168
    Par défaut
    Je dirais de regarder dans l'unités "Types" de Delphi ...

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 211
    Points : 137
    Points
    137
    Par défaut
    Merci ShaiLeTroll,
    T'avais raison, il suffisait de remplacer 'array[-1..1] of integer' par le par un type.
    Pedro pas obligé d'etre aussi
    Si J'ai posté ce poste c'est parce que je n'y arrivais vraimant pas, même en regardant d'autres postes traitant du sujet. Maintenant que j'ai la reponse j'avoue c'etait simple.
    Mais c'est toujours comme ca, c'est simple une fois que l'on a la réponse.

    Sinon voici le code fini au cas ou un jour un débutant est le même probleme que moi:

    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
     
    type TIntArray = array[-1..1] of integer;
     
    function giveT(v:integer):TIntArray ;
    var
     t:TIntArray;
    begin
     t[-1]:=v;
     t[0]:=v+1;
     t[1]:=v+2;
     result:=t;
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
      t1:TIntArray;
    begin
      t1:=giveT(2);
      memo1.Lines.Add(inttostr(t1[-1])+' - '+inttostr(t1[0])+' - '+inttostr(t1[1]));
    end;
    Encor merci ShaiLeTroll

  5. #5
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Citation Envoyé par Dereck07
    Pedro pas obligé d'etre aussi
    Pourtant: http://www.developpez.net/forums/sho...renvoi+tableau

    Promis, la prochaine fois, j'ajouterais un smiley dans mon message

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

Discussions similaires

  1. [Tableau] Créer une fonction qui retourne un tableau
    Par Imageek dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 31/01/2009, 16h54
  2. [JUnit] Comment tester une fonction qui retourne un booléen
    Par Raiden1234 dans le forum Tests et Performance
    Réponses: 2
    Dernier message: 15/12/2007, 19h29
  3. Réponses: 2
    Dernier message: 22/10/2007, 17h50
  4. Une fonction qui retourne un tableau
    Par DooSquare dans le forum C
    Réponses: 18
    Dernier message: 04/07/2007, 20h15
  5. Comment faire une fonction qui renvoi un tableau.
    Par poly128 dans le forum Delphi
    Réponses: 2
    Dernier message: 01/06/2006, 01h04

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