Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - ASCII-Wert eines bestimmten Zeichens anzeigen
Bomania - Sa 15.02.03 18:29
Titel: ASCII-Wert eines bestimmten Zeichens anzeigen
Gibt es eine einfachere Methode um den ASCII-Wert eines bestimmten Zeichens anzeigen zu lassen?
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Button1Click(Sender: TObject); var asciinr : longint; zeile : string; i : integer; begin i:=strtoint(edit1.text); zeile:=edit2.text; asciinr := ord(Zeile[i]); label1.Caption:=inttostr(asciinr); end; |
Danke
Delete - Sa 15.02.03 18:38
Quelltext
1: 2: 3: 4:
| procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption := IntToStr(ord(Edit1.Text[1])); end; |
DaRkFiRe - Sa 15.02.03 18:50
Naja offensichtlich stand die Position des Zeichens aus Edit1.Text in Edit2.text :)
Quelltext
1: 2: 3: 4:
| procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption := IntToStr(ord(Edit1.Text[StrToInt(Edit2.text)])); end; |
Bomania - Sa 15.02.03 18:56
Ich möchte aus einem Textfeld per Schleife jedes einzelne Zeichen überprüfen - und zwar als ASCII-Zeichen. Bei folgendem Code gibt es die Fehlermeldung "Inkompatible Typen".
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| For i := 1 To length(txt_Eingabe.text) do begin case IntToStr(ord(Copy(txt_Eingabe.Text, i, 1))) of //Fehler 65..90, 97..122: begin tudiesunddas end; 48..57: begin .... |
Delete - Sa 15.02.03 19:01
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Button1Click(Sender: TObject); var i : Integer; s : String; begin for i := 1 to length(Edit1.Text) do begin s := IntToStr(ord(Edit1.Text[i])); Showmessage(s); end; end; |
ord liefert dir doch schon einen Integer für dein case. Und mit Strings kann case nichts anfangen.
Alibi - Sa 15.02.03 19:02
Du kannst mit case of nur Chars und Integer vergleichen. Lass das Inttostr weg und dann sollte das gehen.
Delete - Sa 15.02.03 19:07
Und copy liefert einen String zurück und keinen Char.
So sollte es gehen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TForm1.Button1Click(Sender: TObject); var i : Integer; begin for i := 1 To length(Edit1.text) do begin case ord(Edit1.Text[i]) of //Fehler 65..90, 97..122: begin ShowMessage('1'); end; 48..57: begin Showmessage('2'); end; end; end; end; |
Delete - Sa 15.02.03 19:22
Hm, dann doch lieber:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| case Edit1.Text[i] of 'A'..'Z', 'a'..'z': ShowMessage('1'); '0'..'9': Showmessage('2'); end; |
Oder spricht was gegen diesen Weg?
Bomania - Sa 15.02.03 19:29
Ja, oder so :)
Delete - Sa 15.02.03 19:31
Der Source ist getestet und hat ein TCPA-Zertifikat. Bei mir tut er es wunderbar.
Argh, so was unhöfliches, jetzt hat der editiert. :twisted:
Für den Rest Er hatte behauptet mein Code würde nicht gehen.
Bomania - Sa 15.02.03 19:45
Blasphemie :evil:
Nein nein, Luckie hat schon Recht. Ich wusste ja nicht, dass es unhöflich ist, seine Beiträge zu editieren nachdem man festgestellt hat, dass es doch funzt :oops:
Delete - Sa 15.02.03 19:47
Es ist dann unhöflich, wenn sich eine Nachfolgepost auf das editierte Posting bezieht.
Bomania - Sa 15.02.03 19:49
Kann doch aber nur dann unhöflich sein, wenn man wüsste, dass der andere bereits am posten ist
Delete - Sa 15.02.03 19:54
Du solltest mittlerweile gemerkt haben, dass ich in den Semesterfereien schneller poste als mein Schatten. :mrgreen:
Bomania - Sa 15.02.03 19:57
Mittlerweile? Ich bin doch ganz neu hier...und wann Semesterferien sind, weiß ich nun wirklich nicht. Aber ich werde in Zukunft gebührend Zeit zwischen meinen Postings verstreichen lassen :lol:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!