Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Disketten sektorweise lesen/schreiben (https://www.delphipraxis.net/171533-disketten-sektorweise-lesen-schreiben.html)

zeras 11. Nov 2012 08:37

Disketten sektorweise lesen/schreiben
 
Hallo,

hat jemand eine Idee, wie man Disketten sektorweise lesen bzw. schreiben kann. Ich bräuchte eigentlich alle Sektoren einer Diskette gelesen oder geschrieben. So ähnlich wie manche Diskettenimageprogramme wie vfdisk. OK vfdisk könnte ich vielleicht auch fernsteuern, damit ich das Image bekomme oder geschrieben kriege, aber das sollte alles in einem Delphiprogramm erfolgen.

turboPASCAL 11. Nov 2012 09:10

AW: Disketten sektorweise lesen/schreiben
 
Öh, was sind Disketten ? :wink:

Vill kann dir das weiterhelfen:
http://www.delphipraxis.net/10415-diskimage-5.html

Neumann 11. Nov 2012 09:34

AW: Disketten sektorweise lesen/schreiben
 
Disketten ware glaube ich die Tontafeln, in die die Sumerer ihre Daten geritzt haben

Bummi 11. Nov 2012 10:16

AW: Disketten sektorweise lesen/schreiben
 
@Neumann :thumb::thumb:

SirThornberry 11. Nov 2012 10:27

AW: Disketten sektorweise lesen/schreiben
 
Ich denke die Frage ist ernst gemeint. Bitte macht das Thema nicht kaputt nur weil ihr nicht mehr mit Disketten arbeitet. Danke :)

zeras 11. Nov 2012 11:09

AW: Disketten sektorweise lesen/schreiben
 
Zitat:

Zitat von turboPASCAL (Beitrag 1190690)

Ja, das könnte vielleicht helfen. Ich habe das mal runtergeladen und schaue mal, was dort programmiert ist. Wobei die direkten Links nicht mehr gehen. Aber man muss ich halt von weiter oben durchhangeln.

Für die "Jüngsten" unter uns. Schaut doch mal bei Wikipedia oder Google nach. Dann werdet ihr sehen, was Disketten sind. Ist schon schwierig, wenn man noch solch "alte" Technik hat und da was draus machen muss. Es gibt noch Technik, die länger hält als eine Windows Version.:idea:

himitsu 11. Nov 2012 12:01

AW: Disketten sektorweise lesen/schreiben
 
Googlen mußt'e nicht unbedingt.

In Luckies Profil steht der Link zu seiner neuen Webseite (neue Domain) > Luckie

Und ansonsten ist die Seite noch grob fast genauso aufgebaut.
- in der alten URL findesten du das Verzeichnis und meist liegen die jetzt unter "Programmierung"
- und die Programmnamen haben sich eigentlich auch nicht verändert, so daß man sie leicht wiederfindet.


Zitat:

http: //www.luckie-online.de/Delphi/Programme/DiskImageNT1_2.zip
http: //www.michael-puff.de/Developer/Delphi/Programme/DiskImageNT1_2.zip
www.michael-puff.de > Programmierung > Delphi > Programme > DiskImageNT.zip

p80286 11. Nov 2012 12:20

AW: Disketten sektorweise lesen/schreiben
 
Kommt darauf an mit welchem Betriebssystem, bzw. wie weit Du nach "unten" gehen willst.
Die klassische Dos-Methode geht über den Int13, wobei Du allerdings das Layout der Diskette kennen solltest. Eine andere Möglichkeit ist der (Dos)Int25, der allerdings Cluster liest. (Wenn ich mich richtig erinnere)
Unter Windows kannst du mit createfile direkt auf das Medium zugreifen. Die Details hab ich allerdings nicht im Kopf, da solltest Du vllt. nach Bootsektor/CD-Lesen suchen.
Delphi-Quellcode:
  hVolumeHandle := CreateFile(PChar(sVolumeName), GENERIC_READ or GENERIC_WRITE,
                              FILE_SHARE_READ or FILE_SHARE_WRITE,
                              nil, OPEN_EXISTING, 0, 0);
Bleibt die Frage, was Du konkret vorhast, da modernere Festplatten nicht mehr über Sektor,Spur,Kopf angesteuert werden, sondern nur noch über die Sektor-Nummer, wobei nicht gewährleistet ist, das Sektor N+1 nicht unbedingt physisch hinter Sektor N liegt.

Ggf. wäre der in Windows eingebaute SCSI-Mapper für Dich von Interesse, der für alle Massenspeicher-Medien eine ähnliche Schnittstelle bietet.

Gruß
K-H

zeras 11. Nov 2012 12:39

AW: Disketten sektorweise lesen/schreiben
 
Zitat:

Zitat von p80286 (Beitrag 1190703)
Bleibt die Frage, was Du konkret vorhast, ....

Gruß
K-H

Um konkreter zu werden. Wir nutzen einen Diskettenemulator, der seine Abbilder auf eine CF-Karte schreibt. Auf der CF-Karte ist dann eine große Datei, wo viele solche Abbilder reinpassen. Dies ist alles "diskettenbasiert", d.h. es werden immer jeweils ein oder mehrere Diskettenabbilder dort reingepackt. Diese Abbilder muss ich finden, dann irgendwie wieder auf ein Dateisystem übertragen. Danach kann ich dann auf die Diskettenabbilder zugreifen. Im Endeffekt brauche ich einen eigentlich einen virtuelles Diskettenlaufwerk im Speicher, um dann die Images reinzupacken und dann auf die Daten zugreifen zu können. Das sollte aber ohne einen Treiber gehen. Wenn ich das hinbekomme, dass ich im Speicher ein array mit 1,44MB einrichten kann, dann aber filebasiert zugreifen kann. Das wird die größte Hürde sein. Wenn das nicht gehen sollte, dann müßte ich vfdisk einrichten, dann ein Abbild von 1,44 MB aus dem großen File holen, vfdisk sagen, dass eine Datei mit 1,44MB dort liegt und dann kann ich mittels normalen Diskettenzugriffen aus dem virtuellen vfd Laufwerk die Daten lesen.
Aber vielleicht hat jemand auch eine andere Idee?
Also Diskettenimage von 1,44MB vorhanden, aber Zugriffe sollen dateibasiert sein und nicht sektorbasiert.
Ich hoffe, dass ich das so einigermaßen erklären konnte.

p80286 11. Nov 2012 12:51

AW: Disketten sektorweise lesen/schreiben
 
Wenn ich das richtig verstanden habe, hast Du ein Diskettenimage, auf das Du zugreifen möchtest, als ob es ein normales Medium sei.
Ggf. ist es das einfachste, Deine Daten auf einen (superFloppy)-Usb-Stick zu klatschen, und diesen dann zu lesen?

So ganz ohne FS-Treiber, scheint mir nicht möglich zu sein.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 Uhr.
Seite 1 von 3  1 23      

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