Thema: Delphi Von PChar nach UINT

Einzelnen Beitrag anzeigen

MathiasSimmack
(Gast)

n/a Beiträge
 
#1

Von PChar nach UINT

  Alt 26. Mai 2004, 10:50
Ich habe gerade ein kleines Problem. In einem C-Programm passiert folgendes:
Code:
// hier wird ein pchar-Array mit 15 Zeichen
// erzeugt und komplett auf Null gesetzt
unsigned char* Result;
memset(Result, 0, 15);

// hier ist ein "Typecasting" (?) vom
// PChar nach UINT
unsigned int val;
val = *(unsigned int *)Result;

// das angezeigte Ergebnis ist Null,
// weil der Inhalt des PChar irgendwie (aber wie?)
// als Zahl interpretiert wird
printf("%u\n",val);
Wie mache ich das in Delphi? "StrToInt" geht nicht, weil die Null ja nicht der '0' mit dem ASCII-Code #48 entspricht, sondern es handelt sich ja wirklich um das 1. Zeichen mit dem ASCII-Code #0.

Das geht IMHO in den binären Bereich, denn wenn ich in obigem C-Code folgendes mache:
Code:
memset(Result, 0, 15);
Result[1] = 1;
dann wäre das Ergebnis nicht mehr Null sondern 256. Und das PChar besteht ja aus 15 Zeichen, quasi "010000000000000". (Nennt man diese Art der Schreibweise nicht little endian, weil der kleinste Wert links steht? Im Normalfall würde man diese Binärzahl doch eher so darstellen: "000000000000010".)

Wie gesagt, ich denke gerade an alles Mögliche. Aber die Frage ist: Gibt es, ähnlich wie im C-Beispiel, in Delphi eine elegante Art, aus dem PChar den gewünschten UINT-Wert zu ermitteln? Eben so wie
Code:
val = *(unsigned int *)Result;
oder muss ich doch in einer Schleife durch die einzelnen Zeichen durch?
  Mit Zitat antworten Zitat