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 :

Passage de tableau dynamique en paramètre


Sujet :

Langage Delphi

  1. #1
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut Passage de tableau dynamique en paramètre
    Bonsoir,

    Je travaille en delphi 7,
    Je n'ai pas trouvé de fonction "Split".
    J'ai donc décidé de recréé cette fonction.
    Mais voila, comment passer en paramètre un tableau dynamique, ou récupéré ce tableau comme résultat de ma fonction.

    Je n'arrive pas à déclaré mon tableau en type de retour de ma fonction.
    Si je déclare un paramètre de type tableau, je ne peux pas l'initialisé avec "copy".
    Je travaille donc avec un tableau dynamique en local et quand je veux en faire la copie dans mon paramètre avec "Copy",a la compilation si il me dit qu'il y a incompatibilité de type entre les deux tableau

    Si quelqu'un à une solution je suis preneur

    Merci d'avance
    @+


    Pensez au tag

  2. #2
    Membre expert
    Avatar de Bestiol
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 515
    Points : 3 894
    Points
    3 894
    Par défaut
    Si j'ai bien compris ton problème, la solution est en fait de déclarer un type particulier pour ton tableau dynamique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    type
      TMonTableau = array of string;
    et ensuite de déclarer ta fonction split avec ce nouveau type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function Split(Texte: String; Separateur: Char): TMonTableau;
    Bonne prog'
    Bestiol.
    Mea est trop forte, elle flotte : mea coule pas !

    Basically this boot sector (Win95) code is 32 bit extension for a 16 bit patch to an 8 bit boot sector originally coded for a 4 bit microprocessor, written by a 2 bit company, that can't stand 1 bit of competition.

    olance.developpez.com
    Servez-vous, profitez, abusez de la FAQ Delphi !!

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Points : 318
    Points
    318
    Par défaut
    Il y a la fonction ExtractStrings pour splitter une chaine selon des séparateurs

  4. #4
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut



    MERCI

    c'est extra.

    Juste une dernière petite question.
    Si j'ai deux tableaux déclaré avec mon nouveau type, quelle syntaxe pour l'affectation est la plus propre? (Sachant que les deux marchent)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      Split:=TableauTmp;
    ou
      Split:=Copy(TableauTmp);
    Et encore MERCI!!!!!

    Merci aussi pour la syntaxe ExtractStrings mais qui est arrivée après le dev de ma fonction split publiée 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    Type
      MesTableaux = Array of string;
     
    Function Split(Texte:String;Separateur:Char) : MesTableaux;
    Var
      i : Integer;
      P : Integer;
      TableauTmp : MesTableaux;
    Begin
        {Initialise le tableaux}
        TableauTmp:=Copy(TableauTmp,High(TableauTmp)+1,0);
        I:=0;
        P:= Pos(Separateur,Texte);
        If P>0 then
        Begin
          While P>0 do
          Begin
            SetLength(TableauTmp,i+1);
            TableauTmp[i]:=copy(Texte,0,P-1);
            Texte:=copy(Texte,P+Length(Separateur),Length(Texte));
            P:= Pos(Separateur,Texte);
            i:=i+1;
          End;
          SetLength(TableauTmp,i+1);
          TableauTmp[i]:=Texte;
        End
        Else
        Begin
          SetLength(TableauTmp,i+1);
          TableauTmp[i]:=Texte;
        End;
      Split:=TableauTmp;
    End;
    Utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim 
      MonResultat : MesTableaux;
     
    MonResultat:=Split('Test1;Test2;Test3',';');
    Merci aussi pour vos remarques éventuels sur le style
    Je suis toujours preneur car je ne développe pas toujours en Delphi!
    @+


    Pensez au tag

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

Discussions similaires

  1. Problème de tableau dynamique en paramètre
    Par sapin dans le forum Langage
    Réponses: 2
    Dernier message: 11/04/2008, 14h33
  2. passage de tableau dynamique
    Par julien.63 dans le forum C
    Réponses: 14
    Dernier message: 08/06/2007, 22h36
  3. Réponses: 4
    Dernier message: 23/03/2007, 09h40
  4. [D7] passer un tableau dynamique en paramétre ?
    Par PhD13 dans le forum Langage
    Réponses: 6
    Dernier message: 11/01/2006, 18h09
  5. Comment passer un tableau dynamique en paramètre ?
    Par Charette dans le forum Langage
    Réponses: 2
    Dernier message: 21/04/2005, 11h28

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