Autor |
Beitrag |
marvin521993
      
Beiträge: 172
|
Verfasst: Do 25.01.07 19:00
hi,
meine frage ist wie ich ein verschlüsselten text in einem memo in einem anderen memo ausgeben kann!!!
kann mir da jemand helfen?
|
|
Jann1k
      
Beiträge: 866
Erhaltene Danke: 43
Win 7
TurboDelphi, Visual Studio 2010
|
Verfasst: Do 25.01.07 19:07
Du liest von jeder Zeile in Memo1 jedes Zeichen ein, verschlüsseltst/entschlüsselst es und fügst es in Memo2 wieder ein.
|
|
marvin521993 
      
Beiträge: 172
|
Verfasst: Do 25.01.07 19:22
jaja dis is mir schon klar meine frage is eher die wie ich ihm das beibringen kann
|
|
DarkLord05
      
Beiträge: 449
WinXP Pro SP2
Opera; Delphi 3 Pro; Delphi 2005, Turbo Delphi, dev-c++, Eclipse, MS Visual Studio .NET 2003, MS Visual C++
|
Verfasst: Do 25.01.07 19:44
Funktion 1: Ord()
Funktion 2: Chr()
Damit kannst du zeichen umwandeln in ASCII (sind zahlen), dieses machst du einfach, zählst 13 zu den zahlen und gehst zum nächsten Buchstaben. Zurück geht genauso ... nur halt nicht 13 dazu, sondern -13. Fertig
_________________ QBasic | Delphi | c++ | PHP | C# .NET | Java
|
|
marvin521993 
      
Beiträge: 172
|
Verfasst: Fr 26.01.07 16:12
kann mir da jemand ein quelltext geben?
danke
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Fr 26.01.07 16:16
nur wenn du versprichst das du dich damit beschäftigst! nicht das wir deine aufgabe machen!!
lg el
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
marvin521993 
      
Beiträge: 172
|
Verfasst: Fr 26.01.07 16:19
ja dis würd ich sowieso machen sonst würds mir ja eh nichts bringen
danke:-)
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Fr 26.01.07 16:19
Jetzt hat mir elundril meinen Text vorweggenommen ...
Du lernst nicht aus fertigem Quelltext! Besser ist es, wenn du dir das Zeug selbst aneigenest, wobei wir die höchstens ein paar Hilfestellungen geben.
//edit: wenn du aber darauf bestehst, dir fertigen Quelltext anzuschauen, kann ich dir auch ausnahmsweiße meinen geben 
Zuletzt bearbeitet von Marc. am Fr 26.01.07 16:22, insgesamt 1-mal bearbeitet
|
|
marvin521993 
      
Beiträge: 172
|
Verfasst: Fr 26.01.07 16:22
ich hab da echt keine ahnung wie ich da anfangen sollte
und was ich dem dann alles genau sagen muss
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Fr 26.01.07 16:25
Das ist meine Funktion:
ich bin mal essen - danach erläutere ich sie dir mal
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:
| function VS(Text: string; i: integer): string; const cletter: array[1..26] of Char = ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'); var x, z: integer; begin Result := ''; text := uppercase(Text);
for x := 1 to length(Text) do begin if not (Text[x] in ['A'..'Z']) then result := result + Text[x] else for z := 0 to 26 do if (Text[x] = cletter[z]) then if ((Z + i) > 26) then Result := Result + cletter[(z + i) - 26] else Result := Result + cletter[z + i] end; result := lowercase(result); end; |
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Fr 26.01.07 16:27
So ersetzt man alle A's in einem Memo durch ein B und zeigt das im zweiten Memo an:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm1.Button1Click(Sender: TObject); var i: integer; str: String; begin str := Memo1.Text; for i := 0 to length(str) - 1 do begin if str[i] = 'A' then str[i] := 'B'; end; Memo2.Text := str; end; | So mal als Einstieg in das Thema.
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Fr 26.01.07 16:27
also mit einer For-Schleife die von dem anfang bis zum ende läuft kannst du jedes Zeichen auslesen.
Delphi-Quelltext 1: 2: 3:
| for Index:=iAnfang to iEnde do begin end; |
mit einer Rechteckigen klammer am ende von einen string bekommst du das zeichen an der position vom string. Also:
Delphi-Quelltext 1: 2:
| cZeichen:=sMyString[index]; |
dabei muss man sich in erinnerung rufen das man mit
Delphi-Quelltext
den text von Memo in einem string bekommt.
und das ganze kann man mit
Delphi-Quelltext 1:
| sAusgabestring:=sAusgabestring+cZeichen; |
wieder zusammensetzen.
so jetzt weißt du alles was du brauchst. viel spass beim Basteln!!
lg el
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Fr 26.01.07 16:39
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Fr 26.01.07 16:41
stimmt! aber eigentlich egal da der compiler keine Exeption auswirft. der übergeht das einfach!!
lg el
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Fr 26.01.07 16:42
Ja, aber das letzte Zeichen wird dann missachtet! 
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Fr 26.01.07 16:44
stimmt glaub ich auch nicht da die obere grenze gleich bleibt.
lg el
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
marvin521993 
      
Beiträge: 172
|
Verfasst: Fr 26.01.07 16:59
irgendwo muss ich doch jetz bei der formel von gausi ein lowercase einführen nur an welchter stelle?
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Sa 27.01.07 13:38
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm1.Button1Click(Sender: TObject); var i: integer; str: String; begin str := lowercase(Memo1.Text); for i := 0 to length(str) - 1 do begin if str[i] = 'A' then str[i] := 'B'; end; Memo2.Text := str; end; |
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 27.01.07 14:39
Marc. hat folgendes geschrieben: | Ein String beginnt immer bei 1 und nicht bei 0 oder irre ich mich da?  |
tja, nicht immer. null terminierte strings beginnen bei 0
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Sa 27.01.07 14:58
Ja, die normalen Strings, die man so bei Delphi findet, beginnen bei 1, d.h. das erste Zeichen eines Strings kann man mit meinString[1] ansprechen.
Die nullterminierten Strings findet man afaik eher in der C-Welt, oder wenn man mit der Windows-Api arbeitet. Die Dinger heißen dann PChar.
Insofern war der Einwand zu meinem Code berechtigt. 
_________________ We are, we were and will not be.
|
|