Autor Beitrag
jackie05
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: Mo 06.04.09 01:51 
Hallo,
wie kann ich die Sektoren/Cluster eines Laufwerkes auslesen?
Es sollte ein Programm werden, das z.B. verlorene Bilder retten kann.
Könnt Ihr mir vieleicht Tips geben, mit was ich mich besser auseinander setzen muss und wie das so abläuft mit den einzelnen Sektoren?

Ich bedanke mich schonmal im Voraus.

MfG


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mo 06.04.2009 um 09:35


Zuletzt bearbeitet von jackie05 am Mo 06.04.09 03:11, insgesamt 1-mal bearbeitet
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mo 06.04.09 02:21 
user profile iconjackie05 hat folgendes geschrieben Zum zitierten Posting springen:
Es sollte ein Programm werden, das z.B. verlorene Bilder retten kann.
In wie fern "verloren"? Gelöscht, aber noch nicht überschrieben? Bei Dateien deren Typ bekannt ist, ist das sicher irgendwie möglich und die Richtung in die du gehen willst scheint mir die richtige zu sein.
Es könnte sich lohnen, den Programmierer von HxD zu fragen, ob er dir teile des Sources zur Betrachtung überlässt, andernfalls Zitiere ich mal einen Thread, der beim Suchen nach "Sektoren" im DF sofort auffällt:
user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
die Windows-API bietet Dir via CreateFile und dem passenden Geräte-Namen alle nötigen Dinge an. Schau Dir einfach mal den Source des HxD an ^^
Falls es sich dagegen um Bilddateien handelt, die nicht mehr anzeigbar sind weil sie irgendwie korrumpiert sind, ist das der falsche Ansatz.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.


Zuletzt bearbeitet von JayEff am Mo 06.04.09 02:35, insgesamt 1-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 06.04.09 02:28 
Dafür kannst du Raw Disk Access benutzen:
www.torry.net/authorsmore.php?id=4451

Aber sei vorsichtig, wenn du aus Versehen auf die Festplatte schreibst, dann können Daten verloren gehen. ;-)
jackie05 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: Mo 06.04.09 03:17 
Vielen Dank euch beiden.

Das mit dem Schreiben auf der Festplatte wird mir nicht passieren, ich teste das ganze ambesten erstmal mit meiner SD Karte. :wink:

Mir ist schon klar, das z.B. gelöschte Dateien mit dem neuen überschrieben werden kann und das alte somit nicht mehr Wiederherstellbar ist.
Man sollte ja sofort "nach dem die Dateien verloren gegangen sind", versuchen diese Wiederherzustellen, bevor neue Dateien hinzukommen.

Ich werde mir mal die Links ankucken.

Vielen Dank.

Edit: Ich habe mir mal die Raw Disk Access Komponente Installiert und erhalte folgende fehlermeldung:
ausblenden Delphi-Quelltext
1:
[Fataler Fehler] Unit1.pas(7): Datei nicht gefunden: 'DesignIntf.dcu'					

Die Datei DesignIntf.dcu ist nicht dabei, diese wird für den Komponent benötigt.
Wo bekomme ich diese Datei eigentlich her?

MfG
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mo 06.04.09 03:40 
[quote="user profile iconjackie05"(557163)]Man sollte ja sofort "nach dem die Dateien verloren gegangen sind", versuchen diese Wiederherzustellen, bevor neue Dateien hinzukommen./quote]Wenns dir darum geht, sollte jaenickes Link der richtige sein. Dabei gibt es halt das Problem, dass du keinerlei Möglichkeit hast, herauszufinden, wo die Bilder vorher lagen (Durch Fragmentierung und die Algorithmen die viele Flashspeicher zur optimalen Nutzung anwenden, können sie ja praktisch überall verteilt sein).

Die dcu (=Delphi compiled unit) ist eine kompilierte .pas-Datei. Ich kann dir auch nicht sagen, woher du die bekommen kannst, welche Delphi-Version nutzt du denn? Es kann sein, dass du die .pas hast. Falls das so ist, kannst du sie kompilieren und dadurch die .dcu erhalten.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
jackie05 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: Mo 06.04.09 03:44 
Danke Dir.
Ich benutze Delphi 7 Enterprice.
Ich habe bei Optionen im Suchpfad um diese Zeile ergänzt:
C:\Programme\Borland\Delphi7\Source\ToolsAPI

Jetzt bekomme ich diese fehlermeldung:
[Fataler Fehler] DesignEditors.pas(530): Datei nicht gefunden: 'Proxies.dcu'

Das bekomme ich auch noch hin und Danke euch für die Hilfe.

Edit: Jetzt funktioniert das mit der Komponent, ich musste noch paar Packages hinzufügen.

MfG
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 06.04.09 05:48 
user profile iconjackie05 hat folgendes geschrieben Zum zitierten Posting springen:
Das mit dem Schreiben auf der Festplatte wird mir nicht passieren, ich teste das ganze ambesten erstmal mit meiner SD Karte. :wink:
Mit einer SD-Karte wird das kaum klappen. ;-)

Ich meinte aber vor allem, dass du beim Schreiben an eine falsche Stelle die Partitionierung oder andere Daten verloren gehen könnten. Und die Komponente macht auch das, die Demo, die dabei war, glaube ich auch.

Was DesignIntf usw. angeht: Da reicht das eine Package DesignIde unter requires:
www.delphipraxis.net/topic1157.html
www.delphipraxis.net/post264040.html
jackie05 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: Do 09.04.09 03:32 
Danke.

Eine Frage habe ich nocht:
Wie ist das mit dem überprüfen ob bei mancher Sektoren Bilder drin stecken, muss man dafür Assembler gut können oder wie läuft das ab?

MfG
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 09.04.09 04:30 
Die Analyse der Daten kann man auch gut in Delphi machen, nur die Geschwindigkeit mag etwas langsamer sein, hochoptimierter Assemblercode ist da sicher am schnellsten. Aber dafür muss man auch die entsprechenden Kenntnisse haben. Es ist nicht so einfach nicht nur Assemblercode zu schreiben sondern auch welchen zu schreiben, der schneller als Delphicode ist. Deshalb: Optimiere lieber erst einmal deinen Delphicode und schau wie schnell das läuft. ;-)

Letztlich musst du versuchen entsprechende Signaturen zu identifizieren und dann entsprechend des vermutlich vorgefundenen Formates zu schauen ob du gültige Daten findest. Das musst du am besten objektorientiert und modular aufbauen um dir die Arbeit zu erleichtern, denn sonst musst du für jedes Format vieles mehrfach schreiben.