AGB  ·  Datenschutz  ·  Impressum  







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

Probleme mit funktion.

Ein Thema von jeng37 · begonnen am 9. Sep 2015 · letzter Beitrag vom 10. Sep 2015
Antwort Antwort
jeng37

Registriert seit: 23. Jul 2015
42 Beiträge
 
#1

Probleme mit funktion.

  Alt 9. Sep 2015, 17:29
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.

Delphi-Quellcode:
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;
Hier ein Beispiel.

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;
Memo1.lines.add(' '+StringToHex(Exo)+' ' +Exodet[I]); StringToHex gibt mir unter Windows den richtigen wert zurück.
Unter Android bekomme ich immer den wert 00.
Mit Exodet[i] klappt die ausgabe auf beiden.

Wieso geht das nicht under Android?
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Probleme mit funktion.

  Alt 9. Sep 2015, 17:30
Unter Android sind die Strings 0-basiert.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Probleme mit funktion.

  Alt 9. Sep 2015, 17:44
StringToHex ist aber von der Bezeichnung eher irreführend.

Oder wolltest du eher HexToInt haben? Dafür gibt es aber schon Delphi-Referenz durchsuchenStrToInt

Ah, jetzt, du willst den String als Bytefolge in Hex-Darstellung ... da solltest du besser über Delphi-Referenz durchsuchenTEncoding.GetBytes gehen und diese Bytes darstellen lassen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 9. Sep 2015 um 17:47 Uhr)
  Mit Zitat antworten Zitat
jeng37

Registriert seit: 23. Jul 2015
42 Beiträge
 
#4

AW: Probleme mit funktion.

  Alt 9. Sep 2015, 17:59
Unter Android sind die Strings 0-basiert.
Ok, Danke
Bin schon dicke am lesen!
  Mit Zitat antworten Zitat
jeng37

Registriert seit: 23. Jul 2015
42 Beiträge
 
#5

AW: Probleme mit funktion.

  Alt 9. Sep 2015, 18:01
StringToHex ist aber von der Bezeichnung eher irreführend.

Oder wolltest du eher HexToInt haben? Dafür gibt es aber schon Delphi-Referenz durchsuchenStrToInt

Ah, jetzt, du willst den String als Bytefolge in Hex-Darstellung ... da solltest du besser über Delphi-Referenz durchsuchenTEncoding.GetBytes gehen und diese Bytes darstellen lassen.

Diese Sache muss nun erst mal warten, muss mich erst um obriges Problem kümmern.
Aber Danke für den Hinweis!
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Probleme mit funktion.

  Alt 9. Sep 2015, 18:03
StringToHex ist aber von der Bezeichnung eher irreführend.

Oder wolltest du eher HexToInt haben? Dafür gibt es aber schon Delphi-Referenz durchsuchenStrToInt

Ah, jetzt, du willst den String als Bytefolge in Hex-Darstellung ... da solltest du besser über Delphi-Referenz durchsuchenTEncoding.GetBytes gehen und diese Bytes darstellen lassen.

Diese Sache muss nun erst mal warten, muss mich erst um obriges Problem kümmern.
Aber Danke für den Hinweis!
Damit erledigt sich dein obriges Problem von selbst
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
jeng37

Registriert seit: 23. Jul 2015
42 Beiträge
 
#7

AW: Probleme mit funktion.

  Alt 9. Sep 2015, 18:13
StringToHex ist aber von der Bezeichnung eher irreführend.

Oder wolltest du eher HexToInt haben? Dafür gibt es aber schon Delphi-Referenz durchsuchenStrToInt

Ah, jetzt, du willst den String als Bytefolge in Hex-Darstellung ... da solltest du besser über Delphi-Referenz durchsuchenTEncoding.GetBytes gehen und diese Bytes darstellen lassen.

Diese Sache muss nun erst mal warten, muss mich erst um obriges Problem kümmern.
Aber Danke für den Hinweis!
Damit erledigt sich dein obriges Problem von selbst
Habs gemergt
 for i:= Low(s) to High(s) do // so läufts Also werde ich mir diese funktion nun doch zuerst vornehmen
Danke euch beiden für die schnelle hilfe!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Probleme mit funktion.

  Alt 10. Sep 2015, 10:58
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 {$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.
$2B or not $2B

Geändert von himitsu (10. Sep 2015 um 11:01 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: Probleme mit funktion.

  Alt 10. Sep 2015, 11:11
Zusätzlich gibt es noch die Record-Helper für den String, welche fast immer und wenn dann überall 0-basierend sind.
Wo den nicht? Mein Weltbild sagt einfach "Nimm einfach immer meinString.Chars[index] bei Null beginnend (wie alles andere auch) und gut ist.". Liege ich falsch?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Probleme mit funktion.

  Alt 10. Sep 2015, 11:48
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 S[i] zurückgreifen.
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.
$2B or not $2B
  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 16:30 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