Autor Beitrag
drsnoop
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37

Win XP
D7 Enterprise
BeitragVerfasst: Do 11.12.03 19:02 
hi... habe folgendes problem:

ich bin an einem prog dran, dass, nachdem man eine eingabe gemacht hat, alle buchstaben um jeweils 2 zeichen verschieb... aus "a" wird also "c" aus "b" wird "d" usw... nun meckert der aber mir folgender fehlermeldeung:

[Fehler] Unit1.pas(50): Anweisung erforderlich, aber Ausdruck vom Typ 'Char' gefunden

was soll ich tun?
habe mal so angefangen aber wie gesagt bei der zeie unter der case anweisung meckert der...

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
procedure TForm1.b_codierenClick(Sender: TObject);
  var
   satz1, satz2 : string;
   i : integer;
   zeichen : char;
begin
 if (m_eingabe.text = '')
   then showmessage('Bitte einen Text in das Feld eingeben.')
   else
    satz1 := m_eingabe.Text;
     for i := 1 to length(satz1) do
      begin
        case satz2[i] of
         'a' : 'c';
         'b' : 'd';
         'c' : 'e';
         //...
         // usw...
        end;   //of case
       satz2 := satz2 + zeichen;
      end//of for_Schleife

end;

_________________
(¯`·.¸¸.·´(¯`·.¸ Es gibt keine dummen Fragen... Nur dumme Menschen ¸.·´¯)`·.¸¸.·´¯)
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: Do 11.12.03 19:23 
wie wärs mit

ausblenden Delphi-Quelltext
1:
'a': zeichen := '...';					
DeCodeGuru
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Do 11.12.03 19:27 
Guck dir auch mal folgenden Code an, den ich mal testweise geschrieben habe. :)

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  Edit2.Text := '';
  for i := 1 to Length(Edit1.Text) do
    if ((Ord(Edit1.Text[i]) >= 65and (Ord(Edit1.Text[i]) <= 90)) or ((Ord(Edit1.Text[i]) >= 97and (Ord(Edit1.Text[i]) <= 122)) then
      Edit2.Text := Edit2.Text + Chr(Ord(Edit1.Text[i]) + 2)
    else
      Edit2.Text := Edit2.Text + Edit1.Text[i];
end;

_________________
Viele Grüße
Jakob
drsnoop Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37

Win XP
D7 Enterprise
BeitragVerfasst: Do 11.12.03 19:43 
obbschtkuche hat folgendes geschrieben:
wie wärs mit

ausblenden Delphi-Quelltext
1:
'a': zeichen := '...';					



hoppla... flüchtigkeitsfehler... :D


@ CodeGuru:

funktioniert der? was ist, wenn der buchstabe "y" oder "z" codiert werden muss? weil dann müsste der dann wieder "a" oder "b" ausspucken...

aber danke für eure hilfe!!!!! :D

_________________
(¯`·.¸¸.·´(¯`·.¸ Es gibt keine dummen Fragen... Nur dumme Menschen ¸.·´¯)`·.¸¸.·´¯)
DeCodeGuru
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Do 11.12.03 19:54 
Hui, @drsnoop: Den Sprung von y und z habe ich nicht gemacht. Ist aber kein Problem. Bis zu diesen Buchstaben funtzt er aber.

Habe schnell den Code etwas erweitert, ist aber - wie gesagt - sehr simpel.

ausblenden Delphi-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
  Edit2.Text := '';
  for i := 1 to Length(Edit1.Text) do
    if ((Ord(Edit1.Text[i]) >= 65and (Ord(Edit1.Text[i]) <= 88)) or ((Ord(Edit1.Text[i]) >= 97and (Ord(Edit1.Text[i]) <= 120)) then
      Edit2.Text := Edit2.Text + Chr(Ord(Edit1.Text[i]) + 2)
    else
      case Ord(Edit1.Text[i]) of
        89: Edit2.Text := Edit2.Text + 'A';
        90: Edit2.Text := Edit2.Text + 'B';
        121: Edit2.Text := Edit2.Text + 'a';
        122: Edit2.Text := Edit2.Text + 'b';
      else
        Edit2.Text := Edit2.Text + Edit1.Text[i];
      end;
end;

_________________
Viele Grüße
Jakob
drsnoop Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37

Win XP
D7 Enterprise
BeitragVerfasst: Do 11.12.03 20:39 
funktioniert prima danke!!!

aber warum zeigt der mir ne fehlermeldung, wenn ich meine methode nehme...

also:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
for i := 1 to length(satz1) do
      begin
        case satz2[i] of
         'a' : zeichen := 'c';
         'b' : zeichen := 'd';
         'c' : zeichen := 'e';
        end;   //of case
       satz2 := satz2 + zeichen;


der spuckt dann das hier aus:

user defined image

warum???

_________________
(¯`·.¸¸.·´(¯`·.¸ Es gibt keine dummen Fragen... Nur dumme Menschen ¸.·´¯)`·.¸¸.·´¯)
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: Do 11.12.03 21:16 
drsnoop hat folgendes geschrieben:
aber warum zeigt der mir ne fehlermeldung, wenn ich meine methode nehme...

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
for i := 1 to length(satz1) do
      begin
        case satz2[i] of
         'a' : zeichen := 'c';
         'b' : zeichen := 'd';
         'c' : zeichen := 'e';
        end;   //of case
       satz2 := satz2 + zeichen;

Na, guck mal in die dritte Zeile. Die falsche Zahl erwischt ;-)

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert