Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Code Page-Name zu Identifier (https://www.delphipraxis.net/94951-code-page-name-zu-identifier.html)

himitsu 17. Jan 2008 17:54

Re: Code Page-Name zu Identifier
 
Zitat:

CPInfoEx ist in Delphi nicht definiert
hatte ich gemerkt und ein erster schneller Versuch mit EnumSystemCodePages liefert einfach immer nur eine einzige "10000" :shock:

Delphi-Quellcode:
Function EnumCodePagesProc(CodePageString: PChar): LongBool; StdCall;
  Begin
    Form1.Memo1.Lines.Add(CodePageString);
    Result := True;
  End;

Procedure TForm1.FormCreate(Sender: TObject);
  Begin
    EnumSystemCodePages(@EnumCodePagesProc, CP_SUPPORTED);
  End;
[Edit] hmm ... LongBool-True ($ffffffff) wird wohl nicht so bekocht wie LongWord(1)

Bollean-True(1) ist ja leider zu kurz :?

und dabei steht doch was von Boolean im PSDK :shock:



nur leider sind die CodePage-Namen etwas blöd ... nett lokalisiert, was ein prüfen auf bestimmte Namen ungünstig macht :cry:

Zitat:

21866 = "21866 (Ukrainisch - KOI8-U)"
28591 = "28591 (ISO 8859-1 Lateinisch I)"
28592 = "28592 (ISO 8859-2 Mitteleuropa)"
und "ISO 8859-1" <> "ISO-8859-1"

Union 17. Jan 2008 18:22

Re: Code Page-Name zu Identifier
 
Zitat:

Zitat von himitsu
Zitat:

CPInfoEx ist in Delphi nicht definiert
hatte ich gemerkt und ein erster schneller Versuch mit EnumSystemCodePages liefert einfach immer nur eine einzige "10000" :shock:

Das lag daran, dass ja die Funktion einen Pointer auf eine CPInofEx-Struktur empfängt ;)

himitsu 17. Jan 2008 18:55

Re: Code Page-Name zu Identifier
 
Zitat:

Zitat von Union
Zitat:

Zitat von himitsu
Zitat:

CPInfoEx ist in Delphi nicht definiert
hatte ich gemerkt und ein erster schneller Versuch mit EnumSystemCodePages liefert einfach immer nur eine einzige "10000" :shock:

Das lag daran, dass ja die Funktion einen Pointer auf eine CPInofEx-Struktur empfängt ;)

nee nee, LongBool (laut PSDK) auch in LongWord geändert und schon geht's.

bleibt aber dennoch das Problem mit der Stringerkennung.

also ich bekomm z.B. eine Datei und in der ist z.B. "ISO-8859-1" zu finden,
jetzt müßte ich das für eine Weitere Verarbeitung in Unicode umwandeln, da mein Programm damit arbeitet.

aber der String "ISO-8859-1" ist nirgends in de Liste zu finden :cry:

Union 17. Jan 2008 21:23

Re: Code Page-Name zu Identifier
 
Also mit dem oben geposteten Code geht es definitiv, ich mache im FormCreate folgendes:
Delphi-Quellcode:
GetCodePageList(cbxCpExt.Properties.Items);
Und das ist das Ergebnis:
http://softwareunion.lu/images/CodepageCombobox.png

himitsu 17. Jan 2008 21:42

Re: Code Page-Name zu Identifier
 
klar geht der Code ... hab ja nicht behauptet er ginge nicht, aber...

wenn dein Programm jetzt einen String ala "ISO-8859-1" bekommt, wie soll es diesen denn jetzt in dieser Liste suchen?

OK, ich könnte das erste "-" mal einfach so blind ersetzen, aber wer sagt mir daß dieses in einer anderen Sprache nicht wieder anders geschrieben wird?


Oder hab ich das jetzt nur falsch verstanden und bezieht sich dieses "könnte sich (zuküntig) ändern" nicht auf die Identifiers der CodePages und ich könnte diese somit doch hart kodieren?

('nen kleines Array der nötigen CPs ... CP-String_to_CP-Ident)

Union 18. Jan 2008 11:15

Re: Code Page-Name zu Identifier
 
Zitat:

Zitat von himitsu
wenn dein Programm jetzt einen String ala "ISO-8859-1" bekommt, wie soll es diesen denn jetzt in dieser Liste suchen?

Vielleicht mit Delphi-Referenz durchsuchenPos() ?

Muetze1 18. Jan 2008 11:20

Re: Code Page-Name zu Identifier
 
Zitat:

Zitat von Union
Vielleicht mit Delphi-Referenz durchsuchenPos() ?

Man beachte den roten Bindestrich in seinem Beispielstring...

Union 18. Jan 2008 11:45

Re: Code Page-Name zu Identifier
 
Ok, also geht es wohl um die Umsetzung eines html charset in eine Windows-Codepage. Da es dabei ja wirklich diese kleinen gemeinen Unterschiede in der Schreibweise bei html und Windows gibt muss man im schlimmsten Fall wohl tatsächlich eine feste Umsetzungstabelle verwenden. [edit]... oder auch diese[/edit]

himitsu 18. Jan 2008 15:47

Re: Code Page-Name zu Identifier
 
ok, dann halt doch hart kodiert ._.

nja, hoffentlich bleiben die Identifiers gleich ... klingt ja hier und da so, als könnte sich da mal was dran ändern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:26 Uhr.
Seite 2 von 2     12   

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