AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wechseldatenträger formatieren

Ein Thema von Rülps · begonnen am 3. Okt 2009 · letzter Beitrag vom 3. Okt 2009
Antwort Antwort
Rülps

Registriert seit: 26. Sep 2008
38 Beiträge
 
#1

Wechseldatenträger formatieren

  Alt 3. Okt 2009, 09:15
Hallo,

gibt es einen API Aufruf, der unter XP und Vista gültig ist und mit dem man beispielsweise einen USB Stick formatieren kann. Ob FAT oder FAT32 sollte als Parameter übergeben werden können?
*Doppel-Rülps*
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#2

Re: Wechseldatenträger formatieren

  Alt 3. Okt 2009, 09:28
Du kannst doch einfach den "DOS"-Format-Befehl mit den nötigen Parametern aufrufen.


Es gibt auch eine einfache "Komponente" dafür, leider finde ich diese grade nicht,
aber im Endefekt machte man da auch nichts anderes, außer FORMAT aufzurufen und dessen Ausgabe von der "Konsole" in ein Memo umzuleiten.

via CreateProcess aufrufen und die Standard-Output- und -Input-Handle entsprechend umgeleitet.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#3

Re: Wechseldatenträger formatieren

  Alt 3. Okt 2009, 09:37
Ich verwende fat32format.exe, das kann auch 2000GB grosse HDD mit FAT32 formatieren.

http://www.ridgecrop.demon.co.uk/ind...at32format.htm
http://www.ridgecrop.demon.co.uk/dow...at32format.zip
http://www.ridgecrop.demon.co.uk/dow...2formatsrc.zip
  Mit Zitat antworten Zitat
Rülps

Registriert seit: 26. Sep 2008
38 Beiträge
 
#4

Re: Wechseldatenträger formatieren

  Alt 3. Okt 2009, 09:39
Hallo,

dieser Möglichkeit bin ich mir bewusst. Aber vielleicht gibt es ja eine einfachere Möglichkeit durch einen API Aufruf. Ich habe schon gesucht und mich gewundert, nichts gefunden zu haben. Hintergrund ist, dass ein in C++ geschriebene kommerzielle DLL in einem Programm genutzt wird, welche die Formatierung durchführt. Hatte bisher in XP auch wunderbar funktioniert - nur unter VISTA dauert eine Schnellformatierung etwa 5 Minuten. Wenn man es mit VISTA Bordmitteln macht, dann höchstens 3 Sekunden.

EDIT: @hathor: Kann man dieses externe Programm in kommerziellen Produkten nutzen?
*Doppel-Rülps*
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#5

Re: Wechseldatenträger formatieren

  Alt 3. Okt 2009, 09:42
Zitat von Rülps:
Hallo,

dieser Möglichkeit bin ich mir bewusst. Aber vielleicht gibt es ja eine einfachere Möglichkeit durch einen API Aufruf. Ich habe schon gesucht und mich gewundert, nichts gefunden zu haben. Hintergrund ist, dass ein in C++ geschriebene kommerzielle DLL in einem Programm genutzt wird, welche die Formatierung durchführt. Hatte bisher in XP auch wunderbar funktioniert - nur unter VISTA dauert eine Schnellformatierung etwa 5 Minuten. Wenn man es mit VISTA Bordmitteln macht, dann höchstens 3 Sekunden.

EDIT: @hathor: Kann man dieses externe Programm in kommerziellen Produkten nutzen?
Musst Du gucken, was im Sourcecode steht:

// Fat32 formatter version 1.05
// (c) Tom Thornhill 2007,2008,2009
// This software is covered by the GPL.
// By using this tool, you agree to absolve Ridgecrop of an liabilities for lost data.
// Please backup any data you value before using this tool.
  Mit Zitat antworten Zitat
Rülps

Registriert seit: 26. Sep 2008
38 Beiträge
 
#6

Re: Wechseldatenträger formatieren

  Alt 3. Okt 2009, 09:49
Sehe erst jetzt, fat32format.exe besitzt keine Möglichkeit im FAT16 Format zu formatieren. Dass es das kann ist wichtiger, als dass es FAT32 kann.
*Doppel-Rülps*
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#7

Re: Wechseldatenträger formatieren

  Alt 3. Okt 2009, 09:58
Wofür brauchst Du FAT16?
Microcontroller?
Laut Sourcecode geht FAT16 auch:
.
Code:
typedef struct tagFAT_BOOTSECTOR32
{
    // Common fields.
    BYTE sJmpBoot[3];
    BYTE sOEMName[8];
    WORD wBytsPerSec;
    BYTE bSecPerClus;
    WORD wRsvdSecCnt;
    BYTE bNumFATs;
    WORD wRootEntCnt;
    WORD wTotSec16; // if zero, use dTotSec32 instead
    BYTE bMedia;
    WORD wFATSz16;
    WORD wSecPerTrk;
    WORD wNumHeads;
    DWORD dHiddSec;
    DWORD dTotSec32;
    // Fat 32/16 only
    DWORD dFATSz32;
    WORD wExtFlags;
    WORD wFSVer;
    DWORD dRootClus;
    WORD wFSInfo;
    WORD wBkBootSec;
    BYTE Reserved[12];
    BYTE bDrvNum;
    BYTE Reserved1;
    BYTE bBootSig; // == 0x29 if next three fields are ok
    DWORD dBS_VolID;
    BYTE sVolLab[11];
    BYTE sBS_FilSysType[8];

} FAT_BOOTSECTOR32;
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:54 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