Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Scrollfunktion rückwärts über EOF

  Alt 24. Feb 2012, 14:42
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;
$2B or not $2B

Geändert von himitsu (24. Feb 2012 um 14:54 Uhr)
  Mit Zitat antworten Zitat