Function LoadPage(Link: Longint): PPage;
Var I: Integer;
Page: PPage;
Begin
{ ist Link korrekt ? }
If (Link=Null) or (Link>FileSize(Datenbank)) Then
Begin
LoadPage:=Nil;
Exit;
End;
{ neue Page erstellen }
New(Page);
For I:=0 to maxElemente do
Begin
Page^.Elemente[I].Link:=Null;
Page^.Elemente[I].Key:=0;
Page^.Elemente[I].Info:=0;
End;
Page^.Anzahl:=0;
If Link=Filesize(Datenbank) Then
Begin
LoadPage:=Page;
Exit;
End;
{ zur Page-Position sprigen }
Seek(Datenbank,Link);
{ erstes Element einlesen }
Read(Datenbank,Page^.Elemente[0]);
{ Schluessel vom ersten Element ist die Anzahl
der Elemente in der Page }
Page^.Anzahl:=Page^.Elemente[0].Key;
{ Elemente einlesen }
For I:=1 to MaxElemente do
Read(Datenbank, Page^.Elemente[I]);
LoadPage:=Page;
End;
Funktionsschnittstelle:
Function LoadPage(Link: Longint): PPage;
Die Funktion lädt die Page ein, die sich an der Dateiposition "Link" befindet.
Null hat die gleiche Bedeutung wie Nil im Arbeitsspeicher!
Datenbank ist eine Datei vom Typ "File of TElement".
+
-