Autor Beitrag
Bomania
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 139

Win XP

BeitragVerfasst: Sa 15.02.03 18:29 
Gibt es eine einfachere Methode um den ASCII-Wert eines bestimmten Zeichens anzeigen zu lassen?

ausblenden 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



BeitragVerfasst: Sa 15.02.03 18:38 
ausblenden Quelltext
1:
2:
3:
4:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := IntToStr(ord(Edit1.Text[1]));
end;
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: Sa 15.02.03 18:50 
Naja offensichtlich stand die Position des Zeichens aus Edit1.Text in Edit2.text :)

ausblenden Quelltext
1:
2:
3:
4:
procedure TForm1.Button1Click(Sender: TObject); 
begin 
  Label1.Caption := IntToStr(ord(Edit1.Text[StrToInt(Edit2.text)])); 
end;

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
Bomania Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 139

Win XP

BeitragVerfasst: 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".

ausblenden 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



BeitragVerfasst: Sa 15.02.03 19:01 
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 458

Win2K SP3
Delphi 6 Ent
BeitragVerfasst: 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



BeitragVerfasst: Sa 15.02.03 19:07 
Und copy liefert einen String zurück und keinen Char.

So sollte es gehen:
ausblenden 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



BeitragVerfasst: Sa 15.02.03 19:22 
Hm, dann doch lieber:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 139

Win XP

BeitragVerfasst: 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



BeitragVerfasst: 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.


Zuletzt bearbeitet von Luckie am Sa 15.02.03 19:47, insgesamt 1-mal bearbeitet
Bomania Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 139

Win XP

BeitragVerfasst: 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:
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 15.02.03 19:47 
Es ist dann unhöflich, wenn sich eine Nachfolgepost auf das editierte Posting bezieht.
Bomania Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 139

Win XP

BeitragVerfasst: 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



BeitragVerfasst: Sa 15.02.03 19:54 
Du solltest mittlerweile gemerkt haben, dass ich in den Semesterfereien schneller poste als mein Schatten. :mrgreen:
Bomania Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 139

Win XP

BeitragVerfasst: 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: