Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi StrUtils.AnsiIndexText für Android (https://www.delphipraxis.net/184792-strutils-ansiindextext-fuer-android.html)

amigage 21. Apr 2015 15:37

StrUtils.AnsiIndexText für Android
 
Hallo liebe Gemeinde,

ich stehe auf dem Schlauch und weiß nicht weiter.
kann mir jemand einen Tipp geben?

Ich habe ein Array mit 12 englischen Monatsnamen (Jan, Feb, Mar, etc) und möchte anhand des Kürzels den Index erhalten.
In Windows habe ich dies bisher über

Delphi-Quellcode:
monthname = 'Jun';
i := StrUtils.AnsiIndexText(monthname, MonthArray) + 1;
Jetzt suche ich die Variante für Android, werde aber leider nicht fündig.

Delphi-Quellcode:
i := MonthArray.indexOf(monthname);
o.s.ä. gibt es nicht.

Danke für jeden Hinweis.

Uwe Raabe 21. Apr 2015 15:43

AW: StrUtils.AnsiIndexText für Android
 
AnsiStrings gibt es unter Android nicht. Du kannst aber auf allen Plattformen
Delphi-Quellcode:
StrUtils.IndexText
verwenden.

himitsu 21. Apr 2015 15:44

AW: StrUtils.AnsiIndexText für Android
 
Und nur IndexText aus der SysUtils/StrUtils?

AnsiSameText aus der SysUtils/StrUtils ist die UnicodeVersion (außer das aus der AnsiStrings)
SameText ist dagegen immernoch die ASCII-Version

Bei fast allen anderen String-Funktionen kann man das Ansi im Namen aber weglassen.

amigage 21. Apr 2015 15:56

AW: StrUtils.AnsiIndexText für Android
 
Danke für den Hinweis.

Ich hätte schreiben sollen, dass ich es auch mit IndexText versucht habe.
Aber der Compiler hatte immer gemeckert, dass es keine StrUtils gibt.

Aber ich habe den Fehler gefunden. :-D

Unter Windows hatte ich bisher die StrUtils eingebunden.
Unter FMX muss man aber den kompletten UnitNamen System.StrUtils angeben:

So sollte es also funktionieren:
Delphi-Quellcode:
monthname = 'Jun';
i := System.StrUtils.IndexText(monthname, MonthArray) + 1;

himitsu 21. Apr 2015 16:00

AW: StrUtils.AnsiIndexText für Android
 
Achso.
Entweder du gibst die Unit-Namspaces mit an, also System.StrUtils, oder du mußt darauf achten, daß in den Projektoptioen der gewünschte Namespace enthalten ist. Ist das ein altes Projekt? System und FMX sollten in einem (neueren) FMX-Projekt igentlich definiert sein.

amigage 21. Apr 2015 16:26

AW: StrUtils.AnsiIndexText für Android
 
Zitat:

Zitat von himitsu (Beitrag 1298700)
du mußt darauf achten, daß in den Projektoptioen der gewünschte Namespace enthalten ist. Ist das ein altes Projekt? System und FMX sollten in einem (neueren) FMX-Projekt igentlich definiert sein.

Wo genau lege ich das in den Projektoptionen fest?
Es ist eigentlich ein neues FMX-Testprojekt gewesen.

himitsu 21. Apr 2015 16:45

AW: StrUtils.AnsiIndexText für Android
 
Projektoptionen > Delphi-Compiler > Unit-Gültigkeitsbereichsnamen (hieß früher mal Standard-Namespace)


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