Formatierung Hexadezimal
-
Am besten nimmst du gar kein
sprintf
, das is üble C/C++ Frickelei, viel zu kompliziert. Was genau soll das denn werden?
Hier der Quelltext, um jede Ziffer eines Strings in eine 6-stellige Hexadezimalzahl umzuwandeln, das sollte dir den richtigen Hinweis geben, wie man das in C++/VCL macht.#include <System.hpp> // für AnsiString #include <SysUtils.hpp> // für IntToHex #include <cctype> // für std::isdigit for( int i = 1; i <= Text.Length; ++i ) { if( std::isdigit( Text[i] ) ) { AnsiString Hex = "0x" + IntToHex( Text[i] - '0', 6 ); } }
-
Es geht einfach darum eine ID zu verschlüsseln und diese Verschlüsselungsfunktion brauch die ID im Hexadezimal-Format.
-
xXMartinoXx schrieb:
Es geht einfach darum eine ID zu verschlüsseln und diese Verschlüsselungsfunktion brauch die ID im Hexadezimal-Format.
Zeig mal diese Funktion. Ich vermute, du irrst dich.
-
unsigned char data[] = { 0x74, 0x65, 0x73, 0x74, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x31, 0x32, 0x33, 0x34 };
Das wird in einem Beispiel an die Verschlüsselungsfunktion übergeben. Ist doch Hexadezimal oder nicht? Und ich möchte die Funktion nutzen und muss mir deshalb eben solch ein array aufbauen.
-
xXMartinoXx schrieb:
Ist doch Hexadezimal oder nicht?
Ist es. Allerdings in deinem Quellcode. Daraus baut der Compiler Binärdaten.
xXMartinoXx schrieb:
Und ich möchte eben die Funktion nutzen und muss mir deshalb eben solch ein array aufbauen.
Nein, musst du nicht.
-
MFK schrieb:
xXMartinoXx schrieb:
Ist doch Hexadezimal oder nicht?
Ist es. Allerdings in deinem Quellcode. Daraus baut der Compiler Binärdaten.
xXMartinoXx schrieb:
Und ich möchte eben die Funktion nutzen und muss mir deshalb eben solch ein array aufbauen.
Nein, musst du nicht.
Ist mir schon aufgefallen beim Debuggen. Da steht dann ein string in "data". Wenn nicht so, wie denn dann?
-
xXMartinoXx schrieb:
Wenn nicht so, wie denn dann?
Als Byte-Array.
-
OK...
Und wie deklariert man sowas?
unsigned char array[SIZE];
Wäre das eins? So hab ich das nämlich versucht.
Und meine Zahlen müsste ich dann in ASCII-Form dort rein schieben? Hab ich das richtig verstanden?
-
In deinem String liegen die Daten ja schon binär vor, vermutlich musst du da gar nichts kopieren. Wie sieht denn deine Verschlüsselungsfunktion aus? Kannst du der einen Zeiger auf einen Speicherbereich und Länge übergeben?
-
DocShoe schrieb:
In deinem String liegen die Daten ja schon binär vor, vermutlich musst du da gar nichts kopieren. Wie sieht denn deine Verschlüsselungsfunktion aus? Kannst du der einen Zeiger auf einen Speicherbereich und Länge übergeben?
Ja, hatte da was missverstanden. Hab es mitlerweile gelöst. Und richtig, man muss der Funktion diese beiden Sachen mitgeben. Hab blos jetzt meinen code nicht zur Hand. Kann ich demnächst mal noch posten wenns interessiert.