Ik heb bepaalde data opgeslagen in een classe TTijdreeks. In deze classe staan meerdere soorten variabelen opgeslagen. Onderandere het gemiddelde van de data (Mean).
Ik zou graag deze classen willen opslaan in een bestand. Zodat de gegevens later ook weer makkelijk in te lezen zijn. Daartoe gebruik ik de volgende code (De variabele Tijdreeks is bij een andere procedure al voorzien van data):
vervolgens wil ik hetzelfde bestand weer kunnen openen. Dat doe ik op de volgende manier:
Dit werkt prima, zolang ik het programma niet afsluit! Als ik bijvoorbeeld 3 verschillende tijdreeksen invoer kan ik ze allemaal weer inladen en de Mean klopt iedere keer. Echter, zodra ik het programma afsluit, opnieuw start en vervolgens de data weer inlees, dan is de waarde van Mean veranderd!
Ik vermoed dat de data niet goed naar het bestand wordt geschreven, maar tijdens het uitvoeren wel in het geheugen blijft staan. Heeft iemand enig idee wat ik fout doe en hoe ik dit oplos?
Ik zou graag deze classen willen opslaan in een bestand. Zodat de gegevens later ook weer makkelijk in te lezen zijn. Daartoe gebruik ik de volgende code (De variabele Tijdreeks is bij een andere procedure al voorzien van data):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| procedure TForm1.O4ButtonSaveTRSClick(Sender: TObject); Var Bestand: File of TTijdreeks; Naam: String; Pad: String; begin Naam := O4EditNaamTRS.Text + '.trs'; Pad := ExtractFilePath(Application.ExeName) + '\' + naam; AssignFile(Bestand, pad); Rewrite(Bestand); Write(Bestand, Tijdreeks); CloseFile(Bestand); end; |
vervolgens wil ik hetzelfde bestand weer kunnen openen. Dat doe ik op de volgende manier:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| procedure TForm1.O4ButtonOpenTRSClick(Sender: TObject); var Bestand: File of TTijdreeks; Naam: String; Pad: String; begin Naam := O4EditNaamTRS.Text + '.trs'; Pad := ExtractFilePath(Application.ExeName) + '\' + naam; AssignFile(Bestand, pad); Reset(Bestand); Read(Bestand, Tijdreeks); CloseFile(Bestand); labelMean.Caption := FloatToStr(Tijdreeks.Mean); end; |
Dit werkt prima, zolang ik het programma niet afsluit! Als ik bijvoorbeeld 3 verschillende tijdreeksen invoer kan ik ze allemaal weer inladen en de Mean klopt iedere keer. Echter, zodra ik het programma afsluit, opnieuw start en vervolgens de data weer inlees, dan is de waarde van Mean veranderd!
Ik vermoed dat de data niet goed naar het bestand wordt geschreven, maar tijdens het uitvoeren wel in het geheugen blijft staan. Heeft iemand enig idee wat ik fout doe en hoe ik dit oplos?
Elvis is dood, Mozart is dood, Einstein is dood en ik voel me ook niet zo lekker...