Re: Memo.Text := Ansistring? nur wie
Zitat:
EncodeString liefert einen (kodierten) AnsiString zurück. Mit der Zuweisung an _codiert, werden nun Zeichen größer #127 falsch umgesetzt. Und beim Schreiben in die Datei wird nur die Hälfte der Daten geschrieben: Length(_codiert) <> ByteLength(_codiert) |
Re: Memo.Text := Ansistring? nur wie
Zitat:
Gruss EL |
Re: Memo.Text := Ansistring? nur wie
Zitat:
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; |
Re: Memo.Text := Ansistring? nur wie
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.
|
Re: Memo.Text := Ansistring? nur wie
Zitat:
Vor dem decodieren sieht der codierte String ganz gut aus.... Zitat:
Gruss EL |
Re: Memo.Text := Ansistring? nur wie
Also folgender Code funktioniert bei mir:
Delphi-Quellcode:
var
_codiert: AnsiString; sfiledata: string; // = UnicodeString fddschl: string; sTmpFileName: string; begin sTmpFileName := 'C:\Testdata\Test.txt'; // *** anpassen *** sfiledata := '<xml>'#10'Hallo du Ärger'#10'</xml>'; fddschl := '12'; // write _codiert := JvCaesarcipher.EncodeString(fddschl, AnsiString(sfiledata)); StringToFile(sTmpFileName, _codiert); // read _codiert := FileToString(sTmpFileName); sfiledata := string(JvCaesarcipher.DecodeString(fddschl, _codiert)); Memo1.Lines.Text := sfiledata; end; |
Re: Memo.Text := Ansistring? nur wie
Zitat:
Ich mache noch ein paar Tests - Tests haben funktioniert. Alles Bestens! Vielen Dank für Deine Hilfe Gruss EL |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:42 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