Zitat von
jbg:
Zitat von
emsländer:
Abhilfe? - ich muss vor allem die Bestandsdaten lesen können!
Also alles was du mit der Delphi 2009 Version geschrieben hast, ist verstümmelt. Da kann man nichts mehr machen, da die Hälfte der Daten fehlt.
Was du mit Delphi 1-2007 geschrieben hast, kannst du komplett über AnsiString abhandeln.
Für das Schreiben reicht es aus, wenn du _codiert als AnsiString deklarierst. Du solltest aber noch prüfen, ob die Daten, die aus dem StringStream zurück kommen auch richtig sind (bei
Indy bin ich mir nicht sicher, was die intern so alles mit den Daten anstellen)
Delphi-Quellcode:
uses
JclStrings;
var
_codiert: AnsiString;
sfiledata: string; // = UnicodeString
begin
...
_codiert := JvCaesarcipher.EncodeString(fddschl, AnsiString(sfiledata));
StringToFile(sTmpFileName, _codiert);
end;
Beim Lesen darft du erst in einen UnicodeString konvertieren, wenn die Daten bereits entschlüsselt sind:
Delphi-Quellcode:
uses
JclStrings;
var
Stream: TFileStream;
_codiert: AnsiString;
sfiledata: string; // = UnicodeString
begin
_codiert := FileToString(odlg.FileName);
sfiledata := string(JvCaesarcipher.DecodeString(fddschl, _codiert));
Memo1.Lines.Text := sfiledata;
end;
Auch das klappt leider nicht so wie es soll. Er liest zwar mehr ein als vorher, aber Source ist nicht identisch mit Destination. Kommt nur Müll bei rum.
Vor dem decodieren sieht der codierte String ganz gut aus....
Zitat:
Kann es sein, dass du sämtliche String-Warnungen abgeschaltet hast? Denn der Compiler wirft überall, wo du eine implizite Konvertierung von UnicodeString nach AnsiString und andersherum machst, eine Warnung.
nein - ich ignoriere Warnungen gern.
Gruss EL