AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi TStringList.LoadFromFile unter D2010 und XE
Thema durchsuchen
Ansicht
Themen-Optionen

TStringList.LoadFromFile unter D2010 und XE

Ein Thema von Bbommel · begonnen am 12. Apr 2011 · letzter Beitrag vom 12. Apr 2011
Antwort Antwort
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
652 Beiträge
 
Delphi 12 Athens
 
#1

TStringList.LoadFromFile unter D2010 und XE

  Alt 12. Apr 2011, 15:45
Hallo zusammen,

immer mal wieder ärgere ich mich über das Verhalten von "LoadFromFile" von TStringList, Stand Delphi 2009. Läuft nämlich bei der Verarbeitung einer Datei irgendetwas nicht so wie erwartet (z.B. eine Datei, die man als UTF8 laden will, enthält Stellen, an denen nicht korrekt in UTF8 kodiert ist), dann bricht das LoadFromFile kommentarlos ab und liefert eine komplett leere StringList zurück. Eine Exception oder so wird nicht geworfen.

Weiß jemand, ob sich dieses Verhalten bei D2010 oder XE geändert hat? Werden hier vielleicht Fehlermeldung geworfen oder ist das Einlesen irgendwie wenigstens fehlertoleranter geworden?

Falls ja, könnte ich es mir vielleicht sparen, doch noch mal eigene Lese-Routinen für die StringListe zu erstellen...

Bis denn
Bommel
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: TStringList.LoadFromFile unter D2010 und XE

  Alt 12. Apr 2011, 15:49
Das liegt leider an der mangelhaften UTF-8-Implementierung, welche schon immer so vorhanden ist. :wall.
(siehe Quellcode in Delphi-Referenz durchsuchenUTF8Decode)

In deinem Fall würde ich empfehlen dir eine eigene TEncoding-Klasse von TUTF8Encodung abzuleiten und dort die Konvertierung zu prüfen.

Delphi-Quellcode:
// Ausgang := UTF8Decode(Eingang);
if (Eingang <> '') <> (Ausgang <> '') then
  raise Exception.Create('Fehlerhafte UTF-8-Kodierung');
Oder sogar mit einer eigenen Dekodierung, welche schon direkt bei der Übersetzung den Fehler wirft und sogar die Fehlerstelle mit anzeigen könnte.

Und nein, im QC sind von mir schon seit Jahren schwerwiegendere und ebenso leicht korrigierbare Fehler gemeldet
und bis jetzt hat sich nix getan, also warum sollte sich hier was tun?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (12. Apr 2011 um 15:51 Uhr)
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
652 Beiträge
 
Delphi 12 Athens
 
#3

AW: TStringList.LoadFromFile unter D2010 und XE

  Alt 12. Apr 2011, 16:07
Hmpf.

Aber dann weiß ich Bescheid - Danke für die Antwort.

Im Moment habe ich allerdings ein viel blöderes Problem mit dem LoadFromFile (UTF8 sollte nur ein schönes Beispiel sein, das vielleicht viele schon mal hatten), aber dazu mache ich dann bei Gelegenheit einen eigenen Thread auf...
  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 20:09 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