Forum: Object-Pascal / Delphi-Language
Delphi
by SirThornberry,
3. Aug 2007
Ich hab es nur mal kurz überflogen.
Es wäre hilfreich aussagekräftige Variablennamen zu verwenden (nicht Memo1 etc.)
Bezüglich Speicher ist mit der bereits erwähte Verdacht unter gekommen:
for i := 1 To Folder.Items.Count do
begin
SetLength(licenseSet1, Length(licenseSet1)+1);
Du vergrößerst das dynamische Array immer wieder um 1 was den gleichen Effekt hat wie bei den Strings.
Forum: Object-Pascal / Delphi-Language
Delphi
by SirThornberry,
2. Aug 2007
Die Stackgröße kann man auch in den Projektoptionen ändern. Und die Stackgröße spielt nur eine Rolle bei Rekusion und lokalen Variablen, insbesondere bei lokalen statichen Arrays.
Wenn du den Fehler erst nach einiger Zeit bekommst vergisst du vielleicht was frei zu geben?!
Könntest du den Quelltext eventuell posten?
Forum: Object-Pascal / Delphi-Language
Delphi
by SirThornberry,
2. Aug 2007
da helfen keine Defrag-Programme. Da hilft die Verwendung eines anderen Speichermanager oder besser, die Verwendung eines algorythmus der das beachtet.
Zum Beispiel anstelle tausend mal an einen String etwas anzuhängen kann man vorher die benötigte Länge berechnen, 1 mal die Länge des Strings setzen und dann in diesen String (also in den Speicherbereich des Strings) die Daten rein kopieren....
Forum: Object-Pascal / Delphi-Language
Delphi
by SirThornberry,
2. Aug 2007
wie bereits erwähnt kommt der Fehler in den meisten Fällen wenn große zusammenhängende Speicherbereiche angefordert werden.
Stell dir vor du hast insgesamt 2 GB platz. Alle 50 MB liegt ein Stück von einer Größe von einem Byte. Somit ist es jetzt nicht möglich ein zusammenhängendes Stück vom 100 MB zu bekommen weil ja alle 50 MB was dazwischen liegt.
Bei einigen Speichermanagern kann es aus...
Forum: Object-Pascal / Delphi-Language
Delphi
by SirThornberry,
2. Aug 2007
Das ist eigentlich sache des Betriebssystems. Es kommt hauptsächlich darauf an wie du den Speicher anforderst. In der Regel bekommt man das Problem wenn man zu viel Zusammenhängenden Speicher anfordert (Zum Beispiel bei einem Array etc.)