Einzelnen Beitrag anzeigen

Benutzerbild von MPirnstill
MPirnstill

Registriert seit: 19. Jul 2004
Ort: Burgdorf
197 Beiträge
 
Delphi XE8 Enterprise
 
#3

Re: WordApplication statt OLE

  Alt 17. Okt 2007, 09:03
Zitat von marabu:
Moin Micha,

welche Kodierung hat die Datei - UTF8 oder UTF16?

Hast du ein Byte-Order-Mark geschrieben?
Hey, danke für deine schnelle Antwort.

Den Programmcode für das Unicode-Schreiben, habe ich damals auch hier aus der Delphi-Praxis bekommen:

Delphi-Quellcode:
function TSteuerdatei.SaveAsUnicode: Boolean;
var
  data: String;
  fs: TFileStream;
  b, buffer: ^Word;
  size: Integer;
  i: Integer;
begin
  data := AufbereitenAusgabe;
  size := (Length(data)+1) * 2;
  GetMem(buffer, size);
  try
    b := buffer;
    b^ := $FEFF; //BOM = Byte Order Mark
    inc(b);

    //string copieren
    for i := 1 to Length(data) do
    begin
      b^ := ord(data[i]);
      inc(b);
    end;

    //FileStream schreiben
    fs := TFileStream.Create(FPfadDateiName, fmCreate);
    try
      fs.WriteBuffer(buffer^, size);
    finally
      fs.Free;
    end;

    FFeldListe.Clear;
    Result := True;
  finally
    FreeMem(buffer);
  end;
end;
Und es sieht so aus (habe etwas Probleme, das mit den Zeigern richtig zu verstehen, deswegen habe ich gleich die Funktion hier gepostet, damit nichts falsches erzähle ) als wird auch ein BOM geschrieben.

Hatte ja auch mit OLE so funktioniert. Ich habe halt gedacht, das ich beim Word anschubsen, über die WordApplication-Komponente, noch einen Parameter setzen muss.

Gruss
Micha
Ich habe fertig!

DP - hier werden Sie geholfen!
  Mit Zitat antworten Zitat