AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Eine TextDatei öffnen mit Utf-8 Zeichensatz
Thema durchsuchen
Ansicht
Themen-Optionen

Eine TextDatei öffnen mit Utf-8 Zeichensatz

Ein Thema von dwagner · begonnen am 5. Apr 2005 · letzter Beitrag vom 6. Apr 2005
Antwort Antwort
dwagner

Registriert seit: 5. Apr 2005
3 Beiträge
 
#1

Eine TextDatei öffnen mit Utf-8 Zeichensatz

  Alt 5. Apr 2005, 21:57
Hallo,

Ich muß eine Textdatei einlesen. Das Problem ist das der Inhalt polnisch ist.
Die Textdatei wurde mit dem UTF-8 Zeichensatz gespeichert.

Erst habe ich versucht die Datei mit AssignFile(f,s) zu öffnen.
f ist vom type TextFile und s vom Type Widestring. Im Debugmodus erkenne ich jedoch schon das
die Zeichen in s nicht richtig dargestellt werden.

Mein zweiter Versuch war dann die Datei mit TFileStream zu öffnen jedoch habe ich hier auch das gleiche Porblem. Die Zeichen werden nicht richtig dargestellt.

Hier mein Quellcode zu meinem ersten Versuch:
Delphi-Quellcode:
var
  s : WideString;
  f : TextFile;
begin
  OpenDialog1.Execute;
  AssignFile(f, OpenDialog1.Filename);
  Reset(f);
  While not eof(f) do begin
    Readln(f,s);
    Image1.Canvas.Font.Charset := EASTEUROPE_CHARSET;
    Image1.Canvas.Font.Size := 8;
    TextOutW(Image1.Canvas.Handle, 0, 0, PWideChar(s), Length(s));
  end;
  CloseFile(f);
end;
Und mein Quellcode zum zweiten Versuch:
Delphi-Quellcode:
var
  s : WideString;
  f : TFileStream;
begin
  OpenDialog1.Execute;
  f := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
  SetLength(s, 10);
  f.Read(s[1], 10);
  f.Free;
  Label3.Caption := s;
  Image1.Canvas.Font.Charset := EASTEUROPE_CHARSET;
  TextOutW(Image1.Canvas.Handle, 0, 0, PWideChar(s), 10);
end;
In der Textdatei ist folgender Wert : 'Wewnętrzne szczegóły'

Ps. TextOutW ist eine Api Funktion wenn ich für s zum Beispiel #9787 angebe wird mir auch das richtige Zeichen in meinem Image ausgegeben.

Kann mir einer erklären wie man eine Textdatei (Utf-8) richtig auslies?

[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.114 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Eine TextDatei öffnen mit Utf-8 Zeichensatz

  Alt 5. Apr 2005, 22:22
Moin dwagner,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

[EDIT]
Mist, entsprach Deinem zweiten Beispiel
Hatte ich wegen der fehlenden Formatierung übersehen
[/EDIT]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
dwagner

Registriert seit: 5. Apr 2005
3 Beiträge
 
#3

Re: Eine TextDatei öffnen mit Utf-8 Zeichensatz

  Alt 5. Apr 2005, 22:41
Hallo Christian,

Erst mal Danke für Dein Hilfe.
Ich habe Deinen Ansatz wie folgt getestet:
Delphi-Quellcode:
var
  fs : TFileStream;
  wsBuf : WideString;

begin
OpenDialog1.Execute;
  fs := TFileStream.create(OpenDialog1.FileName, fmOpenRead);
  try
    wsBuf := StringOfChar(#00,fs.Size);
    fs.Read(wsBuf[1],fs.Size);
    Label3.Caption := wsBuf[1];
    Image1.Canvas.Font.Charset := EASTEUROPE_CHARSET;
    TextOutW(Image1.Canvas.Handle, 0, 0, PWideChar(wsBuf), fs.Size);
  finally
    FreeAndNil(fs);
  end;
end;
Leider funktioniert dies nicht. Ich hatte ebenfalls schon versucht die Datei mit Hilfe von
FileStream zu öffnen jedoch werden die Zeichen falsch dargestellt.
Ich bin ziemlich sicher das das Problem beim einlesen der Textdatei entsteht da ich erstens eine
Label Komponente installiert habe die Unicode unterstützt und mit dem Zeichen #8797 auch getestet habe und zweitens die Ausgabe der Api Funktion TextOutW ebnfalls funktioniert.

[edit=Christian Seehase]Delphi-Tags gesetzt. Mfg, Christian Seehase[/edit]
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.114 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Eine TextDatei öffnen mit Utf-8 Zeichensatz

  Alt 5. Apr 2005, 22:49
Moin dwagner,

leider hab' ich keine passende Datei zur Hand, um etwas auszuprobieren, da ich nicht sicher weiss, wie solche Dateien auszulesen sind.
Falls es geht, könntest Du ja mal ein Beispiel anhängen. (aber ich denke mal, es wird sich auch so noch jemand finden der Dir weiterhelfen kann )
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
dwagner

Registriert seit: 5. Apr 2005
3 Beiträge
 
#5

Re: Eine TextDatei öffnen mit Utf-8 Zeichensatz

  Alt 5. Apr 2005, 23:07
Ich arbeite eigentlich mit einer csv Datei. Also ein Textdatei derren Inhalt durch ';' getrennt sind.
Beispiel:
b_kfzfinanz.gif;b_kfzfinanz.gif;Finanzierung;Finan sowanie
b_kfzintern.gif;b_kfzintern.gif;Interne Details;Wewnętrzne szczegóły

Am Ende Jeder Zeile sind die Polnischen Wörter die ich mit den Umlauten brauche.

Um jedoch mein Problem zu lösen gehe ich einfach hin und schreibe in eine Textdatei ein einzelnes polnisches Wort.


Im den Anhang koppiere ich Dir mal meine Beispieldatei.

Wenn Du Zeit und Lust hast kannst Du es ja mal porbieren ich währe Dir sehr dankbar.
Angehängte Dateien
Dateityp: txt info_pl1_457.txt (26 Bytes, 7x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.174 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Eine TextDatei öffnen mit Utf-8 Zeichensatz

  Alt 6. Apr 2005, 07:22
Zitat von dwagner:
Kann mir einer erklären wie man eine Textdatei (Utf-8) richtig auslies?
Nimm doch das ElPack.

Die Stringlist-Klassen müßten in der aktuellen Version auch UTF8-Dateien einlesen können (in meiner verwendeten Version nur Unicode-Files mit Big/Little-Endian). Auch sind alle Oberflächen-Controls Unicode-Enabled. Als keine notwendigkeit mit der Krüppellösung Codepages/Charset zu arbeiten.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:40 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