Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Buchstaben in Zahlen umwandeln (https://www.delphipraxis.net/82262-buchstaben-zahlen-umwandeln.html)

sender01 9. Dez 2006 19:21


Buchstaben in Zahlen umwandeln
 
Über die serielle Schnittstelle empfange ich Daten. Die erhaltenen binären Zahlen werden direkt in Buchstaben, Zeichen (nehme mal an, dass das entsprechend der ASCII-Tabelle läuft) usw. umgeformt. Jetzt würde ich gerne diese Zeichen wieder zurück in Integer umwandeln. Mit "StrtoInt" funktioniert das aber nicht.
Hat jemand eine Idee?

mkinzler 9. Dez 2006 19:22

Re: Buchstaben in Zahlen umwandeln
 
Val()

sender01 9. Dez 2006 19:32

Re: Buchstaben in Zahlen umwandeln
 
Hmm...
In der Delphi-Hilfe klingt die Erklärung zu Val() schonmal ein bisschen nachdem, was ich machen will. Werde aus dieser Erklärung aber nicht ganz schlau, wie ich diese Funktion einsetze. Ein Beispiel wäre hilfreich.
Die Hilfe sagt, dass die umzuwandelnde Variable eine reelle Zahl sein muss. Ich will aber auch Buchstaben in Zahlen umwandeln. Die ASCII-Tabelle ordnet den Zahlen von 0 bis 255 ein Zeichen zu. Diese Zeichen erhalte ich und will nun ihre ASCII-Nummer haben.

Klaus01 9. Dez 2006 19:36

Re: Buchstaben in Zahlen umwandeln
 
Zitat:

Zitat von sender01
Hmm...
In der Delphi-Hilfe klingt die Erklärung zu Val() schonmal ein bisschen nachdem, was ich machen will. Werde aus dieser Erklärung aber nicht ganz schlau, wie ich diese Funktion einsetze. Ein Beispiel wäre hilfreich.
Die Hilfe sagt, dass die umzuwandelnde Variable eine reelle Zahl sein muss. Ich will aber auch Buchstaben in Zahlen umwandeln. Die ASCII-Tabelle ordnet den Zahlen von 0 bis 255 ein Zeichen zu. Diese Zeichen erhalte ich und will nun ihre ASCII-Nummer haben.

Dazu kannst Du ord() hernehmen, aber da das alles über die serielle Schnittstelle geht
ist es dann nicht möglich gleich die Zeichen als Byte zu lesen, dann brauchst Du nichts mehr umwandeln.

Grüße
Klaus

mkinzler 9. Dez 2006 19:40

Re: Buchstaben in Zahlen umwandeln
 
Ich habe die Fragestellung falsch verstanden. Ord() ist natürlich in diesem Fall richtig.

sender01 9. Dez 2006 19:51

Re: Buchstaben in Zahlen umwandeln
 
Die Idee es direkt als Byte zu lesen ist gut, aber leider nicht zu machen, glaube ich...
Ich benutze SerialNG zum ansteuern der Schnittstelle. Da gibt es leider nur die Funktion "ReadNextClusterAsString". Die eingehenden Daten werden also direkt in einen string umgewandelt.
Zu Ord(X) sagt die Delphi-Hilfe, dass X ein Delphi-Ausdruck des Typs Ordinal sei.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
str: string;
int: real;
begin
str:= Edit1.Text;  //Empfangene Zeichen
int:= ord(str);
end;
Wenn ich dass mache, kommt die Meldung : Inkompatible Typen.

Irgendwie muss es doch gehen...

mkinzler 9. Dez 2006 19:53

Re: Buchstaben in Zahlen umwandeln
 
Delphi-Quellcode:
int:= ord(str[1]);

sender01 9. Dez 2006 19:59

Re: Buchstaben in Zahlen umwandeln
 
Vielen Dank mkinzler!!
Jetzt klappt es wunderbar! :cheers:

Finde es nur komisch, dass z.B. der 0 die Nummer 48 zugeordnet ist.
Aber das muss wohl so sein...

Damit bin ich schonmal voll zufrieden. :balloon:

mkinzler 9. Dez 2006 20:06

Re: Buchstaben in Zahlen umwandeln
 
Was meinst du mit der 0?

Cöster 9. Dez 2006 20:16

Re: Buchstaben in Zahlen umwandeln
 
Zitat:

Zitat von mkinzler
Was meinst du mit der 0?

Er meint den Character '0'. Das liegt einfach nur daran, dass andere Zeichen eine niedrigere Ordinal-Position haben. Man könnte ja auch argumentieren, die Buchstaben 'A' bis 'Z' sollen auf die Positionen 1 bis 26. Sind sie aber auch nicht. Mit irgendwas muss man ja anfangen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:02 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