AGB  ·  Datenschutz  ·  Impressum  







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

Umwandeln eines Characters

Ein Thema von gro · begonnen am 26. Jul 2020 · letzter Beitrag vom 26. Jul 2020
 
gro

Registriert seit: 9. Jul 2004
Ort: Kärnten
17 Beiträge
 
Delphi 10.3 Rio
 
#1

Umwandeln eines Characters

  Alt 26. Jul 2020, 11:17
Ich habe folgendes Problem
Ein String muss in einen Hexstring umgewandelt werden und dieser wieder retour in einen String
Dazu folgender minimaler Codeblock

Delphi-Quellcode:
procedure THeaderFooterForm.Button1Click(Sender: TObject);
var
  szInputString : String;
  szEncodeString : String;
  szDecodeString : String;
  iValue : Integer;

begin
  szInputString := '';

  // umwandeln zu einen Hexstring
  iValue := Trunc(Byte(szInputString[1])); // Result 172 <<- Anmerkung eigentlich ist das auch schon falsch da es eigentlich 128 sein müsste
  szEncodeString := IntToHex(iValue, 2); // Result $AC <<- Müsste eigentlich $80 sein

  // Rückwandeln der Hexwertes in einen String //
  iValue := StrToInt('$' + szEncodeString); // Result 172
  szDecodeString := char(iValue); // so? und was soll hier passieren damit wieder € rauskommt???

  if (szDecodeString <> szInputString) then begin
    // leider unterschiedlich
    Beep;
  end;

end;
Was mach ich hier falsch???
Das Hauptproblem das ich hier habe ist, das das ganze auch unter Android funktionieren sollte.

Folgendes würde funktionieren ist aber für Android nicht geeignet das es keinen AnsiChar unter Android gibt

Delphi-Quellcode:
procedure THeaderFooterForm.Button1Click(Sender: TObject);
var
  szInputString : RawByteString;
  szEncodeString : String;
  szDecodeString : String;
  iValue : Integer;

begin
  szInputString := '';

  // umwandeln zu einem Hexstring
  iValue := Trunc(Byte(szInputString[1])); // Result 172 <<- Anmerkung eigentlich ist das auch schon falsch da es eigentlich 128 sein müsste
  szEncodeString := IntToHex(iValue, 2); // Result AC <<- Müsste eigentlich $80 sein

  // Rückwandeln der Hexwertes in einen String //
  iValue := StrToInt('$' + szEncodeString); // Result 172
  szDecodeString := ansichar(iValue); // Das würde funktionieren ist aber leider nicht praktikabel da es unter Android kein "AnsiChar" gibt

  if (szDecodeString <> szInputString) then begin
    // leider unterschiedlich
    Beep;
  end;

end;
Peter (EDV = Ende der Vernunft)
  Mit Zitat antworten Zitat
 


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 06:21 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