Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Image von Disketten bearbeiten (https://www.delphipraxis.net/167886-image-von-disketten-bearbeiten.html)

zeras 24. Apr 2012 10:20

Image von Disketten bearbeiten
 
Hallo,

ich suche nach einer Möglichkeit in Delphi, mit VFD erstellte Diskettenabbilder zu bearbeiten, d.h. Dateien hinzufügen bzw. entfernen. Es soll aber ohne diesen Treiber gehen, damit ein Nutzer diesen nicht installieren muss. Habt ihr eine Idee?

himitsu 24. Apr 2012 10:29

AW: Image von Disketten bearbeiten
 
Erstmal rausfinden, wie die VFD aufgebaut ist.
* Wenn es wie bei ISO ist, dann steht nur der Dateninhalt innerhalb der VFD, diesen könnte mann dann genauso wie die Diskette selber ansprechen,
also so, als wenn man sich mit direkten Zugriff auf den datenträger beschafft hätte.
* Wenn nicht, dann mußt du erstmal die Rohdaten der Diskette finden und notfalls extrahieren und nachher wieder zurückkopieren.

Nun darfst du lernen wie das FAT16-Dateisystem arbeitet.

Und dann kannst du dieses natürlich bearbeiten.



Ist ja blos eine Datei wenn diese Datei direkt ausliest, dann braucht man natürlich keinen Treiber, da es über den vorhandenen Dateisystemtreiber läuft. :roll:
(außer man will die VFD direkt ins System mounten, so als virtuelles Diskettenlaufwerk)

zeras 24. Apr 2012 10:35

AW: Image von Disketten bearbeiten
 
Danke für die Info.
Ich habe VFD mal als Beispiel genannt. Es kann sein, dass es nicht 100%ig vfd ist, aber ich vermute es stark.
Vielleicht hat jemand schon so ein Problem gehabt und hat eine Lösung. VFD ist in C programmiert und da bin ich nicht so firm.

hathor 24. Apr 2012 11:41

AW: Image von Disketten bearbeiten
 
Zitat:

Zitat von zeras (Beitrag 1163334)
Ich habe VFD mal als Beispiel genannt. Es kann sein, dass es nicht 100%ig vfd ist, aber ich vermute es stark.
Vielleicht hat jemand schon so ein Problem gehabt und hat eine Lösung. VFD ist in C programmiert und da bin ich nicht so firm.

Das lässt sich doch leicht herausfinden:
http://vfd.sourceforge.net/#download

zeras 24. Apr 2012 11:55

AW: Image von Disketten bearbeiten
 
Es ist nicht so ganz einfach. Ich kann nicht so genau in Details gehen, aber es ist nicht nur ein Image, sondern es sind viele Images, die in einer großen Datei hängen. Ich denke, dass die Diskettenabbilder nur hintereinandergeschrieben wurden mit einem Kopf vorne dran. Wenn ich dann den Header wegnehme, dann sollten hoffentlich dann die Images hintereinander kommen. Wenn ich dann ein Programm hätte, was die genau 1,44MB analysiert, müßte ich nur einen Pointer haben, der den Start der einzelnen Diskette anzeigt und so könnte ich dann die viele Disketten nacheinander analysieren.

shmia 24. Apr 2012 12:08

AW: Image von Disketten bearbeiten
 
Irgendwie schade, dass die API für ein Dateisystem nicht grundsätzlich in Form eines Interface daherkommt:
Delphi-Quellcode:
IFilesystem = Interface(IInterface)
  function FindFirst():...;
  function FindNext():...;
  ...
  function CreateFile(...):THandle;
  function CloseFile():...;
  function DeleteFile(...);
  function CreateDirectory(...);
  ...
end;
Würde das Betriebssystem gründsätzlich ein Dateisystem auf diesem Wege anbieten, wäre es überhaupt kein Problem z.B. ein Linux Ext3-Filesystem verpackt in einer Datei auf einem FAT32 Datenträger zu benützen.
Oder man könnte einen Proxy dazwischenschalten um alle Daten zu verschlüsseln.
Oder mal so auf die Schnelle und ohne Systemtreiber auf eine VFD zugreifen.

Aber leider ist die API fest ins Betriebssystem eingebrannt so dass man immer eine Art von Mounting vornehmen muss. :cry:

himitsu 24. Apr 2012 14:17

AW: Image von Disketten bearbeiten
 
So fest ist dieser nicht eingebrannt.

Du kannst gerne versuchen den Dateisystemtreiber zu nehmen und ihn auf ein Pseudopartitionshandle loslassen, welcher eigentlich ein Dateihandle ist.


Virtuelle Laufwerke machen ja quasi auch nichts Anderes.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz