Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > Delphi > Delphi .NET
Delphi .NET Forum d'entraide sur l'EDI Delphi pour .NET et Borland Developer Studio
Avant de poster -> F.A.Q. Delphi .NET, F.A.Q. Delphi ASP.NET
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 05/07/2009, 21h17   #1
PHIL45
Invité régulier
 
Inscription : mars 2003
Messages : 34
Détails du profil
Informations personnelles :
Âge : 59

Informations forums :
Inscription : mars 2003
Messages : 34
Points : 6
Points : 6
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 :
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
PHIL45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2009, 08h48   #2
Aka Guymelef
Membre Expert
 
Inscription : novembre 2007
Messages : 1 519
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : novembre 2007
Messages : 1 519
Points : 1 919
Points : 1 919
Bonjour.

Et pourquoi pas :
Code :
Ch := ResultMessages[i].TOString();
?
__________________
La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

Pas de sollicitations techniques par MP -
Aka Guymelef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2009, 10h02   #3
PHIL45
Invité régulier
 
Inscription : mars 2003
Messages : 34
Détails du profil
Informations personnelles :
Âge : 59

Informations forums :
Inscription : mars 2003
Messages : 34
Points : 6
Points : 6
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 :
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 :
Console.WriteLine('Message', [i, ResultMessages[i]])
prendant le déboggage, la bulle m'affiche :
Citation:
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
PHIL45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2009, 20h23   #4
Aka Guymelef
Membre Expert
 
Inscription : novembre 2007
Messages : 1 519
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : novembre 2007
Messages : 1 519
Points : 1 919
Points : 1 919
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 -
Aka Guymelef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2009, 13h16   #5
PHIL45
Invité régulier
 
Inscription : mars 2003
Messages : 34
Détails du profil
Informations personnelles :
Âge : 59

Informations forums :
Inscription : mars 2003
Messages : 34
Points : 6
Points : 6
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 :
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 :
Ch := ResultMessages[i].ToString;
mais la valeur retournée n'est pas bonne.

ResultMessages est du type suivant :
Code :
1
2
3
4
5
6
 
type
  TArrayOfmessage = array of message;
 
var
  ResultMessages : TArrayOfmessage;
La fonction du WebService invoqué est la suivante :

Code :
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 !
PHIL45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h24.


 
 
 
 
Partenaires

Hébergement Web