Autor |
Beitrag |
Shadowlucker
Hält's aus hier
Beiträge: 14
|
Verfasst: Fr 12.03.10 19:44
Zuletzt bearbeitet von Shadowlucker am Mi 22.06.11 16:33, insgesamt 1-mal bearbeitet
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Fr 12.03.10 20:05
Hi und  im Forum!
Shadowlucker hat folgendes geschrieben : | Gibt es evtl billige Lehrbücher, wo ich etwas mehr "lernen" kann? |
Jup. Schau Dir mal Christians Crashkurs an. 
|
|
uall@ogc
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Fr 12.03.10 20:19
also zuerst solltest du von deinem Code die globalen Variablen entfernen:
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:
| var Form1: TForm1; implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); var text2 : string; b: integer; text: string; zaehler: integer; begin
label2.Caption:= '';
for zaehler:=1 to Length(edit1.Text) do begin text:= edit1.Text; text2:= text; text2 := text2+ char(ord(text[zaehler])+6)
end; Label2.Caption := text2; end; |
dann brauchst du nich immer edit1.text auszulesen sondern sollte zugriff auf die GUI entfernen (dann kannst du den code später in eine funktion auslagern)
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:
| var Form1: TForm1; implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); var text2 : string; b: integer; text: string; zaehler: integer; begin text := edit1.Text;
text2 := ''; for zaehler:=1 to Length(text) do begin text2 := text2 + char(ord(text[zaehler])+6); end;
Label2.Caption := text2; end; |
so und um nur Buchstaben anzuzeigen spaltest das ganze nochmal auf (ist für dich leichter)
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:
| procedure TForm1.Button1Click(Sender: TObject); var text2 : string; b: integer; text: string; zaehler: integer; asciiwert: Byte; begin text := edit1.Text;
text2 := ''; for zaehler:=1 to Length(text) do begin asciiwert := ord(text[zaehler]);
asciiwert := asciiwert + 6; text2 := text2 + char(asciiwert); end;
Label2.Caption := text2; end; |
hier die Tabelle:
www.torsten-horn.de/techdocs/ascii.htm
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
Shadowlucker 
Hält's aus hier
Beiträge: 14
|
Verfasst: Fr 12.03.10 20:36
Zuletzt bearbeitet von Shadowlucker am Mi 22.06.11 16:33, insgesamt 2-mal bearbeitet
|
|
uall@ogc
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Fr 12.03.10 20:39
Ja den Code dazu hab ich dir auch net gegeben. Ein wenig musst schon selbst machen
Die Stellen wo dein Code reinkommt (z.B. mit if-Abfragen) hab ich aber im letzten Post angegeben.
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
Shadowlucker 
Hält's aus hier
Beiträge: 14
|
Verfasst: Fr 12.03.10 20:41
Zuletzt bearbeitet von Shadowlucker am Mi 22.06.11 16:33, insgesamt 1-mal bearbeitet
|
|
Jakob_Ullmann
      
Beiträge: 1747
Erhaltene Danke: 15
Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
|
Verfasst: Fr 12.03.10 20:59
Shadowlucker hat folgendes geschrieben : | mhh ich habe mal den code mir mal angeschaut und getetet scheint alles zu funktionieren, soll ich jetzt einfach mit If Fragen machen?
ach ja noch etwas > asciiwert: Byte; was bedeutet dieser befehl? bringt mir nichts, wenn ich nur Copy Paste mache...
Moderiert von Christian S.: Vollständiges Zitat des vorhergehenden Beitrags entfernt |
asciiwert ist einfach der Name der Variablen. Sie ist eine Ganzzahl. Dabei heißt Byte, dass dafür 1 Byte, also 8 Bit, Arbeitsspeicher reserviert werden, es kann also die Werte 0 bis 255 annehmen.
Integer hat glaube ich seinen Bereich mehrmals geändert, und ich kann dir jetzt nicht sagen, wie viel Byte ein Integer hat. Dürfte aber herauszufinden sein. Jedenfalls ist Integer größer als Byte.
Nebenbei gibt es noch WORD (2 Bytes) und DWORD (double word, 4 Bytes). Weitere Integer-Typen (u. a. Cardinal) findest du in der Delphi-Hilfe, wenn du einfach mal "Integer" als Suchbegriff eingibst.
Auf jeden Fall ist die 1-Byte-Begrenzung von daher sinnvoll, weil ein ASCII-Code auch nur von 0 bis 255 gehen kann. Was ASCII ist, weißt du ja sicher.
Shadowlucker: Programmieren ist reine Übungssache. Nach einiger Zeit bekommt man dann ein Gefühl für die Sprache und die Programme schreiben sich fast von selbst.
|
|
Shadowlucker 
Hält's aus hier
Beiträge: 14
|
Verfasst: Sa 13.03.10 18:08
Zuletzt bearbeitet von Shadowlucker am Mi 22.06.11 16:34, insgesamt 1-mal bearbeitet
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Sa 13.03.10 18:13
Shadowlucker hat folgendes geschrieben : | naja programmieren ist nicht und wird nie mein Ding sein ;D |
warum tust du es dann?
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Shadowlucker 
Hält's aus hier
Beiträge: 14
|
Verfasst: Sa 13.03.10 20:21
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Sa 13.03.10 20:23
aso. naja, vielleicht freundest du dich noch mit Informatik an. Wenn nicht, kannst du ja schon mal ne Studienrichtung für dich persönlich ausschließen. 
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Shadowlucker 
Hält's aus hier
Beiträge: 14
|
Verfasst: Sa 13.03.10 20:37
Zuletzt bearbeitet von Shadowlucker am Mi 22.06.11 16:34, insgesamt 1-mal bearbeitet
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Mi 17.03.10 12:37
Ich mache mir etwas Sorgen bei diesen beiden Zeilen (ich denke der zweite Kommentar impliziert genau was ich meine):
Delphi-Quelltext 1: 2: 3: 4: 5:
| asciiwert := asciiwert + 6; text2 := text2 + char(asciiwert); |
Werden Werte, die größer sind als 255 von char() korrekt behandelt? (*)
Ich gehe mal davon aus, dass die komplette ASCII-Tabelle als Alphabet für die Verschlüsselung verwendet werden soll.
Sollen es nur Buchstaben und/oder Zahlen sein, wird das Ganze etwas komplizierter.
Falls (*) mit einem "ja" zu beantworten ist, sollte man folgendes tun:
Delphi-Quelltext 1:
| asciiwert := (asciiwert + 6) mod 256; |
Siehe auch: MODULO
Dies sorgt dafür, dass asciiwert im Bereich 0..255 bleibt. Die ersten 32 Zeichen werden vermutlich eh nicht sinnvoll dargestellt, da es sich hierbei um STEUERZEICHEN handelt.
|
|