AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TStream nach TIdStream 'casten'

Ein Thema von gluglu · begonnen am 5. Mai 2006 · letzter Beitrag vom 6. Mai 2006
Antwort Antwort
gluglu

Registriert seit: 10. Dez 2005
32 Beiträge
 
#1

TStream nach TIdStream 'casten'

  Alt 5. Mai 2006, 17:03
Ich habe probleme mit Indy10 und die SaveToFile oder SaveToStream methode unter Delphi 2006 VCL.NET mit umlauten.

Beim nachsuchen habe ich über eine neue Klasse TIdStream erfahren. Dort steht dann :
Zitat:
TIdStream is often used to cast a TStream instance to TIdStream to allow access to the additional methods for stream-based input and output.
Wie mache ich so etwas ? Ich möchte praktisch die SaveToFile methode des Streams benutzen.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#2

Re: TStream nach TIdStream 'casten'

  Alt 5. Mai 2006, 17:20
Ich kann mir nicht vorstellen, wie das unter .Net funktionieren sollte . Da müsste der Compiler die CLR schon ziemlich aufs Kreuz legen.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
gluglu

Registriert seit: 10. Dez 2005
32 Beiträge
 
#3

Re: TStream nach TIdStream 'casten'

  Alt 5. Mai 2006, 17:23
Wie kann ich dann TIdStream benutzen unter Delphi 2006 VCL.NET ?
  Mit Zitat antworten Zitat
gluglu

Registriert seit: 10. Dez 2005
32 Beiträge
 
#4

Re: TStream nach TIdStream 'casten'

  Alt 5. Mai 2006, 17:29
Zitat:
procedure SaveToStream(AStream: TIdStream, const AHeadersOnly: Boolean = False);

AStream is a TIdStream descendant and represents the destination that will be used to write values in the message instance. AStream can be any TStream descendant suitable for use as the output stream in a TIdIOHandlerStream instance.
Wie bekomme ich so etwas hin ?

Ich kann nicht z.B. f := TIdStream.Create('FileName', fmCreate) benutzen, obwohl ich im Uses dir IdStream Datei mit reingebracht habe.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#5

Re: TStream nach TIdStream 'casten'

  Alt 5. Mai 2006, 17:39
Zitat von gluglu:
f := TIdStream.Create('FileName', fmCreate)
Kurz gefasst: Hä? Es geht doch gerade darum, keine Instanz von TIdStream zu erstellen, sondern einen anderen Stream zu casten, was die CLR nicht zulassen wird.
Eine Fehlermeldung wäre aber auch nicht schlecht .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
gluglu

Registriert seit: 10. Dez 2005
32 Beiträge
 
#6

Re: TStream nach TIdStream 'casten'

  Alt 5. Mai 2006, 17:50
Folgendes gefunden :

unter Uses muss IdObjs stehen (anstatt IdStream).

Dann mache ich folgendes :
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  f : TIdStream;
begin
  if IdPOP31.Connected then IdPOP31.Disconnect;
  IdPOP31.Host := '...............';
  IdPOP31.Port := 110;
  IdPOP31.Username := '...............';
  IdPOP31.Password := '......';
  IdPOP31.Connect;

  IdMessage1.Clear;
  IdPOP31.Retrieve(1, IdMessage1);
  f := TIdFileStream.Create('C:\Email.eml', fmCreate);
  IdMessage1.SaveToStream(f);

....
Aber wie schon gesagt. Umlaute werden in der .eml datei falsch dargestellt.

P.D. Benutze Indy10 und Delphi 2006 VCL.Net
  Mit Zitat antworten Zitat
gluglu

Registriert seit: 10. Dez 2005
32 Beiträge
 
#7

Re: TStream nach TIdStream 'casten'

  Alt 6. Mai 2006, 10:29
Lösung :
Delphi-Quellcode:
IdMessage1.Clear;
IdMessage1.NoDecode := True;
IdPOP31.Retrieve(1, IdMessage1);
IdMessage1.NoEncode := True;
IdMessage1.SaveToFile('C:\EMail.eml');
//(oder SaveToStream wie auch immer)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz