![]() |
Ord() Funktion unter Android
Bei der Portierung dieses Codes für eine einfache Verschlüsselung von Windows auf Android habe ich das Problem, dass unter Android ein komplett anderes Ergebnis geliefert wird.
Hängt das vielleicht damit zusammen, das Android eine andere Codepage verwendet? Wie kann ich erreichen, das unter Android dasselbe Ergebnis wie unter Windows geliefert wird?
Code:
Ich setze Delphi 10.3 Community ein.
Inword := 'Android';
for i := 1 to length(Inword) do Outword := Outword + char(ord(Inword[i])-i); showmessage(Outword) // liefert "@lanjc]" unter Windows und "mbokd^_" unter Android |
AW: Ord() Funktion unter Android
Könnte es sein, dass die Indexierung von Strings unter Android bei 0 beginnt?
|
AW: Ord() Funktion unter Android
... mmmh, du meinst so:
Code:
klappt aber leider auch nicht.
for i := 0 to length(Inword)-1 do
Outword := Outword + char(ord(Inword[i])-i); :( |
AW: Ord() Funktion unter Android
Nein, wenn Du das so machst, dann subtrahierst Du am Ende eins zu wenig.
Also entweder
Code:
oder
for i := 0 to length(Inword)-1 do
Outword := Outword + char(ord(Inword[i])-i-1);
Code:
for i := 1 to length(Inword) do
Outword := Outword + char(ord(Inword[i-1])-i); |
AW: Ord() Funktion unter Android
Super - so klappt es!
Danke! :-D |
AW: Ord() Funktion unter Android
Darauf bin ich auch schon reingefallen!
Als Android compiliert muss man ab 0 zählen, bei Windows ab 1. Eigentlich ein Unding dass man einen Code ändern muss damit er bei Android funktioniert... Fehler von Embarcadero? Ciao Stefan |
AW: Ord() Funktion unter Android
Das ist 0-based bei den Mobilen.
Dafür gibt es aber eine Reihe handlicher Helper MyString.Chars[0]; Mystring.Length; MyString.SubString(0, len); // glaube ich ohne nachzulesen. ... ... Die funktionieren mit 1 und 0 based strings. |
AW: Ord() Funktion unter Android
Hier ein paar Tipps:
|
AW: Ord() Funktion unter Android
Man kann die 0-Indizierung auch per define abstellen, funktioniert nur leider nicht für die Helper:
{$ZEROBASEDSTRINGS OFF} |
AW: Ord() Funktion unter Android
Edit: Ups, verlesen
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:23 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