Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Variablen während Laufzeit erzeugen? (https://www.delphipraxis.net/101398-variablen-waehrend-laufzeit-erzeugen.html)

quendolineDD 12. Okt 2007 23:09

Re: Variablen währen Laufzeit erzeugen?
 
Nehm die Schleife mal nur bis length(schluessel) -1
Delphi-Quellcode:
repeat
    for i := 0 to length (Schluessel)-1 do // x = Länge des Schlüssels
    begin                               // x = Anzahl der Elemente in List
      List.Strings[i]:= List.Strings[i] + Klartext[zeichen];
      inc (Zeichen);
      inc (z);
    end;
    i := 0;
    until z = length(Klartext);

mo_greene 12. Okt 2007 23:12

Re: Variablen währen Laufzeit erzeugen?
 
macht leider keinen unterschied:(

quendolineDD 12. Okt 2007 23:18

Re: Variablen währen Laufzeit erzeugen?
 
Dann mach evtl. mal die Optimierung aus, wenn du die noch an hast im Compiler Menü und dann gehe mal den Quelltext mit F7 durch und schaue, wo du eine Bereichsverletzung hast. irgendwo müssen deine Zählvariabeln die Bereiche deiner Strings übersteigen

inherited 12. Okt 2007 23:24

Re: Variablen währen Laufzeit erzeugen?
 
Nur weil schluessel so gross ist nehme ich an dass du die Stringlist nicht vergrößert hast.
Du musst neue Zeilen per StringList.Add hinzufügen.

mo_greene 12. Okt 2007 23:28

Re: Variablen währen Laufzeit erzeugen?
 
er bleibt, wenn ich mit F7 durchgehe bei folgender Zeile stehen

Delphi-Quellcode:
      List.Strings[i]:= List.Strings[i] + Klartext[zeichen];
Vorher hatte ich anstelle dieser Zeile folgendes stehen:

Delphi-Quellcode:
List.Insert(i, Klartext[Zeichen]);
Damit hat es geklappt, aber leider wird der String mit dem Index immer überschrieben, was ich ja nicht möchte. Dieser soll beibehalten werden und je um ein Zeichen erweitert werden :gruebel:


Zitat:

Zitat von inherited
Nur weil schluessel so gross ist nehme ich an dass du die Stringlist nicht vergrößert hast.
Du musst neue Zeilen per StringList.Add hinzufügen.

Auch wenn der Schlüssel den Wert 1 hat, funktioniert es nicht!

inherited 12. Okt 2007 23:34

Re: Variablen währen Laufzeit erzeugen?
 
Wenn deine Stringlist kein Element hat, wird es noch nichmal bei Schluessel=0 klappen. Es ist wie ein leerer Eierkarton: wenn du versucht das Ei an Position 3 kaputt zu hauen schlägst du ins leere, weil da einfach nichts ist. Du musst halt erst Eier reinpacken (.Add)

quendolineDD 12. Okt 2007 23:35

Re: Variablen währen Laufzeit erzeugen?
 
Auf über 255 Zeichen pro String kommst du aber nicht?
Vergiss nicht, das eine StringListe mit
Delphi-Quellcode:
List:= TStringList.Create;
erstellt werden muss.

So wie du das machst, muss die StringListe am Index i schon einen Eintrag haben, sobald dort keiner ist, überschreitest du halt das Listenmaximum

inherited 12. Okt 2007 23:36

Re: Variablen währen Laufzeit erzeugen?
 
Was spielt das für eine Rolle?

mo_greene 12. Okt 2007 23:38

Re: Variablen währen Laufzeit erzeugen?
 
Ja klingt logisch :) ...danke

aber leider funktioniert es immernoch nicht...

Delphi-Quellcode:
     
List.Add('');
List.Strings[i]:= List.Strings[i] + Klartext[zeichen];
Kann ich nicht ein leeres Element einfügen?

Ich komme nicht auf über 255 und die Liste wird auch erstellt :)

OldGrumpy 13. Okt 2007 08:23

Re: Variablen während Laufzeit erzeugen?
 
Bitte nochmal den Quelltext am Stück posten, danke :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:44 Uhr.
Seite 2 von 4     12 34      

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