AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Textdatei mit D2 erstellen

Ein Thema von MPirnstill · begonnen am 27. Jul 2005 · letzter Beitrag vom 28. Jul 2005
Antwort Antwort
Seite 2 von 2     12   
barf00s
(Gast)

n/a Beiträge
 
#11

Re: Textdatei mit D2 erstellen

  Alt 28. Jul 2005, 08:41
anstelle von widestring PWideChar
  Mit Zitat antworten Zitat
Benutzerbild von MPirnstill
MPirnstill

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

Re: Textdatei mit D2 erstellen

  Alt 28. Jul 2005, 08:55
Zitat von barf00s:
anstelle von widestring PWideChar
Und was nimmt man dann anstelle von WideStream ?

Gruß
Micha
Micha
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#13

Re: Textdatei mit D2 erstellen

  Alt 28. Jul 2005, 08:59
auch nen PWideChar

widestream hab ich ja noch nie gehört
  Mit Zitat antworten Zitat
Benutzerbild von MPirnstill
MPirnstill

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

Re: Textdatei mit D2 erstellen

  Alt 28. Jul 2005, 09:07
Zitat von barf00s:
auch nen PWideChar

widestream hab ich ja noch nie gehört
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.

Erstmal danke für den Tipp. Werde es so bald als möglich ausprobieren.
Micha
  Mit Zitat antworten Zitat
shmia

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

Re: Textdatei mit D2 erstellen

  Alt 28. Jul 2005, 12: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
Benutzerbild von MPirnstill
MPirnstill

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

Re: Textdatei mit D2 erstellen

  Alt 28. Jul 2005, 13:59
WOW!

Das Schreiben in Unicode klappt richtig super. Danke an euch für die Hilfe.

Ich mußte leider feststellen, daß dies mein Ausgangsproblem dadurch leider nicht beseitigt ist, denn Word fragt immer noch nach, ob es den von ihm erkannten Unicode-Zeichensatz verwenden soll. Aber ich werde die Routine auf jedenfall gut aufheben, falls ich mal wieder mir Unicode hantieren muß. Auch wenn ich sie nicht ganz verstanden habe. Dies mit den Zeigern habe ich nie richtig kapiert.

Falls es interessiert, wie meine Erkenntnisse zum eigentlichen Ausgangsproblem sind:

Ich habe jetzt eine Überschriftzeile und ca. 20 Steuerdatensätze in eine Textdatei geschrieben.
Die öffnet Wöööörd ohne nachzufragen.

Entferne ich manuell alle Datensätze bis auf die Überschriftszeile und den einen mit Umlauten.
Wöööörd versucht wieder den Zeichensatz zu ermitteln und scheitert kläglich.

Ich bin sogar schon dahin gegangen und hab mit dem Window-Editor eine Textdatei erstellt und die Überschriftszeile und den einen Datensatz manuell eingetippt.
Auch die kann Wöööörd nicht öffnen.

Das beweißt mir immerhin das es nicht an der von meimem Progi erstellten Steuerdatei liegen kann sondern an diesem gr##§$?! Wööööööörrrrd, was mal wieder so schlau sein will.

Okay, daß war nur noch mal um den Frust los zu werden.

Vielen Dank noch mal!

Micha
Micha
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 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