Einzelnen Beitrag anzeigen

Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#32

AW: wie kann ich bestimmte Infos aus Textdokument einlesen?

  Alt 6. Jun 2012, 13:41
Hallo Lee,
ich hab das mal 1:1 kopiert.

Bei mir wurde das nicht kompiliert, weil in der Prozedur ReadRecord hinter New(hDreieck) das Semikolon fehlt.

Nach Hinzufügen des Semikolons lief das einwandfrei.

Ich habe die Daten aus #28 ins Clipboard kopiert und in Button2Click in list gestellt.
Nach Ausführen von Button2Click habe ich die Daten mit CopyDreiecke in Log.txt geschrieben.
Ergebnis : Alle Werte sind identisch mit den Originalwerten.

Dann habe ich die Daten aus #28 in eine Datei gestellt und in Button2Click aus dieser Datei in list geladen.
Nach Ausführen von Button2Click habe ich die Daten mit CopyDreiecke in Log.txt geschrieben.
Ergebnis : Alle Werte sind identisch mit den Originalwerten.

Da das, was du gepostet hast, so wie es war (fehlendes Semikolon), nicht kompiliert wurde, kann ich nicht so recht glauben, dass das die Version war, die bei dir fehlerhafte Ergebnisse brachte, denn die hätte ja gar nicht laufen können.
Aber vielleicht hast du ja so einen Zauberkompiler, der fehlende Semikola toleriert – kann ich aber auch nicht glauben.

Was mir noch auffiel:

Erstens:
Oberhalb der Prozeduren deklarierst du einen Typ hDreieck=^TDreieck .
In der Prozedur ReadRecord deklarierst du eine Variable hDreieck=^TDreieck .
Das ist zwar unkritisch aber unschön.
Sinnvoller wäre, die Variable als z.B. Dreieck:hDreieck zu deklarieren.

Zweitens:
Im Except Block in Button2Click schreibst du Dreiecke:=nil;
Wenn es tatsächlich zu einer Exception kommt erzeugst du damit schöne Memory Leaks.
Richtig wäre.
Delphi-Quellcode:
for i:=0 to Dreiecke.Count-1 do Dispose(Dreiecke[i]);
Dreiecke.Free;
Drittens:
Du lädtst eine Datei deren Namen du aus OpenDialog.Filename entnimmst.
Kann es sein, dass da ein anderer Dateiname steht, als du vermutest ?
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat