Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Buchstaben in Morsezeichen
Künne - Mo 02.04.07 12:38
Titel: Buchstaben in Morsezeichen
Hi @all,
bin neu hier im Forum und wage gerade meine ersten Schritte mit Delphi 6.
Versuche gerade ein Programm zu schreiben mit dem man Buchstebn inn Morsezeichen umwandeln kann und umgekehrt, Die Eingaben und Ausgaben habe ich in seperate Edit-Felder unterteilt. Für die Umwandlung wollte ich Buttons nehmen.
Kann mir jemand einen Tipp geben; ich bekomme keine funktionierende Procedure zustande und bin schon halb am verzweifeln
Danke schon im Vorraus für die Hilfe,
Furby.
Blackheart666 - Mo 02.04.07 12:55
Mal auf die schnelle, so oder so ähnlich - vieleicht hilft Dir das etwas.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char); begin if (Key='a') or (Key='A') then begin Memo1.Text:=Memo1.Text+'.-'; Memo1.SelStart:=Length(Memo1.Text); Key:=#0; end else exit; end; |
Narses - Mo 02.04.07 13:17
Moin und :welcome: im Forum!
Ich würde dir raten, ein Editfeld für die Eingabe zu nehmen und dann auf einen Buttonklick das Ganze in z.B. ein Memo umgeschlüsselt wieder auszugeben.
Ansatz für die Morsezeichen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| type TMorseZeichen = ('A'..'Z','0'..'9',' ');
const MorseCode: array[TMorseZeichen] of String = ( '--.', '.--', ... ' '); |
Beim Umwandeln gehst du dann einfach die Eingabe Zeichen für Zeichen durch und schlüsselst über das konstante Array um, fertig. ;)
cu
Narses
Künne - Mo 02.04.07 15:21
Was meinst du mit überschlüsseln?
Narses - Mo 02.04.07 15:55
Moin!
Damit meine ich ungefähr sowas: ;)
Zunächst die Konstanten:
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: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49:
| const MorseZeichen: set of Char = ['A'..'Z','0'..'9'];
MorseCode: array['0'..'Z'] of String = ( '·----', '··---', '···--', '····-', '·····', '-····', '--···', '---··', '----·', '-----', '', '', '', '', '', '', '', '·-', '-···', '-·-·', '-··', '·', '··-·', '--·', '····', '··', '·---', '-·-', '·-··', '--', '-·', '---', '·--·', '--·-', '·-·', '···', '-', '··-', '···-', '·--', '-··-', '-·--', '--··'); |
Und hier die Schleife:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| var i: Integer; Zeile: String; begin if (Edit1.Text <> '') then begin Zeile := ''; for i := 1 to Length(Edit1.Text) do if (UpCase(Edit1.Text[i]) in MorseZeichen) then Zeile := Zeile +MorseCode[Upcase(Edit1.Text[i])]+' '; Memo1.Lines.Add(Zeile); end else MessageDlg('Bitte Text eingeben!',mtError,[mbCancel],0); |
cu
Narses
Künne - Di 03.04.07 10:22
Erkläre mal bitte deine Vorgehensweise beim Programmieren ich kann es nicht ganz nachvollziehen.
Künne - Di 03.04.07 10:47
Sorry wegen Doppelbeitrag, aber ich muss es so schnell wie es geht wissen. Wie muss ich es machen wenn ich zum Beispiel im ersten Editfeld ein 'a' eintippe und im zweiten Editfeld über einen Button dann das Morsezeichen '.-' ausgegeben haben will?
Narses - Di 03.04.07 11:04
Moin!
:|
Künne hat folgendes geschrieben: |
Sorry wegen Doppelbeitrag, aber ich muss es so schnell wie es geht wissen. |
Ich schau mal, ob ich heute abend Zeit und Lust habe, nochwas dazu zu schreiben... :?
cu
Narses
jaenicke - Di 03.04.07 11:11
Was in dem Beispiel hier passiert ist ja, den Text aus Edit1 zu nehmen und dann umgewandelt in Memo1 zu schreiben.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| var i: Integer; Zeile: String; begin if (Edit1.Text <> '') then begin Zeile := ''; for i := 1 to Length(Edit1.Text) do if (UpCase(Edit1.Text[i]) in MorseZeichen) then Zeile := Zeile +MorseCode[Upcase(Edit1.Text[i])]+' '; Memo1.Lines.Add(Zeile); end else MessageDlg('Bitte Text eingeben!',mtError,[mbCancel],0); |
Deine Frage werde ich allerdings nicht direkt beantworten. Ich denke, wenn du den Quelltext verstanden hast, kannst du das alleine machen. Wenn du Fragen zu dem Quelltext hast, dann stell sie ruhig.
jaenicke - Di 03.04.07 11:19
Narses hat folgendes geschrieben: |
Zunächst die Konstanten:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| const MorseZeichen: set of Char = ['A'..'Z','0'..'9'];
MorseCode: array['0'..'Z'] of String = ( '·----', '··---', '···--', '····-', '·····', '-····', '--···', '---··', '----·', '-----', ... | |
Nicht ganz ;-)
Du fängst mit der 0 an...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| MorseCode: array['0'..'Z'] of String = ( '-----', '·----', '··---', '···--', '····-', '·····', '-····', '--···', '---··', '----·', ... |
Künne - Di 03.04.07 11:43
bei mir nimmt der Lines nicht an. als was muss ich das denn deklarieren?
jaenicke - Di 03.04.07 11:46
Künne hat folgendes geschrieben: |
bei mir nimmt der Lines nicht an. als was muss ich das denn deklarieren? |
Dann ist das kein Memo...
Ein Memo hat
Memo1.Lines (da musst du nix selbst deklarieren), ein Edit natürlich nicht, das hat ja nur eine Zeile.
Narses - Di 03.04.07 12:13
Moin!
jaenicke hat folgendes geschrieben: |
Du fängst mit der 0 an... |
Mensch
jaenicke, das war doch die c&p-Sicherung... :lol: ;)
@
Künne: Aus meiner Sicht solltest du dein Auftreten hier mal überdenken... :| Bei mir kommst du als Code-Abzieher rüber! :shock:
cu
Narses
jaenicke - Di 03.04.07 12:27
Narses hat folgendes geschrieben: |
jaenicke hat folgendes geschrieben: | Du fängst mit der 0 an... |
Mensch jaenicke, das war doch die c&p-Sicherung... :lol: ;) |
^^, ok ;-)
Aber wenn ich mir die Frage nach Lines ansehe: Da hast du ja eine weitere c&p-Sicherung eingebaut^^
An dieser Stelle vielleicht noch 2 Sachen:
1. Wie immer der Hinweis auf Christians Crashkurs:
http://crashkurs.christian-stelzmann.de
2. Gibts auch die Taste F1, und in der Hilfe findet sich auch was zu den einzelnen Komponenten...
Narses - Di 03.04.07 12:34
ja, klar, aber da ich ihn für einen Code-Abzieher halte, der keinen Plan hat, was läuft, wollte ich es auch nicht einfacher machen... abgesehen davon ist es ja nun nicht wirklich schwer, den Button/Edit/Memo aus Form zu klatschen und dann läuft der Code ja so direkt - bis auf den logischen Fehler für die 2. c&p-Sicherungsinstanz... ;)
Künne - Di 03.04.07 12:53
Tschuldigung aber ich bin nunmal nur kein Profi im Programmieren und wollte eigentlich nur Just for Fun so ein Morsegerät programmieren.
Zurück zu meiner Frage:
Die Deklaration für Memo1 funktioniert nicht. Hat jemand ein Beispiel dafür wie man ein Memo richtig deklariert?
Dies ist der einzige Haken den wir noch haben.
Deshalb danke ich schon mal im Vorraus.
Narses - Di 03.04.07 13:02
Moin!
Frag doch mal deinen Info-Lehrer, wenn er das nächste mal an eurem PC vorbeikommt... ;)
cu
Narses
jaenicke - Di 03.04.07 13:29
Künne hat folgendes geschrieben: |
Die Deklaration für Memo1 funktioniert nicht. Hat jemand ein Beispiel dafür wie man ein Memo richtig deklariert? |
Du deklarierst nix. Du packst statt einem TEdit ein TMemo aufs Formular... Sieh dir den Crashkurs an, dir fehlen offensichtlich die wichtigsten Grundlagen! :roll:
ZeitGeist87 - Di 03.04.07 13:54
Hallo!
Hab mal schnell was programmiert..sehr rudimentär..als Denkanstoss
LG
Stefan
Narses - Di 03.04.07 14:06
Ach
ZeitGeist87, du bist mein Held... :roll:
Wenn wir nicht zusammen arbeiten und Leute, die nicht denken wollen, auflaufen lassen, dann werden die den Code nehmen und den kompletten Rest einfach vergessen... super Ergebnis... 8)
ZeitGeist87 - Di 03.04.07 14:09
Schuldigung
Narses...
aber wenns sies dann kopieren, aber nicht kapieren dann ist das deren Problem!
Meine Meinung :)
Außerdem ist das Programm ziemlich kompliziert geschrieben^^
LG
Stefan
PS So schlimm??
Narses - Di 03.04.07 14:25
Fassen wir mal zusammen:
ZeitGeist87 hat folgendes geschrieben: |
aber wenns sies dann kopieren, aber nicht kapieren dann ist das deren Problem!
Meine Meinung :) |
a) du hast dich von einem Schüler dazu bringen lassen, seine Arbeit zu verrichten, ohne dass er einen (geistigen) Finger krumm machen musste: :zustimm:
ZeitGeist87 hat folgendes geschrieben: |
Außerdem ist das Programm ziemlich kompliziert geschrieben^^ |
b) du hast uns jetzt überzeugend bewiesen, dass du komplizierte Programme zum Morsecode schreiben kannst: :zustimm: :zustimm:
Fazit: :zustimm: :zustimm: :zustimm: ... :roll:
ZeitGeist87 - Di 03.04.07 14:34
Das du immer alles so negativ sehen musst Narses... -.-
Wieso seine Arbeit?
Ich seh das eher als geistige Übung für mich..nebenbei..
schnell und effizient..
Ob er jetzt was daraus macht ist, wie gesagt nicht mein Problem!
Ich mag deinen Sarkasmus nicht :)
Narses - Di 03.04.07 14:47
Moin!
ZeitGeist87 hat folgendes geschrieben: |
Ich seh das eher als geistige Übung für mich.. |
Falls es dir noch nicht aufgefallen ist, kannst du die Übung noch intensivieren, indem du keine c&p-ready-Lösungen lieferst, sondern Ansätze, bei denen man das Gehirn noch eingeschaltet lassen muss... :idea:
ZeitGeist87 hat folgendes geschrieben: |
Ich mag deinen Sarkasmus nicht :) |
Das darfst du ruhig, ich wollte dich ja auch nicht heiraten... :rofl: Aber das war jetzt persönlich genug, OK? :mahn:
cu
Narses
ZeitGeist87 - Di 03.04.07 14:54
Du wirst nich glauben was mir so alles auffällt :)
Aber lassen wir das!
Das ist nicht Gegenstand des Threads!
Mal schauen was ich mir von deiner Kritik für die Zukunft zu Herzen nehmen werde!
LG
Stefan
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!