Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TFileStream mit AnsiString (https://www.delphipraxis.net/172304-tfilestream-mit-ansistring.html)

Helmi 24. Dez 2012 10:10

TFileStream mit AnsiString
 
Hallo,

ich lade mir eine Text-Datei in eine StringList ein, modifizier die StringList etwas und speichere danach den Inhalt der StringList mittels TFileStream (ja - ich weiss - es gibt auch StringList.SaveToFile - aber ich speichere mehrere Text-Dateien in der gleichen Datei)

Delphi-Quellcode:
var
  S: String;
  FileStream: TFileStream;

begin
{...}
  StringList.LoadFromFile(Pfad + Datei);
  S := StringList.Text;
  FileStream.WriteBuffer(S[1], length(S));
{...}
Wenn ich das so mache, dann erhalte ich nach jedem Zeichen in der Datei #0.
Ist S als AnsiString deklariert, dann funktionierts (natürlich).
Aber dann erhalte ich als Warnung:
Zitat:

[DCC Warnung] MainUnit.pas(222): W1058 Implizite String-Umwandlung mit potenziellem Datenverlust von 'string' zu 'AnsiString'
So etwas wie AnsiFileStream gibts es ja leider nicht - aber wie geht man nun bei so was vor? - Also einen String zu speichern ohne #0 nach jedem Zeichen und ohne das man die Warnung erhält?

DeddyH 24. Dez 2012 10:16

AW: TFileStream mit AnsiString
 
Wie wäre es denn mit einem TStringStream?

Helmi 24. Dez 2012 10:26

AW: TFileStream mit AnsiString
 
Zitat:

Zitat von DeddyH (Beitrag 1196616)
Wie wäre es denn mit einem TStringStream?

Jetzt hast dir aber ein Geschenk heute abend verdient :mrgreen:

Danke für den Tip - funktioniert perfekt.
Ich kannte TStringStream gar nicht (mehr) - habs immer mit FileStream gemacht
(hab grad gesehen dass ich es schon mal in einem anderen Projekt nutze - ich werd einfach alt)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:30 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