Zum Inhalt springen

FAT12 Blockadressen auslesen


Empfohlene Beiträge

Geschrieben

Hey

Ich wollte ein Programm schreiben, welches die Blockadressen von einer Datei aus einer Diskette ausgibt.

Was ich mir für das Programm gedacht hatte:

- Dateiname möchte ich als Benutzer eingeben

- diese soll im Root Directory (Stammverzeichnis) gesucht werden (also Sektor 19 -32, das sind dann insgesamt 14 Sektoren die man durchsuchen muss)

//wenn die datei nicht existiert soll eine Fehlermeldung kommen

- nun schaut man im ersten FAT - Eintrag nach (beginnend bei 2, weil 0 und 1 schon für MS-DOS reserviert waren)

- in dem FAT-Eintrag steht die Nummer des Clusters der die jeweils nächsten Daten der Datei enthält

- dies soll solange gemacht werden bis die Blockadresse 0xFF7 - 0xFFF (ende) ist

Bsp:

1. suche Datei Text.txt im RootDir

2. Datei wird gefunden

3. im RootDir-Eintrag nachschauen bei welchen Cluster die Datei beginnt

4. in unserem Beispiel wäre das Cluster 2

5. dann also FAT-Tabellen Eintrag 3 (man fängt von 0 an zu zählen)

6. Eintrag durchsuchen

7. Wenn =Wert 0x0FFF ist = letzter Sektor den man einlesen muss

=Wert 0x0FF7 ist = Datenträger ist an dieser Stelle defekt

=Wert 0x0000 ist = Cluster ist noch frei

Jeder andere Wert (niedriger als 0x0FFF) ist die Nummer des Clusters, der die nächsten Daten der Datei enthält

8. angenommen in dem Eintrag der FAT-Tabelle von Cluster 2 steht 0x003

(daran erkennt man das man Cluster 3 einlesen müssen)

9. dort steht angenommen der Wert 0x010

(d.h Datei hat einen 3ten Cluster, 0x010 = 16dez, also Cluster 16)

10.Cluster 16 einlesen

11.FAT-Tabelle nachschauen was in Cluster 16 steht

12.Dort steht angenommen der Wert 0x0FFF (letzter Cluster der Datei)

(in meinem Beispiel war der erste Cluster der Datei Cluster 2, da wir aber die ersten

beiden FAT-Einträge nicht benutzten dürfen, deshalb aber keine 2 Cluster unbenutzt

lassen wollen, müssen wir nur die Zahl 2 von der Clusternummer suptrahieren um die

Clusternummer des Datenclusters zu erhalten, die wir einlesen müssen)

So hoffe ihr könnt das Nachvollziehen :)

Ich hab jetzt bloß keine Ahnung wie ich das ganze Ding umsetzen kann.

Möchte das per Konsolenanwendung von Borland B. v2006 realisieren!

Danke für alle Antworten.

Mit freundlichen Grüßen Shanos

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...