|
| Hvad betyder AssignFile og Reset ? Fra : -= Texas =- |
Dato : 07-10-01 16:43 |
|
Jeg har lige lavet et program fra min lærerbog, og prøver nu at forstå
hvad det er der sker. I programmet indtaster man et navn og en score,
som så bliver sorteret efter størrelse og skrevet i en fil som hedder
score.dat
Jeg har lidt problemer med at forstå hvad AssignFile og Reset gør.
Men som jeg har forstået det, så gør AssignFile det, at den opretter
og åbner en file. Jeg kan forstå at i første Procedure, bliver der oprettet
en fil hvis der ikke findes en iforvejen. Men så når programmet springer
ned til den næste Procedure, så står der AssignFile igen. Jamen vi
har da lige oprettet filen så det behøver vel ikke gøres igen...eller åbner
den filen i denne linie ?? Og hvad betyder Reset(ScoreFil) ? Som jeg
forstår ordet Reset, betyder det at nul stille indholdet, men det sker
jo ikke i dette tilfælde...eller gør det ? Håber der er nogle som kan
hjælpe en nybegynder.
procedure TScoreForm.FormCreate(Sender: TObject);
Var
Score : TScore;
I : Integer;
begin
If not FileExists(FilNavn) then
Begin
AssignFile(ScoreFil, Filnavn);
Try
ReWrite(ScoreFil);
Score.Navn := 'NN';
Score.Point := 0;
For I := 1 to 5 do
Write(ScoreFil, Score);
Finally
CloseFile(ScoreFil);
end;
end;
LaesScore;
end;
Procedure TScoreForm.LaesScore;
Var
Score : TScore;
I : Integer;
Begin
AssignFile(ScoreFil, Filnavn);
Try
Reset(ScoreFil);
for I := 1 to 5 do
Begin
Read(ScoreFil, Score);
sgScore.Cells[0, I-1] := IntToStr(I);
sgScore.Cells[1, I-1] := Score.Navn;
sgScore.Cells[2, I-1] := IntToStr(Score.Point);
end;
Finally
CloseFile(ScoreFil);
end;
end;
| |
// Overby (07-10-2001)
| Kommentar Fra : // Overby |
Dato : 07-10-01 17:38 |
|
AssignFile knytter et variabelnavn til en fysisk placering på drevene, sådan
at man slipper for at skrive den komplette sti hver gang man laver noget med
filen.
Reset åbner den pågældende fil for både læsning og skrivning (jeg går ud fra
at det er en binær fil, idet du kalder den .dat, er det tekstfil åbner du
kun for læsning). Der læses og skrives der, hvor 'filpointeren' peger hen.
Du kan manipulere med filpointeren med seek proceduren.
| |
Humlebien (08-10-2001)
| Kommentar Fra : Humlebien |
Dato : 08-10-01 09:32 |
|
Hej
> Jeg har lidt problemer med at forstå hvad AssignFile og Reset gør.
> Men som jeg har forstået det, så gør AssignFile det, at den opretter
> og åbner en file. Jeg kan forstå at i første Procedure, bliver der
oprettet
> en fil hvis der ikke findes en iforvejen. Men så når programmet springer
> ned til den næste Procedure, så står der AssignFile igen. Jamen vi
> har da lige oprettet filen så det behøver vel ikke gøres igen
- snip -
> CloseFile(ScoreFil);
> end;
> end;
> LaesScore;
> end;
Da der i begge procedurer står :> CloseFile(ScoreFil); fjerner du den
tilknytning du har lavet med : > AssignFile og skal derfor tilknytte den
igen ved næste procedurer.
I første procdure - som ligger i FormCreate- åbner du en fil og skriver til
den, derefter lukkes filen igen.
I næste procedurer åbner du filen og læser den og lukker igen.
mvh
Søren
| |
|
|