AGB  ·  Datenschutz  ·  Impressum  







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

Probleme mit Unicode

Ein Thema von himitsu · begonnen am 11. Okt 2003 · letzter Beitrag vom 14. Okt 2003
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

Probleme mit Unicode

  Alt 11. Okt 2003, 22:52
hi,

ich arbeite an einem kleinem mehrsprachigen Programm in dem ich mit Unicode (WideString) arbeite und hab da einige Probleme mit der Verarbeitung von WideString's.
Es scheint da irrgend wie nur Funktionen für ShortString [String] und AnsiString zu geben.
Und in einem 2-Byte-System alles 1-Byte-weise zu verarbeiten ist doch nicht das Wahre.

fehlende Funktionen:
- Copy
- Pos
- ReadLn, WriteLn (mit "TextFile" und "File of WideString" geht das nicht richtig)

Kann zwar mittlerweile Unicode-Text-Dateien (siehe Notepad [Windows-Editor]) auslesen, das geht allerdings etwas langsam, da die Datei im prinzip WideChar-weise ausgelesen wird und dann auf die verschiedenen Strings verteilt wird.

Und dann hab ich auch noch keine Funktion zum convertieren von WideString in AnsiString gefunden.
Da mir die Spezifikationen für die 2-Byte-Zeichen im AnsiString nicht bekannt sind kann ich auch keien eigene Funktion für die Umwandlung schreiben.


Zum Thema erweiterter Unicode (4 Byte) gibt es anscheinend überhaupt nichts. Brauche es zwar derzeit noch nicht, da es ja derzeit kaum/keine Programme gibt die das verwenden. Ist aber nur eine Frage der Zeit bis ich dort ankomme, da dort viele neue und im 2-Byte-Unicode-System noch fehlende asiatische Zeichen aufgeführt sind. Währe aber auch besser das jetzt im Aufbau schon einzubinden, als es später wieder ändern zu müssen.


Ich hoffe das mir jemand helfen kann, da die Meisten damit nichts zu tun haben. War vorher in einem anderen Forum unterwegs und da war in der Richtung nicht viel los.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Probleme mit Unicode

  Alt 12. Okt 2003, 01:24
Moin Himitsu,

