Hi!
Ich brauche eine vernünftige Procedure di mir einenen AnsiString in eine Binäre Datei speichert. Ich bekomme den Inhalt eines TMemoryStream als AnsiString von einer UDP Komponente. Da werden Dateien übertragen. D. h. das der AnsiString bis zu 10MB gross sein kann.
Jetzt speichere ich den AnsiString so in eine datei. Gibt es aber keine bessere Methode?
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| var F: File of Char; sFilename: String; sFileString: AnsiString; TmpStr: AnsiString; Ch: Char; iTmpLen: Integer; iAscii: Integer;
AssignFile(F, sFilename); Reset(F); Seek(F, FileSize(F)); for iTmpLen := 1 To Length(sFileString) Do begin //Ch := Copy(TmpStr, iTmpLen, 1); for iAscii := 0 To 255 Do begin if Chr(iAscii) = Copy(sFileString, iTmpLen, 1) Then begin Ch := Chr(iAscii); break; end; end; Write(F, Ch); end; CloseFile(F); |
Ja ich weiss, einfach schrecklich langsam.[/code]