![]() |
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; |
Re: Stream-Schreibfehler, ich dreh bald durch!
zum 1000. Mal: Das habe ich gemacht! Ich habe nirgendswo angegeben, dass ich nur C:\ angebe. So dumm bin ich nicht. Ich habe verdammt viel Ahnung von Delphi sonst würde ich ja nicht fragen und mich wundern, warum FileStream bei mir nicht geht.
Wenn man sich mal den ganzen Thread durchlesen würde und nicht nur den letzten Beitrag, dann sieht man, dass ich die Variable "s" habe, die den Dateinamen entählt. Und 'c:\' + s ist völlig in Ordnung und das habe ich angewendet (s. oben!). Mitlerweile habe ich den Fehler gefunden, welcher aber nichts mit dem bisher gesagten zu tun hat, sondern wo ganz anders lag. |
Re: Stream-Schreibfehler, ich dreh bald durch!
Hi!
Erklärst du uns trotzdem, wo er war. Falls doch mal jemand dieses Problem bekommt. Ciao Frederic |
Re: Stream-Schreibfehler, ich dreh bald durch!
Zitat:
Zitat:
Zitat:
Zitat:
... Dann vermute ich mal der Fehler lag genau in folgendem Bereich ...
Delphi-Quellcode:
// hier steht noch Code, der damit nichts zu tun hat.
|
Re: Stream-Schreibfehler, ich dreh bald durch!
Ich glaube nicht das solch eine Wortwahl wie einige sie in diesem Thread verwenden dem guten Ton in der DP entspricht und bitte alle beteiligten beim nächsten mal etwas lockerer zu sein. :warn:
Danke :stupid: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 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