Registriert seit: 21. Sep 2005
Ort: Kattau (AT)
79 Beiträge
Delphi 2009 Professional
|
Re: Indy IdDeconderMIME.Decodestring konvertiert falsch
13. Mai 2009, 16:14
Bitte kein AssignFile/Reset/Readln/... verwenden (muffiger Pascal Style).
Sondern, ... TFileStream !!!
Oder fürs String parsen (iss bei dir nämlich auch grausig): TStringList und StringList.LoadFromFile('1.xml');
Delphi-Quellcode:
var
F,F2:TextFile;
field,value:string;
Line:Ansistring;
line2:widestring;
PdfBytes: TBytes;
//IdDecoderMIME1: TIdDecoderMIME;
OutStream: TFileStream;
begin
//IdDecoderMIME1 := TIdDecoderMIME.Create(Self);
AssignFile(F,'1.xml');
Reset(F);
while not EOF(F) do
begin
Readln(F,line);
field := copy(line,Pos('<',line)+1,Pos('>',line)-Pos('<',line)-1);
line := copy(line,Pos('>',line)+1,length(line)-Pos('>',line));
if Pos('</',line) > 0 then
value := copy(line,1,Pos('</',line)-1)
else
value := line;
if field = 'FileData' then
begin
PdfBytes := IdDecoderMIME1.DecodeBytes(value);
end;
end;
OutStream := TFileStream.Create('generated_1.pdf', fmCreate);
try
OutStream.WriteBuffer(PdfBytes[0], Length(PdfBytes));
finally
OutStream.Free;
end;
end;
Funktioniert bei mir (zumindest mit der aktuellen Indy-Version)!
|
|
Zitat
|