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 :

[Debutant]TString dans TList


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 31
    Par défaut [Debutant]TString dans TList
    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 :

    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;
    Donc le truc, c'est que pour chaque message, j'ajoute un pointeur dans ma TList "ListMsg". C'est correct?

    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

  2. #2
    Membre chevronné
    Avatar de Philippe Gormand
    Inscrit en
    Mars 2002
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 330
    Par défaut
    Bonjour.

    Tu peux utiliser beaucoup plus simplement TStringList. Il y a des exemples dans l'aide de DELPHI. Tu ne peux pas utiliser New. Ce sont des classes et doivent être construite, et non pas simplement leur allouer de la mémoire. La méthode Create appele le constructeur.

    Cherche dans l'aide TStringList et la méthode Add. Il y a un exemple qui devrait t'éclairer.

    A+

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

Discussions similaires

  1. [Debutant] TStrings et recherche dans le texte
    Par muquet dans le forum Langage
    Réponses: 3
    Dernier message: 11/01/2006, 16h02
  2. [debutant] ecriture dans la memoire et/ou fichier
    Par damien.yep dans le forum Débuter
    Réponses: 7
    Dernier message: 01/02/2005, 23h27
  3. [debutant]dessins dans une fenetre
    Par drosophile dans le forum 2D
    Réponses: 4
    Dernier message: 04/11/2004, 14h55
  4. [Debutant]Suppression dans des tables avec contraintes
    Par Roming22 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 26/10/2004, 17h23
  5. Réponses: 5
    Dernier message: 21/04/2004, 11h43

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