/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
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




Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408524
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste