AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Funktion für leftstr / rightstr etc mit WideStrings
Thema durchsuchen
Ansicht
Themen-Optionen

Funktion für leftstr / rightstr etc mit WideStrings

Ein Thema von myicq · begonnen am 7. Mai 2021 · letzter Beitrag vom 9. Mai 2021
Antwort Antwort
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.133 Beiträge
 
Delphi 2009 Professional
 
#1

AW: Funktion für leftstr / rightstr etc mit WideStrings

  Alt 9. Mai 2021, 12:10
Noch eine generelle Warnung: Es gibt in Delphi (wie auch den meisten anderen Sprachen) ohnehin keine Methode, mit der man eine bestimmte Anzahl an Zeichen kopieren kann. Copy, LeftStr, RightStr etc. kopieren eine bestimmte Anzahl an Codeeinheiten, im Falle von Wide- bzw. UnicodeString UTF-16(LE)-Codeeinheiten. Auch die Angabe der Startposition bei Copy (und dessen langsameren Äquivalent MidStr) sind Codeeinheiten. Bei bestimmten Ideogrammen, Emojis usw. ist das unintuitiv. Das von dir gepostete Beispiel enthält aber keine Zeichen, die aus mehrere Codeeinheiten bestehen.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Funktion für leftstr / rightstr etc mit WideStrings

  Alt 9. Mai 2021, 12:28
Joar, da gibt es zwei Dinge

Einmal die Surrogates im UTF-16, das ist leicht zuerkennen,
also wenn #$D800..#$DBFF, dann gehört das nächste Char dazu.

Und dann die beliebten Combining-Chars, also mehrere Zeichen werden als ein Zeichen angezeigt.
z.B. kann man auch A¨ schreiben und sieht dann ein Ä.

Für diese Beiden gibt es im Windows Funktionen, die ich oben bereits genannt hatte.
Bei uns sieht man es fast nie, aber Richtung Asien und Co. ...

Noch mehr Spaß hat man bei den Smilieys, denn eigentlich bestehen bestanden die nur aus einem Char, aber jemand kam auf die Idee, dass Gendern saugeil wäre,
also kann man nun durch Zusatzzeichen noch Geschlecht und Hautfarbe von vielen Smilieys ändern. (ich glaub war 2018/2019)
(das Chinesengelb Simpsonsgelb gefiel einem nördlichen Ami wohl nicht )
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 9. Mai 2021 um 12:37 Uhr)
  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 07:42 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-2025 by Thomas Breitkreuz