FAT auf Compact Flash auf C167

Gast #158980
Lesenswert?

Nö. Aber bedenke, daß Du dafür viel Speicher brauchst. Im Idealfall
solltest Du die gesamte FAT im Speicher halten können - und die kann
bereits bei FAT16 ziemlich groß werden (128 kByte). Bei FAT32 ist die
FAT mehrere Größenordnungen größer - das können schnell mehrere
Megabyte werden.

Wenn Du die FAT nicht im Speicher hältst, musst Du sowohl beim
Dateilesen als auch -schreiben permanent zwischen eigentlichen Datei-
und FAT-Zugriffen hin- und herspringen. Und das verlangsamt die ganze
Chose erheblich.

Dennoch: viel Erfolg!
Gast #158981
Lesenswert?

So langsam wird dann auch nicht. Such dir einfach mal nen paar
Codebeispiele in C an (von irgendwelchen Projekten, z.B. die von
ulrichradig.de).

Du brauchst halt für jede offene Datei mindestens 512Byte, besser
Clustergröße (bei FAT16 max. 128kb glaub ich).
512byte sind ein Sektor, das was meistens die kleinste zu verwaltende
Einheit darstellt. Eine Datei ist immer mindestens einen Cluster groß
(Zuordnungseinheit).

Die FAT kann man ja recht einfach berechnen und wenn die CF nicht sooo
fragmentiert ist, reicht ein Sektor schon für ein paar mal lesen von
nem Cluster aus, denn in 512b passen 128Cluster.
Lass am besten beim Clusterauslesen immer den letzten Teil der FAT
(bzw. beider Fats bei 32) im Speicher, dann kannste meistens etwas
schneller arbeiten).

Dein "schnell" kommt auf dich an ;)

dave

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren