AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Textdatei auf gültigen Zeichensatz prüfen
Thema durchsuchen
Ansicht
Themen-Optionen

Textdatei auf gültigen Zeichensatz prüfen

Ein Thema von Mike_on_Tour · begonnen am 12. Okt 2012 · letzter Beitrag vom 15. Okt 2012
Antwort Antwort
Seite 1 von 2  1 2      
Mike_on_Tour

Registriert seit: 16. Aug 2007
195 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Textdatei auf gültigen Zeichensatz prüfen

  Alt 12. Okt 2012, 07:17
Guten Morgen,

eine vom Programm erzeugte Textdatei enthält angeblich verschiedene Zeichen-Codierungen, also z.B. ISO 8859, ISO 646 und Codepage 850. Es betrifft alle Umlaut-Zeichen. Wie kann man das überprüfen bzw. gibt es dafür Programme (Name) ? Welche Systemeinstellungen sind dafür verantwortlich ?

Viele Grüße,
Mike
Programmieren ist wie das Wandeln auf dem schmalen Pfad zwischen Wahnsinn und Intelligenz.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

AW: Textdatei auf gültigen Zeichensatz prüfen

  Alt 12. Okt 2012, 07:26
Da kann man eigentlich nur raten.

Um Probleme zu umgehen sollten Textdateien als Unicode-Textdateien mit einem UTF8 oder Big/Little-Endian-BOM versehen sein.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Mike_on_Tour

Registriert seit: 16. Aug 2007
195 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Textdatei auf gültigen Zeichensatz prüfen

  Alt 12. Okt 2012, 08:13
Die Spezifikation lässt Unicode nicht zu. Erlaubt sind nur 8-Bit-Codes.
Programmieren ist wie das Wandeln auf dem schmalen Pfad zwischen Wahnsinn und Intelligenz.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Textdatei auf gültigen Zeichensatz prüfen

  Alt 12. Okt 2012, 08:16
Eine Ansammlung von Bytes ohne Kennung/Header o.ä.
IMHO keine Chance ...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Mike_on_Tour

Registriert seit: 16. Aug 2007
195 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Textdatei auf gültigen Zeichensatz prüfen

  Alt 12. Okt 2012, 08:26
Die Ansammlung von Bytes hat schon eine feste Struktur, aber es gibt keine Information zur verwendeten Codierung.
Programmieren ist wie das Wandeln auf dem schmalen Pfad zwischen Wahnsinn und Intelligenz.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Textdatei auf gültigen Zeichensatz prüfen

  Alt 12. Okt 2012, 09:08
Jupp, ANSI (CodePages/Zeichensätze) besitzen keine Kennung, wie z.B. das Unicode-BOM,
denn diese besitzen alle die selbe Kodierung und nur die Interpretation der einzelnen Werte (z.B. per Transformationstabellen ala 'ner CodePage) unterscheidet sich.

Beim Unicode hat aber jeder Wert ein genau definiertes Zeichen, aber die Kodierung/Speicherung dieser Werte ist vorgegeben.
Dieses BOM, welches man z.B. kennt, ist ein bestimmter Wert (Marker) und anhand dessen, wie er gespeichert wurde, erkennt man daran, um welches Encoding es sich handelt. (abgesehn von einer Standardkodierung, welche man sich für die jeweilige Datei, bzw. das jeweilige OS festgelegt hat).


Wie also schon genannt wurde:
Wenn nicht irgendwo steht, um welche Kodierung es sich handelt, wie z.B. BOM, Attribut (XML) oder irdendwas Externes, ist es unmöglich.

Abgesehn von 7-Bit-Kodierungen, wie z.B. ASCII, sind im ANSI eigentlich erstmal alle Zeichen gültig.



PS: Das Thema wurde schon mehrmals hier angesprochen. SuFu?
Man kann versuchen über Wörterbücher, Häufigkeitsverteilungen von Zeichen oder bestimmte CodeMuster zu erkennen, um was es sich handelt, aber 100%ig Sicher ist das niemals.
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. Okt 2012 um 09:12 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Textdatei auf gültigen Zeichensatz prüfen

  Alt 12. Okt 2012, 09:43
Das ein Programm Textausgaben mit unterschiedlichen Codierungen erstellt, finde ich schon sehr seltsam. Wenn dann auch noch ISO 646 und ISO 8859 gemischt werden.. aber gut meine Phantasie reicht für soetwas nicht aus.

Um was für Daten handelt es sich denn dabei? Sind sie irgendwie strukturiert?
ist der Text in Abschnitte unterteilt, mit z.b. Titel und Sprachangabe?
Oder handelt es sich um plain text?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#8

AW: Textdatei auf gültigen Zeichensatz prüfen

  Alt 12. Okt 2012, 09:48
Das Programm Notepad++ zeigt Dir unten rechts ein Codierung an, sofern Notepad++ diese auslesen kann.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Textdatei auf gültigen Zeichensatz prüfen

  Alt 12. Okt 2012, 10:09
Man kann versuchen über Wörterbücher, Häufigkeitsverteilungen von Zeichen oder bestimmte CodeMuster zu erkennen, um was es sich handelt, aber 100%ig Sicher ist das niemals.
Wird aber problematisch sein wenn mehrer Codepages in einer Datei sein sollen und man nicht weiß wo die einzelnen Abschnitte Anfangen oder Aufhören.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Mike_on_Tour

Registriert seit: 16. Aug 2007
195 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

AW: Textdatei auf gültigen Zeichensatz prüfen

  Alt 15. Okt 2012, 13:26
Erst mal Danke für die Antworten.

Einen kleinen Fehler konnte ich inzwischen lokalisieren und beheben. Dabei handelte es sich um 10 Jahre alte Daten, die damals noch unter MS-DOS erstellt wurden und im Programm intern als ANSI konvertiert werden. Das Speichern der Daten erfolgt (aus historischen Gründen) wieder im DOS-Zeichensatz. Es wird also hin und her konvertiert. Die Dateiausgabe soll dann wieder im DOS-Zeichensatz erfolgen und da war dann auch das Problem. Wen es interessiert, die Datenstruktur gehört zum euBP-Verfahren.
Programmieren ist wie das Wandeln auf dem schmalen Pfad zwischen Wahnsinn und Intelligenz.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 03:53 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