Entwickler-Ecke
Dateizugriff - File Of Char
lemming - Di 23.07.02 11:17
Titel: File Of Char
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]
mth - Di 23.07.02 13:37
Titel: Re: File Of Char
lemming hat folgendes geschrieben: |
Ich bekomme den Inhalt eines TMemoryStream als AnsiString von einer UDP Komponente.
|
Schmeiss die Komponente weg kommt mir da in den Sinn :-)
lemming hat folgendes geschrieben: |
Jetzt speichere ich den AnsiString so in eine datei. Gibt es aber keine bessere Methode? |
Eine (relativ elegante) Variante wäre die folgende:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| var FS: TFileStream;
begin FS := TFileStream.Create (bla bla) try fs.Write(PChar(MegaAnsiString)^, Length(MegaAnsiString)); finaly fs.Free; end; end; |
lemming - Di 23.07.02 15:11
Ok, und wie schreib ich das dann in die Datei? Write(F, FS) geht ja nicht? *grübel*
lemming - Di 23.07.02 15:20
Haaaaaaaaaaaaaaaaaaaaaaaaalt.
Rtfm! manchmal steht wirklich was nützliches in der hilfe. Hab's schon selbst raus gefunden. Also Danke schööööööööön :D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!