AGB  ·  Datenschutz  ·  Impressum  







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

Textfile Einlesen problem mit Umlauten

Ein Thema von mr.johnnyb · begonnen am 21. Feb 2007 · letzter Beitrag vom 21. Feb 2007
Antwort Antwort
mr.johnnyb

Registriert seit: 2. Feb 2006
Ort: München
13 Beiträge
 
#1

Textfile Einlesen problem mit Umlauten

  Alt 21. Feb 2007, 12:15
Hallo zusammen,

habe gerade ein kleines Problemchen ich lese eine mit ; seperierte Datei zeilenweise ein und Schreibe die einzelnen Spalten in ein Stringgrid. Dies funktioniert im Grunde auch schon nun habe ich einen Datensatz mit einem umlaut hier wird mir aber nur gewurstel eingelesen.

Hier ein Ausschnitt mit dem meiner sei achten relevanten teil, wenn ich die Variable sTmp nun einsehe hat diese schon den Fehler:
Delphi-Quellcode:
Var
  slFilePrev: TStringList;
  iChar, iRow, iCol, iLenDelimiter, iRows, iCols, iColsCk: Integer;
  F: Textfile;
  sGetLn, sTmp, sDelimiter: string;
begin

  try
  //Set important Parameters
    iRow:= 0;
    iRows:= 0;
    iCols:= 0;
    iColsCk:= 0;
     sDelimiter := ';';
    iLenDelimiter := Length(sDelimiter);

  //File Settings
     AssignFile(F,'C:\Test.txt');
    Reset(F);

  //File Validation and count of Col's and Row's
    while not eof(F) do
       begin
        iCols := 0;
        readln(F,sTmp);
Viele Grüße und mit bestem Dank im Vorraus
Johannes
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Textfile Einlesen problem mit Umlauten

  Alt 21. Feb 2007, 12:26
Zitat von mr.johnnyb:
... nun habe ich einen Datensatz mit einem umlaut hier wird mir aber nur gewurstel eingelesen.
Wie schaut das gewustel aus? Ich nehme fast Wetten an das die Textdatei UTF8-Codiert ist.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Textfile Einlesen problem mit Umlauten

  Alt 21. Feb 2007, 12:28
Hallo Johannes,

wenn deine Eingabedatei UTF-8 kodiert ist, dann hilft dir eine Konvertierung:

 sTmp := Utf8ToAnsi(sTmp); Freundliche Grüße
  Mit Zitat antworten Zitat
mr.johnnyb

Registriert seit: 2. Feb 2006
Ort: München
13 Beiträge
 
#4

Re: Textfile Einlesen problem mit Umlauten

  Alt 21. Feb 2007, 12:49
Ja danke an alle beide,

hab die Datei auf ANSI umgestellt und es klappt mit sämtlichen verschiedenen umlauten und Sonderzeichen usw.

Nun stellt sich mir die Frage, kann ich aus Delphi, meinem Programm direkt von einer ein zu lesenden Datei diese Codierung

auch aufrufen oder besser noch ändern? Da ich auf dieses Format keinen Einfluss habe.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

Re: Textfile Einlesen problem mit Umlauten

  Alt 21. Feb 2007, 13:09
Wenn beim Speichern der Datei ein passendes [dp]BOM/dp] mit eingefügt wurde, dann kannst du dieses am Anfang auslesen und dann je nach Format die Datei entsprechend auslesen.

siehe z.B.:
http://www.delphipraxis.net/internal...ight=ansi+utf8


Also nach dem Öffnen das Format prüfen
und dann z.B. beim Auslesen (kurz nach Read/ReadLn) eventuell konvertieren.
Delphi-Quellcode:
// für Ansi und UTF8

Var isUTF8: Boolean;

Reset(F);
// hier versuchen das BOM auszulesen und z.B. isUTF8 setzen

...

ReadLn(F, sTmp);
If isUTF8 Then sTmp := Utf8ToAnsi(sTmp);
$2B or not $2B
  Mit Zitat antworten Zitat
21. Feb 2007, 14:26
Dieses Thema wurde von "SirThornberry" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
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 14:00 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