Re: Variablen während Laufzeit erzeugen?
Delphi-Quellcode:
procedure TKryptobox.Verschluesseln;
(* -------------------------------------------------------------------- *) var i, //Zählvariable für for-Schleife z, //Variable, die bis zum Ende des Klartextes zählt (repeat...until) KTWert, GTWert, Schluessellaenge, Zeichen : integer; List : TStringlist; begin List := TStringlist.Create; //Stringlist wird erstellt Geheimtext := '' ; Vorbehandeln(Klartext); Zeichen := 1; z := 1; (*--------------------------------------------------------------------------*) try repeat for i := 0 to length (Schluessel) do // x = Länge des Schlüssels begin // x = Anzahl der Elemente in List List.Add(''); List.Strings[i]:= List.Strings[i] + Klartext[zeichen]; //List.Insert(i, Klartext[Zeichen]); inc (Zeichen); inc (z); end; i := 0; until z = length(Klartext); except ShowMessage('Fehler'); end; List.SaveToFile('C:\Krypto.txt'); //Zum Testen des Inhalts in List :) (*--------------------------------------------------------------------------*) end; |
Re: Variablen während Laufzeit erzeugen?
kurze frage: Was genau möchtest du erreichen. Willst du das bei jedem Durchlauf an die Zeilen etwas angehängt wird oder das bei jedem Durchlauf die liste geleert wird und neu beschrieben?
|
Re: Variablen während Laufzeit erzeugen?
Zitat:
das etwas angehängt wird ... :stupid: List := alter Inhalt + neuer Inhalt |
Re: Variablen während Laufzeit erzeugen?
Und ist Schluessel vorher und nachher gleichgroß, also beim ersten und beim 2. durchlauf, bei dem etwas angehängt werden soll?
|
Re: Variablen während Laufzeit erzeugen?
Der Knackpunkt ist die Abbruchbedingung für die repeat..until-Schleife (und die fehlende Abbruchbedingung für die innere Schleife). So wie Du das implementiert hast, muss die Länge des Klartextes ein Vielfaches der Schlüssellänge sein, sonst rumst es beim letzten Schleifendurchlauf. Denn die innere Schleife läuft immer so oft durch wie der Schlüssel lang ist.
|
Re: Variablen während Laufzeit erzeugen?
Die Länge des Schlüssels ist immer gleich und es soll jeweils 1 zeichen angefügt werden...
Zitat:
|
Re: Variablen während Laufzeit erzeugen?
Es funktioniert :mrgreen: :mrgreen: Vielen Dank!!!
Habe nur noch ein kleines Anliegen: Es fehlt das letzte Zeichen des Textes...habe ich einen Denkfehler gemacht?
Delphi-Quellcode:
repeat
for i := 0 to length (Schluessel) do // x = Länge des Schlüssels begin List.Add(''); // x = Anzahl der Elemente in List List.Strings[i]:= List.Strings[i] + Klartext[zeichen]; //List.Insert(i, Klartext[Zeichen]); inc (Zeichen); inc (z); if z = length (Klartext) then break; end; i := 0; until z = length(Klartext); |
Re: Variablen während Laufzeit erzeugen?
So besser (habe mir das Ganze aber nicht genauer angesehen)?:
Delphi-Quellcode:
repeat
for i := 0 to length (Schluessel) do // x = Länge des Schlüssels begin List.Add(''); // x = Anzahl der Elemente in List List.Strings[i]:= List.Strings[i] + Klartext[zeichen]; //List.Insert(i, Klartext[Zeichen]); inc (Zeichen); inc (z); if z > length (Klartext) then break; end; i := 0; until z > length(Klartext); |
Re: Variablen während Laufzeit erzeugen?
Zitat:
Da du ja nicht nur in der ersten Runde in deine Liste Zeilen einhängst, sondern in jeder, bleiben jede Menge leere Listenzeilen übrig. Ich würde die Liste vor der repeat Schleife mal mit leeren Strings füllen, und dann weitermachen. also
Delphi-Quellcode:
Gruss
for i:=0 to length(Schluessel) do
List.Add(''); repeat for i:=0 to length(Schluessel) do begin List.Strings[i] ... ... end i := 0; // kannste dir schenken ist unnötig until z > length(Klartext); |
Re: Variablen während Laufzeit erzeugen?
Aber wieso in den Schleifen von null bis Length(Schlüssel)? Das passt doch nicht zusammen :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz