AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) [erledigt ] Floppy Sector-weise auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

[erledigt ] Floppy Sector-weise auslesen

Ein Thema von thomasschaf · begonnen am 11. Apr 2013 · letzter Beitrag vom 12. Apr 2013
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.687 Beiträge
 
Delphi 12 Athens
 
#1

AW: Floppy Sector-weise auslesen

  Alt 11. Apr 2013, 21:04
Du kannst versuchen mit einem simplen FileStream auf die Diskette zuzugreifen. Dann steht dir mit Seek eine Möglichkeit zum Positionieren zur Verfügung.

fileStream := TFileStream.Create('\\.\A:', fmOpenRead);
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
thomasschaf
(Gast)

n/a Beiträge
 
#2

AW: Floppy Sector-weise auslesen

  Alt 11. Apr 2013, 21:11
Das Problem ist dann ja, dass ich nicht weiß, ob dieser Bereich korrupt ist.

Bei ReadFile kann ich aber den Rückgabewert anschauen.

Könnte man vielleicht mit "SetFilePointer" sowas machen?

Delphi-Quellcode:
    GetMem(buffer, 512); // genug Speicher FÜR EINEN SEKTOR reservieren
    SetFilePointer(fhandle, sec * 512, nil, FILE_BEGIN);
    if not ReadFile(fhandle, buffer^, 512, bytesread, nil)
      then // [konnte Sektor "sec" nicht auslesen... ]
Leider ist das noch recht neu für mich,
habe hier (zwar C++) Zeile 60 etwas gefunden.
Delphi-Quellcode:
 // Setting the pointer to point to the start of the sector we want to read ..
SetFilePointer (hDevice, (startinglogicalsector*512), NULL, FILE_BEGIN);

Geändert von thomasschaf (11. Apr 2013 um 21:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.687 Beiträge
 
Delphi 12 Athens
 
#3

AW: Floppy Sector-weise auslesen

  Alt 11. Apr 2013, 21:44
Das Problem ist dann ja, dass ich nicht weiß, ob dieser Bereich korrupt ist.
Wieso nicht? Der Stream liest genauso von der Diskette. Wenn das nicht möglich ist, bekommst du einen Fehler. Dann kannst du den Bereich überspringen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
thomasschaf
(Gast)

n/a Beiträge
 
#4

AW: Floppy Sector-weise auslesen

  Alt 11. Apr 2013, 21:51
Wie kann ich denn mit dem Stream an einer speziellen Stelle auf der Diskette von ihr lesen?
Wenn ich die ganze Diskette lese, kann ich nicht im Nachhinein herausfinden, ob der Bereich verfügbar ist.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.687 Beiträge
 
Delphi 12 Athens
 
#5

AW: Floppy Sector-weise auslesen

  Alt 11. Apr 2013, 22:35
Wie kann ich denn mit dem Stream an einer speziellen Stelle auf der Diskette von ihr lesen?
Dann steht dir mit Seek eine Möglichkeit zum Positionieren zur Verfügung.
Liest du eigentlich, was ich schreibe?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.284 Beiträge
 
Delphi 12 Athens
 
#6

AW: [erledigt ] Floppy Sector-weise auslesen

  Alt 12. Apr 2013, 08:11
Ich möchte noch als Stichwort "ANTS TDirectDisk" in den Raum werfen. Kommt zwar aus dem Ostblock, funktioniert aber spitzenmäßig.

Habe ich vor Jahren mal benutzt um Floppies als Lizenzschlüssel zu verwenden. Ich habe einfach ein paar Dateien mit Randomdaten drauf gespeichert und die eigentlichen Lizenzdaten direkt sektorweise auf die Floppy geschrieben, ohne Datei "drumrum". Beim Auslesen habe ich diese Dateien auch mit gelesen und damit irgendwelche "wilden Geschichten" angestellt. Nur so um den Schein zu wahren ^^

An den vermeintlich verschlüsselten Dateien haben sich etliche Informatikstudenten monatelang die Zähne ausgebissen und kamen im Leben nicht auf die Idee, dass man Speichermedien auch ohne Dateisystem benutzen kann. Typischer Fall von "Modern Brain vs. Oldschool Programming".
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Floppy Sector-weise auslesen

  Alt 11. Apr 2013, 21:51
Außerdem, selbst wenn der Fehler still ignoriert wird, kannst du ja dadurch, dass alle drei Disketten den gleichen Inhalt haben, recht leicht rausfinden, welche Bytes korrekt sind, wenn immer nur höchstens eine Diskette an einer bestimmten Stelle einen Fehler hat.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Floppy Sector-weise auslesen

  Alt 11. Apr 2013, 22:01
Außerdem, selbst wenn der Fehler still ignoriert wird, kannst du ja dadurch, dass alle drei Disketten den gleichen Inhalt haben, recht leicht rausfinden, welche Bytes korrekt sind, wenn immer nur höchstens eine Diskette an einer bestimmten Stelle einen Fehler hat.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
thomasschaf
(Gast)

n/a Beiträge
 
#9

AW: Floppy Sector-weise auslesen

  Alt 11. Apr 2013, 22:13
Die Idee ist wirklich sehr gut. Dann kann ich auch gleich die Diskette mit Winimage auslesen.
Für den automatischen Vergleich könnte ich dann ja ein Programm schreiben.

Vielen Dank für den Tipp!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

AW: [erledigt ] Floppy Sector-weise auslesen

  Alt 11. Apr 2013, 22:24
Guck mal hier: http://michael-puff.de/Programmierung/Delphi/Programme/ -> DiskImageNT.zip
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz