Ist der Dateizeiger für den Datensatz gefunden, so kann der Datensatz gelesen oder beschrieben werden. Dazu dienen die Funktionen LibFileRead, LibFileReadEx und LibFileWrite.
LibFileWrite(&fb,&fi); |
Hier wird der durch fb und fi bezeichnete Datensatz
neu beschrieben. Will man einen neuen Datensatz schreiben/anlegen, so
kann man natürlich nicht vorher nach ihm suchen. Dann ist zum Schreiben
fi.fp auf den Wert 0xffff (oder -1) zu setzen.
Übrigens ändert sich auch beim Beschreiben eines schon vorhandenen
Datensatzes der Dateizeiger. fi.fp wird natürlich angepaßt.
Hat man sich jedoch eine Liste von Dateizeiger von bestimmten
Datensätzen gemerkt, damit man später schneller zugreifen kann, ohne
sich noch mal durch die ganze Reihe zu hangeln, so muß man diese
Liste anpassen. Beim Schreiben eines neuen Rekords ist die Situation
noch schlimmer: alle Dateizeiger können sich ändern. Dies gilt sogar
für Rekords anderer Submodi.
Analog funktioniert das Lesen. Eine Vorgabe von 0xffff für den Dateizeiger hat hier keinen Sinn.
LibFileRead(&fb,&fi); |
Ein anderes Problem tritt beim Lesen unbekannter binärer Datensätze auf. Wenn es sich um einen großen, mittels LFILE_BUF angelegten Datensatz handelt, würde das Einlesen in einen FILE_BUF natürlich den Speicherbereich überschreiten. Die Funktion LibFileReadEx erlaubt deshalb die Festlegung der Größe der einzulesenden Daten. Maßeinheit hier ist FILE_BLOCK_SIZE, in define.h zur Zeit auf 64 Byte festgelegt.
LibFileReadEx(&fb,&finf,3*1024/FILE_BLOCK_SIZE); |
Das Beispiel liest nicht mehr Daten ein, als im Dateipuffer FILE_BUF Platz finden.
/******************************************************************/ /* Programm um den Zugriff auf den FLASH-Speicher zu zeigen */ /******************************************************************/ #include |
Für Ergänzungen wenden Sie sich bitte an:
Jürgen Wagner