Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#15

Re: Textdatei mit D2 erstellen

  Alt 28. Jul 2005, 13:28
Zitat von MPirnstill:
Den Typ hatte shmia in der Routine verwendet, welche er mir hier gepostet hatte. Vielleicht ist das ja auch ein Tippfehler und es sollte WideString anstatt WideStream heißen.
Jupp, war ein Tipppfuhler.
Jetzt nochmals den Code (incl. Variante, die den Datentyp WideString umgeht).

Delphi-Quellcode:
procedure SaveWideStringToFile(const filename:string; const ws:WideString);
var
   fs : TFileStream;
   data : WideString;
begin
   data := ' '+ws;
   data[1] := Widechar($FEFF); // BOM = Byte Order Mark
   fs := TFileStream.Create(filename, fmCreate);
   try
      fs.WriteBuffer(data[1], Length(data)*sizeof(Widechar));
   finally
      fs.Free;
   end;
end;


procedure SaveWideStringToFileD2(const filename:string; const data:String);
var
   fs : TFileStream;
   b, buffer : ^Word;
   size : Integer;

   i : Integer;
begin
   size := (Length(data)+1)*2;
   GetMem(buffer, size);

   try
      b := buffer;

      b^:= $FEFF; // BOM = Byte Order Mark
      Inc(b);

      // string kopieren
      for i := 1 to Length(data) do
      begin
         b^ := Ord(data[i]);
         Inc(b);
      end;

      fs := TFileStream.Create(filename, fmCreate);
      try
         fs.WriteBuffer(buffer^, size);
      finally
         fs.Free;
      end;
   finally
      FreeMem(buffer);
   end;
end;
Andreas
  Mit Zitat antworten Zitat