Autor Beitrag
Prophet-
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 29

Win 7
Delphi 7
BeitragVerfasst: Sa 29.11.08 12:05 
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?

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: 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

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 29.11.08 12:22 
Und auf die einzelnen Buchstaben kannst du wie in einem Array zugreifen. Zum Beispiel:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 25



BeitragVerfasst: Sa 29.11.08 17:16 
Warum so kompliziert? Mach doch einfach Label1.Caption := IntToStr(Ord(Edit1.Text[1]));
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: 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.

_________________
Na denn, dann. Bis dann, denn.