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 .NET Discussion :

Comment lire les données d'un Array en Delphi.Net


Sujet :

Delphi .NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 34
    Points : 22
    Points
    22
    Par défaut Comment lire les données d'un Array en Delphi.Net
    Bonsoir,

    Je n'ai pas réussi à éditer le code correct pour "récupérer" les infos d'un Array d'un WebService. Voici mon code :

    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
    var
      ResultMessages : TArrayOfmessage;
      i, J : integer;
      Ch : string;
    
    begin
       ... 
       myHeader := MessengerHeader.Create;
       myHeader.Username := AdressMail;
       myHeader.Password := PassWord;
       myHeader.Account := Account;
       Service := accountService.AccountService.AccountService.Create;
       Service.MessengerHeaderValue := myHeader;
      
       ResultMessages := GetSentMessages(2009, 7);
       
         J := Length(ResultMessages);
       for i := 0 to J - 1 do
       begin
          Console.WriteLine('Message[{0}] = {1}', [i, ResultMessages[i]]);
          Ch := i.ToString; //Me retourne uniquement que l'index
        end;
    Comment récupérer chaque valeur contenu dans ResultMessages (j'ai 4 messages) et leur contenu (le message contient 10 champs), sans passr par Consol.WriteLine puisque je souhaite récupérer les données dans un string.

    Merci pour votre aide !

    Cordialement

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Bonjour.

    Et pourquoi pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ch := ResultMessages[i].TOString();
    ?
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 34
    Points : 22
    Points
    22
    Par défaut Comment lire les données d'un Array en Delphi.Net
    Bonjour,

    J'ai trouvé le code sur Internet et je l'ai appliqué à mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ch := ResultMessages[i].ToString;
    Mais cette fonction me retourne "Account.Service".

    Si je place la souris sur la ligne pendant le déboggage, j'obtient ce message dans la bulle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Console.WriteLine('Message', [i, ResultMessages[i]])
    prendant le déboggage, la bulle m'affiche :
    ResultMessages[i] = {"edd5bac4-199f-489f-8e06-288c4f8ef11f", Ph.rispal, "Bonjour, ceci est un essai", DateTime&, DateTime&, 0(0x0), 'Text', 3(0x3) 'Delivred', ph.rispal@xxx.fr"}
    Cela me donne bien le contenu du message mais comment le récupérer autre que par Console.XriteLine, je souhaite plutôt la récupérer par une variable string.

    Merci

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Si le debuggeur arrive à afficher les valeurs c'est alors que ResultMessages[i] doit lui-même donner sur un tableau.

    Dans ce cas essayes de faire un ResultMessages[i][0] pour récupérer la première valeur et ainsi de suite.
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 34
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    J'ai essayé avec ch := ResultMessages[i][0] mais le compilateur m'indique que la classe n'a pas de priorité !

    J'arrive à récupérer le contenu par la boucle suivante :
    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
     
    myHeader := MessengerHeader.Create;
    myHeader.Username := AdressMail;
    myHeader.Password := PassWord;
    myHeader.Account := Account;
    Service := accountService.AccountService.AccountService.Create;
    Service.MessengerHeaderValue := myHeader;
    ResultMessages := Service.GetSentMessages(2009, 7);
     
    //Pour lire le contenu
    MessageBox.Show('Nbre de messages : ' + IntToStr(Length(ResultMessages)));
     
    for i := 0 to Length(ResultMessages) - 1 do
    begin
        Console.WriteLine('', [ResultMessages[i]]);
    end;
    Console.WriteLine('', [ResultMessages[i]]); me renvoie bien la bonne valeur de chaque élément mais je souhaite récupérer la valeur dans un string et non une console !

    Exemple, du style suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ch := ResultMessages[i].ToString;
    mais la valeur retournée n'est pas bonne.

    ResultMessages est du type suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    type
      TArrayOfmessage = array of message;
     
    var
      ResultMessages : TArrayOfmessage;
    La fonction du WebService invoqué est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function GetSentMessages(year: Integer; month: Integer): TArrayOfmessage;
     
    type
      TArrayOfSystem_Object = array of System.Object;
    var
      results: TArrayOfSystem_Object;
    begin
      results := Self.Invoke('GetSentMessages', TArrayOfSystem_Object.Create  
                                      (year, month));
      Result := (TArrayOfmessage(results[0]));
    end;

    Merci pour votre aide !

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/12/2007, 19h34
  2. Réponses: 3
    Dernier message: 12/07/2007, 18h10
  3. Réponses: 3
    Dernier message: 31/01/2007, 17h46
  4. [cr 8.5] comment exploiter les données d'un "array"
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 12
    Dernier message: 09/06/2005, 14h03

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