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 :

Fonction renvoyant un tableau :


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 43
    Points : 27
    Points
    27
    Par défaut Fonction renvoyant un tableau :
    Bonjour (encore) a tous !
    Voici mon probleme, j'ai une fonction, qui recupere des donné, et qui les rentre dans un tableau de string.

    Ensuite, cette fonction doit retourne sont tableau, de facons a ce que je puisse le recuperer comme ca :
    Tableau := Mafonction();
    Pas de probleme a la compilation, mais quand j'utilise le programme, il plante, en mettant des showmessage un peu partout, j'ai pu etre sur qu'il plante a :
    Result[i] := link;

    (Link etant le texte a rentrer dans le tableau.)
    Je fais suivre la fonction en question :

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    function Donnecequisuis_multi(URL : string; debut:string;fin:string;maxinstance:integer):Tstringarray;
    var HTTP : TIdHTTP;
        Content, Link : string;
        Positiondeb : integer;
        Positionfin : integer;
        longueur : integer;
        i:integer ;//Pour le compteur dans la boucle qui trouve les planetes
        double_i : integer;
    begin
      HTTP := TIdHTTP.Create(nil);
      try
     
        //On recupere la page
        Content := HTTP.Get(URL);
     
      //On cherche les instances ;)
          Positiondeb := 0;
          Positionfin := 0;
          i:=1;
         while true do
         begin
     
              //On trouve le debut du truc
              Positiondeb := PosEx(debut, Content, Positiondeb+length(debut));
     
              //Si on trouve pas le mot,  on laisse tombé
              if Positiondeb = 0 then break;
     
              //On cherche la fin de la chaine
              PositionFin := PosEx(fin, Content, Positiondeb++length(debut));
     
              longueur := PositionFin - (PositionDeb+length(debut));
     
              //On copy le mot cherché dans la variable link
     
              link := copy(Content, PositionDeb+length(debut), longueur);
     
              //On renvoie le resultat
              showmessage('Sav'+link);
              Result[i] := link;
              showmessage('Verif');
              if maxinstance > i then break;
              i := i +1 ;
     
     
         end;
     
     
      finally
        HTTP.Free;
      end;
    end;
    PS : J'ai aussi essayer de faire sortir le tableau, avec des pointeurs, ca ne marche pas aussi Ca plante quand j'assigne l'adresse du tableau a mon pointeur ...

    Merci!

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    Je pense que tu devrais redimmensionner ton tableau à chaque enreigistrement de la valeur link.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ....
    SetLength(Result, Length(Result+1));
    Result[High(Result)] := Link;
    ....

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 43
    Points : 27
    Points
    27
    Par défaut
    Quand je le fait, ca fait operateur non applicable a ce type d'opperante
    sur la ligne
    SetLength(Result, Length(Result+1));

    T'a une idée?

    Merci!

  4. #4
    rbh
    rbh est déconnecté
    Membre confirmé Avatar de rbh
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    384
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 384
    Points : 473
    Points
    473
    Par défaut
    Salut
    SetLength(Result, Length(Result) + 1);

Discussions similaires

  1. [VBA-E] Fonction renvoyant un tableau
    Par glycerine dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 26/03/2013, 22h27
  2. Une fonction renvoyant un tableau
    Par Touffe54 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/12/2010, 21h21
  3. Fonction renvoyant un tableau VB5
    Par jaymzwise dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 28/08/2007, 15h01
  4. [VB6] [Syntaxe] Fonction renvoyant un tableau d'objets
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/10/2002, 15h33
  5. fonction renvoyant un tableau en argument
    Par Jones dans le forum Langage
    Réponses: 6
    Dernier message: 30/09/2002, 18h20

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