Bonjour,
Voici mon problème, je suis assez débutant en delphi et je dois créer une petite application qui va chercher des mails (envoyé par une autre appli donc toujours avec le même format) et les insère dans une BDD.
Pour ce qui est de la partie chercher 1 mail et l'insèrer dans la base, pas de problème ca fonctionne mais la ou j'ai uin problème c'est quand il y a plusieurs mails.
Le principe est que quand un mail est la, je l'envoi dans une fonction Decode. (Qui est juste un ExtractString, le caractère spécial est un #). Ensuite, cette fonction me retourne donc ma TStrings avec mes bout de chaines. Jusque la c'est bon mais maintenant j'aimerai pouvoir mettre cette TString dans une TList. Et c'est la que je bloque, en plus ca doit être vraiment tout bête mais j'ai essayé plusieurs choses, j'obtient toujours les même valeurs.
Voici des extraits de code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 procedure Tfmain.Check(Sender: TObject); var TexteMsg : Tstrings; is_msg : integer; ListMsg : TList; begin try TexteMsg := TstringList.Create; ListMsg:=TList.Create; is_msg := ContenuMail.GetMail(TexteMsg, ListMsg); [...]
Ensuite ma fonction GetMail est comme ceci :
Donc le truc, c'est que pour chaque message, j'ajoute un pointeur dans ma TList "ListMsg". C'est correct?
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 function TReceptMail.GetMail(var Msg : Tstrings; var ListMsg : TList) : integer; var NbMsg, intIndex : integer; TexteDecode : string; IdPOP31: TIdPOP3; [...] //Avant ce bout de code si situe mes initialisation de connexion pour aller chercher mes mails. La variable NbMsg contient donc le nombre de mail. for intIndex := 1 to NbMsg do begin idPOP31.Retrieve(intIndex,Msg_code); if (Msg_code.Subject='LSMD') then begin; Decode(Msg_code.Body.Text, Msg); ListMsg.Add(Msg); IdPOP31.Delete(intIndex); Msg.Clear; Msg_code.Clear; end; end;
Mais seulement voila, prenons une chaine tel que je la recois dans un email, qui est du genre Expediteur#Date_envoi#Heure_envoi#Texte. Si j'ai 2 messages, quand je veux dans mon main récupérer ces valeurs, j'ai toujours les même valeurs.
J'ai essayé également en déclarant un pointeur TString et en faisant un new(Pointeur) dans ma boucle FOR mais j'otient une erreur.
Voila, encore une fois, je pense que c'est tout bête mais ca fait un moment que je bloque dessus et je n'arrive plus a penser autrement parce que je m'énerve sur ce projet.
J'espère avoir été clair.
Je vous remercie d'avance si vous pouvez m'aider.
Ekik
Partager