Einzelnen Beitrag anzeigen

Benutzerbild von emsländer
emsländer

Registriert seit: 21. Aug 2004
Ort: Lengerich
658 Beiträge
 
RAD-Studio 2009 Ent
 
#25

Re: Memo.Text := Ansistring? nur wie

  Alt 7. Jan 2009, 20:20
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


Narben am Körper sind ein Zeichen dafür, das man gelebt hat.
Narben auf der Seele sind ein Zeichen dafür, das man geliebt hat.
  Mit Zitat antworten Zitat