![]() |
Probleme mit funktion.
Hallo,
Ich habe probleme mit folgender funktion. Wenn ich für Windows compilire klappt alles inwandfrei, nur unter Andoid nicht. Unter Android bekommen ich immer 00 zurück.:x
Delphi-Quellcode:
Hier ein Beispiel.
function StringToHex(S: String): String;
var I: Integer; begin Result := ''; for I := 1 to length(S) do Result := Result + ' ' + IntToHex(ord(S[I]), 2); end;
Delphi-Quellcode:
procedure TfrmMain.RadioButtonChanged(Sender: TObject);
Var I, X: Integer; Begin Memo1.Lines.Clear; I := HexToByte(IntToHex(TRadioButton(Sender).Tag, 1)); for X := 0 to 7 do begin PortState0[I][X] := False; //zur info PortState0: array [0 .. 7, 0 .. 7] of Boolean; end; Exo := Exodet[I]; //zur info Exo: String; und Exodet: array [0 .. 7] of String; Memo1.lines.add(' '+StringToHex(Exo)+' ' +Exodet[I]); ScanStatus; SetPortOn(I); End;
Delphi-Quellcode:
StringToHex gibt mir unter Windows den richtigen wert zurück.
Memo1.lines.add(' '+StringToHex(Exo)+' ' +Exodet[I]);
Unter Android bekomme ich immer den wert 00. Mit Exodet[i] klappt die ausgabe auf beiden. Wieso geht das nicht under Android? |
AW: Probleme mit funktion.
Unter Android sind die Strings 0-basiert.
|
AW: Probleme mit funktion.
Delphi-Quellcode:
ist aber von der Bezeichnung eher irreführend.
StringToHex
Oder wolltest du eher
Delphi-Quellcode:
haben? Dafür gibt es aber schon
HexToInt
![]() Ah, jetzt, du willst den String als Bytefolge in Hex-Darstellung ... da solltest du besser über ![]() |
AW: Probleme mit funktion.
Zitat:
Bin schon dicke am lesen! |
AW: Probleme mit funktion.
Zitat:
Diese Sache muss nun erst mal warten, muss mich erst um obriges Problem kümmern. Aber Danke für den Hinweis! |
AW: Probleme mit funktion.
Zitat:
|
AW: Probleme mit funktion.
Zitat:
Delphi-Quellcode:
Also werde ich mir diese funktion nun doch zuerst vornehmen :oops:
for i:= Low(s) to High(s) do // so läufts
Danke euch beiden für die schnelle hilfe! :thumb: |
AW: Probleme mit funktion.
Nicht nur unter Android.
Es gibt das Define NEXTGEN, was du abfragen kannst. (IFDEF) Gilt aktuell für Android und iOS. Und es gibt für "Altcode" den Compilerschalter
Delphi-Quellcode:
.
{$ZEROBASEDSTRINGS OFF}
Zusätzlich gibt es noch die Record-Helper für den String, welche fast immer und wenn dann überall 0-basierend sind. Und dann natürlich Dinge wie Low und High. Aber Achtung, je nach Einstellung kann sich das von Unit zu Unit unterscheiden, also bissl Aufpassen, wenn man Position/Index an andere Funktionen weitergibt. |
AW: Probleme mit funktion.
Zitat:
Delphi-Quellcode:
bei Null beginnend (wie alles andere auch) und gut ist.". Liege ich falsch?
meinString.Chars[index]
|
AW: Probleme mit funktion.
Abgesehn davon, daß die Record-Helper für Insert und Delete das Grauenhafteste sind, was ich mir vorstellen kann, da sie sämtliche Speicheroptimierungen zu Nichte machen,
hat Chars keinen Setter und man darf dann doch wieder auf das gute alte und schön kurze
Delphi-Quellcode:
zurückgreifen.
S[i]
Auch beim Umgang mit anderen String-Funktionen darf man immer schön aufpassen in welchem Format (0 oder 1) man den Index da rein geben muß, bzw. wie er raus kommt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 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 by Thomas Breitkreuz