Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy und komisches Stringverhalten (https://www.delphipraxis.net/56651-indy-und-komisches-stringverhalten.html)

Jelly 9. Nov 2005 11:09


Indy und komisches Stringverhalten
 
Also ich raff rein gar nichts mehr. Folgender Code:
Delphi-Quellcode:
     IdPOP3.RetrieveHeader (i,IdMessage) ;
     MessageID := IdMessage.MsgId ;
     Log.Add ('MsgId = ' + MessageID) ;
Soll mir in eine Log Datei die MessageID schreiben. Die ist aber IMMER leer, im Logbuch steht also nichts als
Code:
MsgID =
Führe ich folgenden Code aus:
Delphi-Quellcode:
     IdPOP3.RetrieveHeader (i,IdMessage) ;
     MessageID := IdMessage.MsgId ;
     ch := MessageID[ID] ;  // ch = char
     Log.Add ('MsgId = ' + MessageID) ;
dann steht plötzlich die korrekte MessageID im Logbuch

:wall: :wall: :wall: Ich bin doch nicht blöd, oder was? :gruebel:

marabu 9. Nov 2005 12:23

Re: Indy und komisches Stringverhalten
 
Hallo Tom,

dein Code sieht eigentlich korrekt aus. Die Überdeckung der Unit IdMessage mit der Variable IdMessage ist bestimmt von dir gewollt. Die fehlende Abfrage des Funktionsrückgabewertes von RetrieveHeader() kann bei falsch gewähltem i dazu führen, dass IdMessage.MsgId leer ist, aber auch das weisst du. Und dass in deinem zweiten Code-Fragment ID und i auf die gleiche Message zugreifen, dafür hast du bestimmt auch gesorgt. Ich weiß gar nicht, wie ich dir helfen kann...

Freundliche Grüße vom marabu

Jelly 9. Nov 2005 12:51

Re: Indy und komisches Stringverhalten
 
Zum Haareraufen, und jetzt gibts Du's mir aber auch noch richtig. :mrgreen:

Stimmt, ich hab überhaupt nicht darauf geachtet dass meine Variable IdMessage denselben Namen trägt wie die unit IdMessage. Autsch, sowas tut weh.

Danke.

Jelly 9. Nov 2005 13:14

Re: Indy und komisches Stringverhalten
 
Also jetzt muss ich aber hier nachhaken, weil irgendwie bin ich heut zu dämlich ums zu raffen.

Ich habe jetzt folgende Änderungen vorgenommen:
Delphi-Quellcode:
i := 1 ;
POP3.RetrieveHeader (i,Mess) ;
Subject := Mess.Subject ;
MessID := Mess.MsgId ;
ch := MessID[i] ;  // ch = char
Log.Add ('MsgId = ' + MessID) ;
So klappts, MessID enthält den korrekten Wert. Lasse ich die Zeile
Delphi-Quellcode:
ch := MessID[i] ;
weg, klappts wiederum nicht. Bin ich denn so blind ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz