Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Buchstaben codieren...
drsnoop - Do 11.12.03 19:02
Titel: Buchstaben codieren...
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...
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'; end; satz2 := satz2 + zeichen; end; end; |
Anonymous - Do 11.12.03 19:23
wie wärs mit
Delphi-Quelltext
1:
| 'a': zeichen := '...'; |
DeCodeGuru - Do 11.12.03 19:27
Guck dir auch mal folgenden Code an, den ich mal testweise geschrieben habe. :)
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]) >= 65) and (Ord(Edit1.Text[i]) <= 90)) or ((Ord(Edit1.Text[i]) >= 97) and (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; |
drsnoop - Do 11.12.03 19:43
| obbschtkuche hat folgendes geschrieben: |
wie wärs mit
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
DeCodeGuru - 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.
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]) >= 65) and (Ord(Edit1.Text[i]) <= 88)) or ((Ord(Edit1.Text[i]) >= 97) and (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; |
drsnoop - Do 11.12.03 20:39
funktioniert prima danke!!!
aber warum zeigt der mir ne fehlermeldung, wenn ich meine methode nehme...
also:
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; satz2 := satz2 + zeichen; |
der spuckt dann das hier aus:
warum???
tommie-lie - Do 11.12.03 21:16
| drsnoop hat folgendes geschrieben: |
aber warum zeigt der mir ne fehlermeldung, wenn ich meine methode nehme...
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; satz2 := satz2 + zeichen; | |
Na, guck mal in die dritte Zeile. Die falsche Zahl erwischt ;-)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!