Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi string auf ⨂ prüfen (https://www.delphipraxis.net/212400-string-auf-pruefen.html)

Pfaffe 5. Feb 2023 19:46

Delphi-Version: 11 Alexandria

string auf ⨂ prüfen
 
Ich muss string prüfen, die mit dem Zeichen ⨂ beginnen. Obwohl meine Quellcodedatei auf UTF8 steht, kann sie dieses Zeichen nicht darstellen. Wie muss ich meine Abrage gestalten?

KodeZwerg 5. Feb 2023 20:38

AW: string auf ⨂ prüfen
 
Delphi-Quellcode:
  s: string;
begin
  s := '⨂ lalala';
  if s.StartsWith('⨂') then
    ShowMessage('Jupp');
Klappt bei mir auf anhieb.

himitsu 5. Feb 2023 21:03

AW: string auf ⨂ prüfen
 
egal ob StartsStr oder string.StartsWith oder ......

.StartsWith(#$2A02)

https://www.compart.com/de/unicode/U+2A02



Aber per se gibt es keinen Grund, warum ⨂ im Text nicht funktionieren sollte,
aber es kann gut sein, dass der Font im Editor dieses Zeichen nicht darstellen kann
und es sich auch keine Ersatzfont findet.

Egal ob es somit "unsichtbar", da sein muß es, wenn man das Zeichen richtig rein kopiert hat.

Alallart 5. Feb 2023 21:37

AW: string auf ⨂ prüfen
 
Sollte das nicht auch klassisch mit
Delphi-Quellcode:
  s: string;
begin
  s := '⨂ lalala';
  if Pos('⨂', s) = 1 then
    ShowMessage('Jupp');
klappen?

Pfaffe 5. Feb 2023 21:44

AW: string auf ⨂ prüfen
 
Hatte das mit dem Font bereits im Visier, bekomme es aber nicht hin, dass Zeichen wird nicht dargestellt, es kommt ein Quadrad mit Fragezeichen.
Aber die Lösung mit dem #$2A02 funktioniert. Danke.

himitsu 5. Feb 2023 22:13

AW: string auf ⨂ prüfen
 
Das ist eines der / das Ersatzzeichen, für Zeichen welche nicht dargestellt werden können, weil kein Glyph im Font vorhanden ist.
Oft wird da gern ein Glyph mit der Nummer genommen.
Egal, da ist das "Zeichen" ja dennoch.


@Alallart: Geht, aber warum nicht den Code so schreiben, dass er sagt was er wirklich macht?

Abgesehn davon prüft StartsStr und StartsText wirklich nur den Anfang, während Pos sinnlos erstmal den ganzen String durchsucht, wenn das Zeichen nicht vorkommt.
Ebenso Pos<>0 geht funktionell mehr in Richtung ContainsStr, nur dass Letzteres ebenfalls sagt was es macht.

Alallart 5. Feb 2023 22:24

AW: string auf ⨂ prüfen
 
Der TE hat wohl die aktuelle Delphi Version. Da wird deine Lösung wohl klappen. In alten Delphi-Versionen ist String aber nur ein String.

himitsu 5. Feb 2023 23:25

AW: string auf ⨂ prüfen
 
Die WideStrUtils und den OLE-String, vom Windows (OleAuth), aka WideString gibt es auch dort.
Und auch die Hier im Forum suchenTNTUnicodeControls.
Ebenso auch der UTF8String, nur damals noch nicht überall mit automatischer Convertierung.

Neu ist ja nur, dass auch die VCL und RTL als Unicode, sowie auch die WinAPI und Anderes standardmäßig auf Unicode.
Sowie dass der String jetzt ein UnicodeString ist (ein LongString, so wie der auch alte AnsiString)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:19 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