![]() |
Textfile Einlesen problem mit Umlauten
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:
Viele Grüße und mit bestem Dank im Vorraus
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); Johannes |
Re: Textfile Einlesen problem mit Umlauten
Zitat:
|
Re: Textfile Einlesen problem mit Umlauten
Hallo Johannes,
wenn deine Eingabedatei UTF-8 kodiert ist, dann hilft dir eine Konvertierung:
Delphi-Quellcode:
Freundliche Grüße
sTmp := Utf8ToAnsi(sTmp);
|
Re: Textfile Einlesen problem mit Umlauten
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. |
Re: Textfile Einlesen problem mit Umlauten
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.: ![]() 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); |
DP-Maintenance
Dieses Thema wurde von "SirThornberry" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz