Autor Beitrag
Dr. Confusius
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 20.03.03 16:08 
Ich bin ziemlicher Anfänger, deshalb ist für euch die Lösung wahrscheinlich relativ einfach.

Ich möchte gerne eine Datei laden, die aus von mir erstellten Records besteht. Dazu habe ich zu beginn meiner Prozedur folgendes definiert:

ausblenden Quelltext
1:
2:
var
Termindatei : file of TPlaner;


Wobei ich zuvor TPlaner wie folgt definiert habe:

ausblenden Quelltext
1:
2:
3:
4:
5:
type
  TPlaner =record
          Termine : array[1..max] of TTermin;
          AnzTermine : integer;
          end;


Bevor ich die Variable Termindatei definiert habe, ist das Programm gelaufen - die Typendefinition TPlaner ist also fehlerfrei (hoffe ich).

Ich erhalte immer folgende Fehlermeldung:
Zitat:
[Fehler] Typ 'TPlaner' benötigt Finalization - nicht im Dateityp erlaubt

Was hat das zu bedeuten?

_________________
Ich bin für die freie Interpretation der Orthographie!
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Do 20.03.03 16:36 
Hallo,

wie sieht den tTermin aus?

Generell aber Datentypen die in eine Datei gespeichert werden sollen imme als Packed definieren:
ausblenden Quelltext
1:
2:
3:
4:
TPlaner = packed record 
     Termine : array[1..max] of TTermin; 
     AnzTermine : integer; 
     end;


Gruß
Klabautermann
Dr. Confusius Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 20.03.03 17:10 
Meine Typen sehen wie folgt aus:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
type
  TZeitpunkt = packed record
     Datum : TDate;
     Zeit     : TTime;
     end;

  TTermin = packed record
     ZP, AlarmZP, WEnde, TEnd : TZeitpunkt;
     Widerholung : integer;
     Bezeichnung, Kom : String;
     Klonfl : boolean;
     end;

  TPlaner = packed record
          Termine       : array[1..max] of TTermin;
          AnzTermine : integer;
          end;


packed record hat da leider nicht geholfen.

_________________
Ich bin für die freie Interpretation der Orthographie!
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Do 20.03.03 17:15 
Hi,

ich würde mal tippen das es an dem Array liegt den du da benutzt... :)

1.) Versuch mal den Auszukommentieren, ob es dann geht... (dann wissen wir ob es an ihm liegt ;) )

2.) Wenn ja, dann schreib mal anstelle von Max eine feste zahl rein, denn es gibt oft/immer probleme wenn man auf die Art wie du es machen willst einen Dynamischen Array speichern will.. leider :(

Wenn es dann dennoch nich geht, mußt du wohl jedes ArrayFeld von hand in die Datei schreiben... ;) Also einfach mit ner ForSchleife immer ein Feld nach dem anderen reinpacken.

Au'revoir,
Aya~

_________________
Aya
I aim for my endless dreams and I know they will come true!
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Do 20.03.03 17:20 
Hallo,
Dr. Confusius hat folgendes geschrieben:
ausblenden Quelltext
1:
     Bezeichnung, Kom : String;					

das ist der Fehler.

Du musst die länge der Strings festlegen, da Delphi sonst nicht wissen kann, wie groß die Blöcke sind, die es in die Datei schreiben muss.
Aso mache ein
ausblenden Quelltext
1:
     Bezeichnung, Kom : String[200];					

oder ähnliches draus.
Desweiteren solltest du bei allen Records das Packed angeben, damit die Blöcke 1. möglichst klein sind und 2. dein Programm auch dann noch seine Dateien lesen kann, wenn du es mal mit einer anderen Delphi Version Kompilierst.

Gruß
Klabautermann
Dr. Confusius Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 20.03.03 17:40 
Das war es, :lol: vielen Dank für die Hilfe!

Ich fürchte nur, dass das nicht mein letztes Problem gewesen sein wird. :x

_________________
Ich bin für die freie Interpretation der Orthographie!
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Do 20.03.03 18:01 
Hi,
Dr. Confusius hat folgendes geschrieben:
Ich fürchte nur, dass das nicht mein letztes Problem gewesen sein wird. :x

das währe ja auch langweilig ;). Aus Problemen lernt mensch, deshalb sollte man diese nicht so negativ sehen.

Gruß
Klabautermann

PS: Ein einfaches Demo zu Typisierten Datein kann hier runtergeladen werden.
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: So 30.03.03 22:11 
Problem gelöst ???

_________________
MFG
Michael Springwald, "kann kein englisch...."
Dr. Confusius Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 31.03.03 08:10 
Jo :lol: ,
Vielen Dank

_________________
Ich bin für die freie Interpretation der Orthographie!