Tom: Nur einen Teil einer Datei auslesen

Beitrag lesen

Hello,

Demnach bietet sich Random Access immer dann an, wenn man in besonderen Maßen nur auf Teile des Inhalts einer Datei zugreifen möchte und nicht auf den ganzen Inhalt. Das hat dann jedoch wieder den Nachteil, dass die Länge eines Feldes fest vorgegeben ist, man aber dadurch z.B. mit fseek() (?) auf genau die Position kommt, wo das steht, was man braucht. Sehe ich das soweit richtig?

Dafür ist fseek() da.
Die PC-Dateisysteme sind i.d.R. so gebaut, dass man auch ab dieser Stelle gezielt schreiben kann.
Im Hintergrund funktioniert das noch ganz anders: da muss jedes Mal der gesamte Cluster eingelesen und wieder weggeschrieben werden, auch wenn nur ein einziges Byte darin betroffen ist. Das hängt mit den Synchronisationsmarken und Toleranzen beim Lesen und Schreiben auf der HDD zusammen. Ein Byte landet (microsopisch betrachtet) selten wieder genau am selben Platz.

Das Dateisystem ist davon aber unabhängig, da es mit Buffern arbeitet.

Man kann nun natürlich beliebig komplizierte Systeme aufbauen, die den Zugriff auf einen bestimmten Datenwert berechenbar machen.

Du könntest als Übung mal versuchen, eine Datei nach einem bestimmten Feldinhalt zu sortieren, ohne sie dabei vollständig einzulesen. Stichworte: Bubblesort, Quicksort, Sortieralgorithmen, ...

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau