| Autor |
Beitrag |
Bomania
      
Beiträge: 139
Win XP
|
Verfasst: Sa 15.02.03 18:29
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
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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
      
Beiträge: 526
WinXP Home & Professional
C, C++, Delphi
|
Verfasst: Sa 15.02.03 18:50
_________________ Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
|
|
Bomania 
      
Beiträge: 139
Win XP
|
Verfasst: 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 .... |
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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.
Zuletzt bearbeitet von Luckie am Sa 15.02.03 19:03, insgesamt 1-mal bearbeitet
|
|
Alibi
      
Beiträge: 458
Win2K SP3
Delphi 6 Ent
|
Verfasst: 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.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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; |
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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 
      
Beiträge: 139
Win XP
|
Verfasst: Sa 15.02.03 19:29
Ja, oder so 
Zuletzt bearbeitet von Bomania am Sa 15.02.03 19:32, insgesamt 1-mal bearbeitet
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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.
Für den Rest Er hatte behauptet mein Code würde nicht gehen.
Zuletzt bearbeitet von Luckie am Sa 15.02.03 19:47, insgesamt 1-mal bearbeitet
|
|
Bomania 
      
Beiträge: 139
Win XP
|
Verfasst: Sa 15.02.03 19:45
Blasphemie
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 
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 15.02.03 19:47
Es ist dann unhöflich, wenn sich eine Nachfolgepost auf das editierte Posting bezieht.
|
|
Bomania 
      
Beiträge: 139
Win XP
|
Verfasst: 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
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 15.02.03 19:54
Du solltest mittlerweile gemerkt haben, dass ich in den Semesterfereien schneller poste als mein Schatten. 
|
|
Bomania 
      
Beiträge: 139
Win XP
|
Verfasst: 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 
|
|