![]() |
Stream-Schreibfehler, ich dreh bald durch!
Hallo,
ich habe folgenden Code:
Delphi-Quellcode:
Ich habe schon alles ausprobiert. anhang_strean.Destroy, anhang_stream.free (was man ja eigentlich nimmt). Ich habe es auch ganz weggelassen, aber jedes mal bekomme ich eine Fehlermeldung -> "Stream-Schreibfehler".
var
intIndex:integer; anhang_stream: TFileStream; for intIndex := 0 to (IdMessage1.MessageParts.Count-1) do begin if idMEssage1.MessageParts.Items[intIndex] is TIdAttachmentFile then begin s := (idMEssage1.MessageParts.Items[intIndex] as tIdAttachmentFile).Filename; anhang_stream := TFileStream.Create(intIndex); TidAttachmentFile(idMessage1.MessageParts.Items[intIndex]).SaveToStream(anhang_stream); // hier steht noch Code, der damit nichts zu tun hat. anhang_stream.Free; end; Ich habe bei TFileStream.Create auch schon mal einen Order + s angegeben. Er kann dann, wenn im Anhang 2 Dateien sind, nur die erste Speichern und bei der 2. kommt dann wieder der Fehler. Andere Streams kann ich nicht verwenden, weil beim Compilieren sonst ein Fehler kommt, da man bei TidAttachment nur nen FileStream nehmen kann. Ich hoffe ihr wisst, wo das Problem ist :? Gruß Sascha |
Re: Stream-Schreibfehler, ich dreh bald durch!
Zitat:
P.S: Die Genaue Fehlermeldung wäre nicht schlecht. Glaube nicht, dass er einfach nur Stream-Schreibfehler sagt ... |
Re: Stream-Schreibfehler, ich dreh bald durch!
int kann man auch angeben, aber wie gesagt, habe ich es auch schon mit dem direkten Dateinamen, etc. ausprobiert. Da habe ich einfach c:\ angegeben. Der "Ordner" existiert ja :D
Die genaue Fehlermeldung lautet: Stream-Schreibfehler :D |
Re: Stream-Schreibfehler, ich dreh bald durch!
Zitat:
und wichtig die Datei muss existieren |
Re: Stream-Schreibfehler, ich dreh bald durch!
Schau dir mal den Konstruktor von TFileStream GANZ GENAU an.
Du brauchst einen Dateinamen und den Zugriffmode.
Delphi-Quellcode:
Die Datei muss nicht existieren, darf aber kein Verzeichnis sein. :zwinker:
filename := Format('C:\attachment%d.txt',[intIndex]);
anhang_stream := TFileStream.Create(filename, fmCreate); |
Re: Stream-Schreibfehler, ich dreh bald durch!
ach ne. das weiß ich auch. wer meinen text oben genau durchliest, sieht, dass ich "ordner +s" geschrieben habe.
wer den Code durch geht, sieht, dass der Variable s ein Dateiname vergeben wird. Und das klappt auch, aber nur, wenn im Anhang eine Datei ist. Bei der 2. gibt es wieder den Stream-Schreibfehler. Wer lesen kann, ist klar im Vorteil ;) |
Re: Stream-Schreibfehler, ich dreh bald durch!
*push*
|
Re: Stream-Schreibfehler, ich dreh bald durch!
Zitat:
Wenn du bei
Delphi-Quellcode:
nur eine Zahl (Integer) angibst, dann wird ein Handle erwartet.
TFileStream.Create(intIndex)
Da du aber dieses nicht hast, und auch nicht haben willst, mußt du es so machen wie shmia das geschrieben hat, das ist deine Lösung, hat nichts mit lesen zu tun sondern nur was mit DENKEN !!!!! |
Re: Stream-Schreibfehler, ich dreh bald durch!
Und wenn du auch lesen könntet, dann hättest du gelesen, dass ich DAS GEMACHT HABE!!!!!!!!!!!!!!!!!! Aber das auch nichts gebracht hat.
PISA..... |
Re: Stream-Schreibfehler, ich dreh bald durch!
Zitat:
Da du aber geschrieben hast Zitat:
Und wenn du "NUR" einen integer angibst, dann wird ein Handle erwartet, aber denn hast du nicht und brauchst auch nicht Also ganz einfach :
Delphi-Quellcode:
anhang_stream := TFileStream.Create('c:\Attachment_'+IntToStr(intIndex)+'.att', fmCreate);
TidAttachmentFile(idMessage1.MessageParts.Items[intIndex]).SaveToStream(anhang_stream); // hier steht noch Code, der damit nichts zu tun hat. anhang_stream.Free; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 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 by Thomas Breitkreuz