www.mikrocontroller.net

Forum: PC-Programmierung SD-Karte auslesen


Autor: Richi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ich möchte gerne eine SD-Karte über VisualBasic.net auslesen, aber nicht 
die Files sondern die einzelnen Bytes von der Karte direkt.

Giebt es eine einfache Lösung?

Gruß
Richi

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja; unter Windows kann die Karte auch als sogenanntes "Raw Device" 
angesteuert werden. Das verhält sich dann wie eine Datei, die genau so 
groß ist wie die SD-Karte; bei einer 512MB-Karte also 512MB.

Wie man Raw-Devices anspricht, ist in der MSDN-Dokumentation zur 
Win32-API-Funktion CreateFile beschrieben:
http://msdn.microsoft.com/en-us/library/aa363858%2...
... genauers im Abschnitt Physical Disks and Volumes

Autor: Richi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deinen Tipp,

werde aber aus der Website nicht schlau. Wie realisiert man so etwas in 
VB?

Könntest du mir einen verständlichen Code posten?

Gruß
Richi

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie man aus VB heraus Win32-API-Funktionen nutzt, ist auf zig Webseiten 
beschrieben. Darüber etwas zu finden, sollte nicht schwierig sein.

Mit der Internetsuchmaschine der Wahl dauert es nur ein paar Sekunden, 
um nach "VB CreateFile" zu suchen und das hier zu finden:

http://www.vbarchiv.net/api/details.php?id=createfile

Ab jetzt solltest Du selber laufen lernen.

Autor: Richi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mitlerweile habe ich herausgefunden, dass es unter VB.net mit
System.IO.File.Create
geht.

Doch wenn ich als Pfad mein Laufwerk ("..\.\E:") angebe, kommt eine 
Fehlermeldung(Unbekanntes Format).

Wie muss ich das eingeben?

Autor: Di Pi (drpepper) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast das Klopapier doch schon bekommen... Wischen musst du allein ;)

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richi schrieb:
> Doch wenn ich als Pfad mein Laufwerk ("..\.\E:") angebe, kommt eine
> Fehlermeldung(Unbekanntes Format).

Wo im von mir verlinkten MSDN-Text steht diese Schreibweise?

Da steht "\\.\E:" bzw. "\\.\PhysicalDrive1"

Autor: Richi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK tschuldigung dass ich mich verlesen habe, aber jetzt kommt ne meldung 
dass Win32 Geräte nicht geöffnet werden können.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tatsächlich?

Autor: Richi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja

ich benutze unter VB.net

System.IO.File.Create("\\.\E")

und dann kommt folgende Meldung:

FileStream öffnet keine Win32-Geräte, z.B. Datenträgerpartitionen oder 
Bandlaufwerke. "\\.\" darf im Pfad nicht verwendet werden.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, dann wirst Du herausfinden müssen, wie man die Win32-API-Funktion 
CreateFile aufruft, statt des Dir von Deiner Programmiersprache zur 
Verfügung gestellten Quarks.

Autor: Richi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das heisst..

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das scheint zu bedeuten, daß Dich das Problem oder die Lösung nicht 
interessiert.

Wenn es Dich interessieren würde, hättest Du schon längst die Dir zur 
Verfügung stehenden Hilfsmittel bemüht, um herauszufinden, wie man die 
von mir angesprochenen Dinge macht.

Ich habe Dir ausreichend Hinweise gegeben, nun krieg den Hintern hoch 
und hilf Dir selbst.

Autor: Oliver R. (superberti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Alternativ kannst Du aber auch "dd" für Windows benutzen. Das dürfte Dir 
viel Arbeit abnehmen, da Du damit sektorweise raw-devices auslesen 
kannst und Dir die Daten in eine Datei schreiben lassen kannst (und 
umgekehrt). Dankenswerterweise lässt sich das Programm auf "removeable 
devices" beschränken, da man sich sonst auch ruck-zuck die Festplatte 
mal zerlegt hat. Achja, Vista und W7 möchten dafür Admin-Rechte!
Wie man Komandozeilenprogramme aus VB.NET startet und deren Output 
bekommt, verrät Dir sicherlich das MSDN.

Gruß,

Autor: Richi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Oliver

werde mir morgen mal deine Lösung anschauen.
Hoffe dass es entlich mal geht.

Gruß
Richi

Autor: Richi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Funktioniert super.

Danke

Gruß
Richi

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.