FileSize in FreePascal

Ich habe in meinem Programm eine Datei von einem Recordtyp deklariert. Von dieser Datei möchte ich die Größe bestimmen, und am Ende der Datei einen weiteren Datensatz anhängen, was eigentlich mit Filesize kein Problem wäre. Deshalb habe ich erstmal das hier geschrieben:

 AssignFile(dat,speicher); 
 Reset(dat);
 a := filesize(dat);
 seek(dat, a);
 write(dat, E[i]);
 CloseFile(dat);

dat ist in dem Fall meine Datei vom Typ TBuch und E[i] das, was ich raufschreiben möchte, speicher ist der Dateispeicherort. Wenn ich das jetzt aber kompilierne möchte, markiert er „a := filesize(dat)“ rot und zeigt folgende Meldung:
Error: Incompatible type for arg no. 1: Got „File Of TBuch“, expected „AnsiString“. Und das verstehe ich nicht, denn eigentlich steht in der Befehlsreferenz von Freepascal und auch überall sonst, dass der Parameter von Filesize ein Datei-Typ(File) sein muss. Ich hoffe jemand findet darauf eine Antwort.
Danke schon mal im Voraus,
urmel

So, ich dachte ich poste einfach mal die Lösung des Problems:
In FreePascal gibt es zwei verschiedene versionen der funktion FileSize, die in zwei verschiedenen Units aufgeführt sind. Da Lazarus die Uses-Liste des Programms selbstständig generiert, stand in meinem Fall die Unit ‚FileUtil‘ mit in der Uses-Liste. Die Funktion aus dieser Unit ermittelt aber die Dateigröße von Textdateien, und das in Byte. Also war mein meine File of Record natürliches ein falsches Argument.
Lösung: Einfach die Unit aus der Uses-Liste löschen.
Mit Delphi wär so was nicht passiert … Naja, Freeware eben.
Und danke noch mal für … nichts.