Zitat von himitsu:
Und dann hab ich auch noch keine Funktion zum convertieren von WideString in AnsiString gefunden.
da bietet sich WideCharToString an. (Unit System).
Wenn Du Dir die mal in der Hilfe anschaust, kommst Du auch auf einen Verweis zu den weiteren Multibyte Funktionen (auch wenn's nicht viele sind.)

Was weitere Funktionen angeht, kann ich Dir empfehlen, Dir mal die Header Datei SHLWAPI.H aus dem PSDK anzusehen.
Dort sind viele Stringfunktionen enthalten. Ich weiss jetzt nur nicht aus dem Kopf, ob da auch Copy/Pos bzw. vergleichbares enthalten ist. Die Funktionen existieren i.d.R. als W(ide) und A(nsi) Version (zu importieren aus der SHLWAPI.DLL)

Das Einlesen geht vermutlich bequemer mit TFileStream oder per Hier im Forum suchenMMF (Memory Mapped File) allerdings musst Du dann wohl selber die Zeilen trennen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Probleme mit Unicode

  Alt 12. Okt 2003, 03:03
Morsch'n Cris,

muß mich halt nach fast 1½ Jahren Pause erst wieder reinfinden und hab WideCharToString wohl bei der Suche übersehen.
Ist zwar wieder mal eine doppelte Konvertierung (WideString -> PWideChar -> AnsiString), kann mann aber noch verkraften.

Bei den anderen Funktionen sind mir aber noch keine für WideString untergekommen, nur ShortString, AnsiString und die entprechenden nullterminierten Zeigertypen. Werd' ab mal nach PWideChar... suchen, vieleicht findet sich ja doch noch was an. Und die SDK - oh mann schon wieder einen zu installieren.

Das mit den Streams fürs einlesen ist bei mir auf Grund der Art meiner Datenquellen zu umständlich. Hab die Streams wieder abgeschaft, da ich sie so oder so selbst trennen musste.

also Danke erstmal für den neuen Ansatz bei der Suche.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

Re: Probleme mit Unicode

  Alt 13. Okt 2003, 08:52
Ein Teil der gesuchten Funktionen gibt es in Delphi schon:

Copy, Pos: Funktionieren auch mit Widestrings (UCS2)

ReadLn, WriteLn: Funktioniert nicht mit Widestrings.

Falls du wirklich ernsthaft mit Unicode arbeiten willst, so mußt Du noch entscheiden ob
du Win9x/ME auch unterstützen willst oder nur die NT-Schiene (NT/2000/XP/2003).

Für die NT-Schiene kannst Du die TNT-Controls verwenden hier sind auch Stringfunktionen für Widestrings vorhanden die teilweise auf API-Funktionen zurückgreifen

Für Win9x-2003 bleiben dir nur das El-Pack übrig. 100% Delphi und lauffähig auf jeder Win32-Version ohne auf Win32-API-Funktionen aufzusetzen.

4-Byte-Unicode (UCS4) wird m.E. frühestens in 5-10 Jahren überhaupt von einer Windows-Version unterstützt werden. Bis dorthin sind die Erweiterungen nur Theorie und ohne relevanz für die SW-Entwicklung. Auch im .NET-System basieren Strings nur auf 2-Byte-Characters (da ja auch die Win-API nur 2-Byte-Characters unterstützt).

In der Ausgabe 5.2003 der Zeitschrift "Der Entwickler" steht ein Artikel von mir über dieses Thema.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Probleme mit Unicode

  Alt 14. Okt 2003, 12:23
Die TNT-Controls seh'n nicht schlecht aus. Und wenn ich mich entscheiden muss, werd' ich wohl bei NT bleiben. (arbeite selbst mit 2000P)

Nach Möglichkeit versuche ich aber so zu arbeiten, das es unter 95 bis XP (demnächst natürlich auch Longhorn) läuft.
Auf der HomePage werden zusätzlich noch downloadbare Schriftarten eingebunden, so das man auch ohne die entsprechende Sprachunterstützung was erkennt.
Es ist schon richtig schwer etwas so zu schreiben, das es bei möglichst vielen läuft.

Und das mit UCS4 jetzt noch nicht so viel los ist, hatte ich mir schon gedacht.
Der Unicode Standard v4.0.0, mit dem die 4-Byte Unicodezeichen eingeführt wurden, ist glaube ich auch erst dieses Jahr offiziell rausgekommen.
Da aber die von Microsoft ja sonst alles einbauen, egal ob es richtig funktioniert oder nicht, hätte da also auch schon etwas vorhanden sein können.


Gibt es noch 'ne Möglichkeit an diesen Artikel ran zu kommen. Werd' mich zwar mal etwas umschauen. Hab aber keine großen Hoffnungen.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

Re: Probleme mit Unicode

  Alt 14. Okt 2003, 13:55
Zitat:
Die TNT-Controls seh'n nicht schlecht aus. Und wenn ich mich entscheiden muss, werd' ich wohl bei NT bleiben. (arbeite selbst mit 2000P)
Selbst verwende ich die ElPack-Komponenten aufgrund der "mehr-Features":
- Eigene XP-Themes-Engine (alle Controls sind XP-Themed)
- Win9x/ME-Support
- Enhanced-Controls verfügbar (schnelles Tree, Editoren, ...)
- ...

Zitat:
Es ist schon richtig schwer etwas so zu schreiben, das es bei möglichst vielen läuft.
Kann ich bestätigen. Vor allem wenn auch noch unter chinesichen, taiwanesischen, japanischen Windows laufen soll ...

Zitat:
Da aber die von Microsoft ja sonst alles einbauen, egal ob es richtig funktioniert oder nicht, hätte da also auch schon etwas vorhanden sein können.
Das wird wenn es irgendwann mal kommt nur noch auf der .NET-Schiene kommen. Und da müssen ja auch noch die Fonts nachgezogen werden ...

Zitat:
Gibt es noch 'ne Möglichkeit an diesen Artikel ran zu kommen. Werd' mich zwar mal etwas umschauen. Hab aber keine großen Hoffnungen.
Einfach beim Verlag nachbestellen: https://www.entwickler.com/ssl/mag_r...&ausgabeid=156
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Probleme mit Unicode

  Alt 14. Okt 2003, 20:28
Oh hab's in der Eile wohl falsch verstanden.
Dachte "El-Pack" nur für 9x & ME aber nicht für NT. Da es nicht so ist, schau ich mir auch mal diese Pack an.
$2B or not $2B
  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 08:32 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