AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Mehrdimensionales, dynamisches Array speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrdimensionales, dynamisches Array speichern

Ein Thema von Dunkelbunt27 · begonnen am 6. Apr 2011 · letzter Beitrag vom 11. Apr 2011
 
Benutzerbild von Trebxson
Trebxson

Registriert seit: 7. Apr 2011
18 Beiträge
 
Turbo Delphi für Win32
 
#14

AW: Mehrdimensionales, dynamisches Array speichern

  Alt 7. Apr 2011, 22:02
Das ist ganz schön krass was du da zusammen würfelst. Unabhängig davon ob deine Logik funktioniert erzeugst du mit dem Beispiel AnzahlZeilen x AnzahlSpalten Speicherlecks!

Denn du erstellst innerhalb der Schleife jedesmal ein Objekt. Mit nächstem Durchlauf überschreibst du gnadenlos die Referenz. Und nach der Schleife gibst du nur ein Objekt frei?
Und das ganze sogar zweimal...

Setze mal mit dem Anwendungsstart (DPR)

ReportMemoryLeaksOnShutdown := true und lass deine Funktion durchlaufen und beende dein Programm anschließend (wenn dies überhaupt ohne Zugriffsfehler möglich ist).
Wenn du gar nicht begreifst was ich meine dann starte mal deine Funktion 20 mal und schau dir im Taskmanager die Speicherauslastung an.
Und wenn du jetzt sagst, was solls... Speicheranforderungen sind Systemaufrufe und die kosten viel viel Zeit! Und das in einer Schleife?

Und wieso erstellst du die Objekte oberhalb vom try-finally-Block? Und woher willst du im finally-Block wissen, dass alle Objekte auch wirklich existieren?

Was ist deine Zieldatei nicht existiert oder das ganze inmitten der Schleifen abbricht?

Worauf zeigt dann MyIterator? Und worauf die Methode Free ()? Oder anderen Sachen?

Vielleicht geht alles noch beim Lesen der Datei irgendwie gut. Jedoch wenn du auf deinem System irgendwann nur noch halbe Dateien findest solltest du dich nicht wundern.

Du solltest dir eine Funktion explode ('delimiter', 'content') schreiben die möglichst gar keine Objekte verwendet und nichts anderes macht als einen String in Teile zu zerlegen.

Geändert von Trebxson ( 7. Apr 2011 um 23:44 Uhr) Grund: Typo
  Mit Zitat antworten Zitat
 


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 00:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz