AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Was enthält bin_data genauer? (Benutzt von InternalGetUnicodeCategory)
Thema durchsuchen
Ansicht
Themen-Optionen

Was enthält bin_data genauer? (Benutzt von InternalGetUnicodeCategory)

Ein Thema von mael · begonnen am 12. Feb 2019 · letzter Beitrag vom 14. Feb 2019
 
Benutzerbild von mael
mael

Registriert seit: 13. Jan 2005
391 Beiträge
 
Delphi XE3 Professional
 
#1

Was enthält bin_data genauer? (Benutzt von InternalGetUnicodeCategory)

  Alt 12. Feb 2019, 17:29
Hallo,

In der Unit System.Character gibt es eine Funktion InternalGetUnicodeCategory(). Diese verwendet eine komplexe Indizierung und die Kategorie eines Codepoints zu bestimmen (ob es Control character ist, Letter, usw.).

Code:
Result := CategoryTable[CatIndexSecondary[CatIndexPrimary[C shr 8] + ((C shr 4) and $F)] + C and $F];
Die Indizierung ist wohl so aufgebaut um Speicher zu sparen, wahrscheinlich eine Art Trie. Allerdings bleibt es etwas nebulös wie das genau umgesetzt wurde. Sprich: Wie genau wurde die Liste der Codepoints, die ein array von 0..$10FFFF darstellt, auf diese Mehrfachindizierung reduziert? Kennt jemand die Hintergründe?

Die Array-Definitionen in System.Character_const.5.2.0.inc sind wohl etwas verständlicher. Sieht eher nach einer Art Bitcompression aus. Bin immernoch an Ratschlägen interessiert.
HxD, schneller Hexeditor:
http://mh-nexus.de/hxd

Geändert von mael (13. Feb 2019 um 11:19 Uhr)
  Mit Zitat antworten Zitat
 


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 22:31 Uhr.
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 by Thomas Breitkreuz