AGB  ·  Datenschutz  ·  Impressum  







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

Unicode Zeichensatz erkennen

Ein Thema von naujo · begonnen am 24. Aug 2005 · letzter Beitrag vom 24. Aug 2005
Antwort Antwort
naujo

Registriert seit: 31. Jan 2005
25 Beiträge
 
Delphi 6 Enterprise
 
#1

Unicode Zeichensatz erkennen

  Alt 24. Aug 2005, 13:47
Moin,

ich habe das folgende Problem: Das Programm soll zeilenweise eine Textdatei einlesen. Da bei ist das Programm das die Datei aus ASCII, UFT-8, UTF-16 oder Unicode bestehen kann.

Ich weiß es gibt schon Sammlungen wie ElPak oder TNT-Unicode oder JEDI nur leider stellen diese Komponenten nicht die Funktionalität zur Verfügung, die ich benötige.

Denn das Programm soll die entsprechenden Dateien nach bestimmten Zeichenketten durchsuchen und filtern. Das ganze soll dann wieder in eine Textdatei des gleichen Formats geschrieben werden.

Eine TStringList möchte ich nicht verwenden, weil diese Komponte bei großen Dateien (einige 100 MB) nicht besonders performant ist, denn das Tool soll auch auf älteren Kisten laufen.

Zur verwende ich die POS-Funktion zur Bestimmung, ob der Suchstring eventuell in der Zeichenkette vorhanden ist.

Und funktioniert eigentlich ReadLN auch mit Unicode??? Mit einer Intensiven Google recherche habe ich nichts brauchbares gefunden.


Vielen Dank schon mal

MfG

Naujo
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

Re: Unicode Zeichensatz erkennen

  Alt 24. Aug 2005, 13:54
Zitat von naujo:
Und funktioniert eigentlich ReadLN auch mit Unicode??? Mit einer Intensiven Google recherche habe ich nichts brauchbares gefunden.
Njet. Mußt dir schon selbst was basteln welche Unicode-Textdateien einließt und blockweise in den speicher holt.
Aber die Implementierungen von ElPack/TntWare können dir ja als vorlage dienen wie man die verschiedenen Formate (Unicode/Ansi/...) erkennt. Darst halt nicht wie dort alles in einen schwung einlesen sondern "nur" blockweise eine Erkennung machen
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
naujo

Registriert seit: 31. Jan 2005
25 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Unicode Zeichensatz erkennen

  Alt 24. Aug 2005, 13:57
Ok.

Dann werde ich das mal versuchen.

Danke.

MfG

Naujo
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#4

Re: Unicode Zeichensatz erkennen

  Alt 24. Aug 2005, 14:17
Wenn es solche Dateien sind, die nicht nur den Text als UTF-8/16 oder ANSI enthalten, sondern die bei den UTFs auch noch ein Kennbyte enthalten, dann mußt du nur die ersten beiden Bytes auswerten.

Wie müssen die Werte sein? Nunja, man nehme sich Notepad zur Hand, starte es. Tippsele etwas Text und speicher diesen einmal als "Unicode" (UTF-16) und einmal als "UTF-8" ab. Danach schaue man sich das Resultat und davon die ersten 2 Bytes in einem Hexeditor an. Voila, damit hast du's.

Wenn du einen String hast, gibt dir u.U. die Funktion MSDN-Library durchsuchenIsUnicode() Aufschluß über den Inhalt.

Achtung, Windows unterstützt mindestens bis inkl. Windows 2000 kein echtes UTF-16 sondern vielmehr nur das was man als UCS-2 (2bytiges Unicode ohne Surrogates) kennt!
  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 06:14 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