AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Variablen während Laufzeit erzeugen?

Ein Thema von mo_greene · begonnen am 12. Okt 2007 · letzter Beitrag vom 16. Okt 2007
Antwort Antwort
Seite 3 von 4     123 4      
mo_greene

Registriert seit: 10. Dez 2006
Ort: Berlin
136 Beiträge
 
Turbo Delphi für Win32
 
#21

Re: Variablen während Laufzeit erzeugen?

  Alt 13. Okt 2007, 10:34
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;
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#22

Re: Variablen während Laufzeit erzeugen?

  Alt 13. Okt 2007, 10:47
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?
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
mo_greene

Registriert seit: 10. Dez 2006
Ort: Berlin
136 Beiträge
 
Turbo Delphi für Win32
 
#23

Re: Variablen während Laufzeit erzeugen?

  Alt 13. Okt 2007, 10:49
Zitat von inherited:
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?

das etwas angehängt wird ...

List := alter Inhalt + neuer Inhalt
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#24

Re: Variablen während Laufzeit erzeugen?

  Alt 13. Okt 2007, 10:55
Und ist Schluessel vorher und nachher gleichgroß, also beim ersten und beim 2. durchlauf, bei dem etwas angehängt werden soll?
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#25

Re: Variablen während Laufzeit erzeugen?

  Alt 13. Okt 2007, 10:57
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.
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
mo_greene

Registriert seit: 10. Dez 2006
Ort: Berlin
136 Beiträge
 
Turbo Delphi für Win32
 
#26

Re: Variablen während Laufzeit erzeugen?

  Alt 13. Okt 2007, 10:58
Die Länge des Schlüssels ist immer gleich und es soll jeweils 1 zeichen angefügt werden...


Zitat von OldGrumpy:
Der Knackpunkt ist die Abbruchbedingung für die repeat..until-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.
Das heißt ich müsste innerhalb der Schleife noch überprüfen lassen, ob der Klartext zuenede ist und dann soll die Schleife beendet werden?
  Mit Zitat antworten Zitat
mo_greene

Registriert seit: 10. Dez 2006
Ort: Berlin
136 Beiträge
 
Turbo Delphi für Win32
 
#27

Re: Variablen während Laufzeit erzeugen?

  Alt 13. Okt 2007, 11:09
Es funktioniert 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);
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#28

Re: Variablen während Laufzeit erzeugen?

  Alt 13. Okt 2007, 11:33
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);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#29

Re: Variablen während Laufzeit erzeugen?

  Alt 13. Okt 2007, 12:03
Zitat von mo_greene:
Es funktioniert 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);
Du hast jetzt aber eine Liste, die viel länger ist als gewollt.
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:
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);
Gruss
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#30

Re: Variablen während Laufzeit erzeugen?

  Alt 13. Okt 2007, 12:08
Aber wieso in den Schleifen von null bis Length(Schlüssel)? Das passt doch nicht zusammen
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:53 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