AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

XE5 und "veraltet"

Ein Thema von Mavarik · begonnen am 9. Okt 2013 · letzter Beitrag vom 9. Okt 2013
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von himitsu
himitsu

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

AW: XE5 und "veraltet"

  Alt 9. Okt 2013, 16:16
Das Problem ist halt, daß ein SET nur bis zu 256 Werte enthalten kann.
Ein Set of WideChar hätte aber 65536 werte und das aucn nur, wenn man die Surrogates nicht beachtet, welche eigentlich aus 4 Bytes bestehen.

Technich hätte man es hier bei "diesem" IN, wo direkt das "SET" dahinter definiert ist, dieses wie ein CASE auswerten können, was dann viel mehr Möglichkeiten vieten würde.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#12

AW: XE5 und "veraltet"

  Alt 9. Okt 2013, 17:43
if S[i] in ['0'..'9'] then Fehler W1050 Widechar in Set-Ausdrücken auf ByteChar verkürtzt. Ziehen Sie die Verwendung der Funktion 'CharInSet' aus der Unit 'Sysutils' in Betracht.
Das ist doch schon der erste Fehler. Der Compiler generiert hierfür korrekten Code der auf WideChar-Basis (2 Byte) arbeitet. Solange das CharSet aus ASCII Zeichen (also "<= #127") besteht, ist die Warnung bzw. der Fehler hinfällig. Und CharInSet() ist eine Performance-Krücke, ganz zu schweigen von TCharHelper.IsInArray, das der totale Abschuss von der Performance her ist, da zum einen ein Array on-the-fly erzeugt und dieses dann auch noch Iterativ (for-Schleife) durchlaufen wird. Und ich finde "C in ['0'..'9']" um einiges lesbarer als C.InArray(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'])"
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#13

AW: XE5 und "veraltet"

  Alt 9. Okt 2013, 17:49
Und ich finde "C in ['0'..'9']" um einiges lesbarer als C.InArray(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'])"
Du sollst ja auch C.IsDigit schreiben.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.160 Beiträge
 
Delphi 10 Seattle Enterprise
 
#14

AW: XE5 und "veraltet"

  Alt 9. Okt 2013, 17:53
Kleine Frage: In diesem Fall doch myChar.isNumber() oder? Digit schließt wohl auch Dinge wie Kommas mit ein, oder?

//Edit:

In der OH für System.Character.IsDigit (ACHTUNG DEPRECATED) findet man:
Zitat:
Die Definition von Digit und die Beziehung zu Number finden Sie unter
http://www.unicode.org/versions/Unic...04.pdf#G124206, The Unicode Standard, Version 5.2
In der empfohlenen Methode des TCharHelper steht davon leider nichts mehr.

Das ist der halbe Punkt meiner nur anderthalb Kritikpunkte an Embarcadero Delphi. Die Hilfe ist wirklich etwas durcheinander und nicht gerade fehlerfrei...

Geändert von Der schöne Günther ( 9. Okt 2013 um 17:56 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#15

AW: XE5 und "veraltet"

  Alt 9. Okt 2013, 19:01
Kleine Frage: In diesem Fall doch myChar.isNumber() oder? Digit schließt wohl auch Dinge wie Kommas mit ein, oder?
Digit ist eine Untermenge von Number. Beides schließt aber das Komma nicht ein. Aber Digit ist auch nicht zwingend identisch mit 0..9!
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 19:36 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