Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - ord-Funktion


Prophet- - Sa 29.11.08 12:05
Titel: ord-Funktion
Hallo Leute, ich will ein Programm schreiben, dass mir, wenn ich in einem Edit einen Buchstaben eingebe, mir die zugehörige Zahl der ASCII-Tabelle ausgibt. Nur kommt bei mir der Fehler 'inkompatible Typen'. Was mache ich falsch?


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
function asc(buchstabe:string):integer;
begin
result:=ord(buchstabe);
end;

procedure TForm1.Button1Click(Sender: TObject);
var buchstabe:string;
begin
buchstabe:=edit1.text;
label1.caption:=inttostr(asc(buchstabe));
end;


Moderiert von user profile iconChristian S.: Quote- durch Delphi-Tags ersetzt


platzwart - Sa 29.11.08 12:12

ord nimmt als parameter einen character auf, keinen string! du kannst nämlich den ascii code nur von einem einzelnen zeichen (char) anzeigen lassen, nicht von einer zeichenkette (string).

zusammengefasst: ändere den typ auf char


jaenicke - Sa 29.11.08 12:22

Und auf die einzelnen Buchstaben kannst du wie in einem Array zugreifen. Zum Beispiel:

Delphi-Quelltext
1:
2:
buchstabe[1]
edit1.text[1]
Damit bekommst du jeweils den ersten Buchstaben. So kannst du ggf. mit einer Schleife alle Buchstaben durchgehen.


wazap - Sa 29.11.08 17:16

Warum so kompliziert? Mach doch einfach Label1.Caption := IntToStr(Ord(Edit1.Text[1]));


alzaimar - Sa 29.11.08 19:45

wazap, das ist doch genau das, was hier vorgeschlagen wurde. Nur ist deine Lösung unübersichtlicher, was angesichts des Kenntnisstandes des Fragestellers offensichtich kontraproduktiv ist.