Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Unicodezeichen mit mehr als einem wideChar? (https://www.delphipraxis.net/207937-unicodezeichen-mit-mehr-als-einem-widechar.html)

Mavarik 19. Mai 2021 11:54

AW: Unicodezeichen mit mehr als einem wideChar?
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1489746)
Das konkrete Problem habe ich noch nicht verstanden. Angenommen du hast den String "Dånsk". Also
Delphi-Quellcode:
"D" + (char)0x61 + (char)0x30A + "nsk"
Dann liefert
Delphi-Quellcode:
"Dånsk".StartsWith("Da")
auch
Delphi-Quellcode:
false
, obwohl die ersten beiden Character ja übereinstimmen.

OK, StartWith kann das also, gut zu wissen - oder auch nicht. Kommt darauf an, welche Funktionalität man erwartet.

Eine Routine die Feststellen muss, ob es sich um Kosit, Latin 1.1 oder Latin 1.2 handelt sieht dann so aus...

Delphi-Quellcode:
For i:=1 to length(S) do
  begin
    if Dic3Char.TryGetValue(S[i],Target) then
      begin
        if length(S) > I+2 then
          begin
            if (s[i+1] = Target.Char2) and (S[i+2] = Target.Char3) then
              Exit(IsLatin1_2);
          end;
      end else begin
    if Dic2Char.TryGetValue(S[i],Target) then
      begin
        if length(S) > I+1 then
          begin
            if (s[i+1] = Target.Char2) then
              begin
                if IsLatin1_1(S[i],s[i+1]
                  then Exit(IsLatin1_1)
                  else Exit(IsLatin1_2);
              end;
          end;
      end else begin
        if not Dic1Char.TryGetValue[S[i],Target) then
        Exit(NonKoSIT);
      end;
    end;
  end;


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

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