EOF (hinteres Ende)
BOF ? (vorderes Ende)
Achso, also eigentlich Datei und nicht eine richtige datenbank.
Zitat:
filepos(VDVDFile)= 2
Der erste Datensatz müßte 0 sein.
Und der Letzte ist Anzahl-1.
Und FilePos steht auf dem Datensatz nach dem zuletzt Gelesenen ... also muß man immer 2 Schritte zurück. (den zuletzt gelesenen und den jetzt zu lesenden Datensatz)
Gibt FileSize und FilePos eigentlich die Dateigröße, oder die Anzahl der Records (Datensätze) an?
[add]
Unter der Annahme FilePos/FileSize liefern die Anzahl/Position der Datensätze und
nicht die Größe/Position in Byte.
Ansonsten mußt'e das erst umrechnen.
Delphi-Quellcode:
procedure TFormDVD.UpDown1Click(Sender: TObject; Button: TUDBtnType);
var p : Integer;
begin
case Button of
btNext: begin
if EOF(VDVDFile) then
seek(VDVDFile, 0);
end;
btPrev: begin
p := FilePos(VDVDFile);
if p <= 1 then
seek(VDVDFile, FileSize(VDVDFile) - 1)
else
seek(VDVDFile, p - 2);
end;
read(VDVDFile, HV); // Thema doppelter Code ... ist ja überall gleich
with VDVD do begin
//Ausgabe
end;
end;