Datei mit fester Größe erstellen
-
- Beiträge: 123
- Registriert: 27.03.2006 09:45
Datei mit fester Größe erstellen
Hi zusammen,
gibt es eine Möglichkeit eine Datei mit einer bestimmten Größe (z.B. 5 MB, ...) zu erstellen?
Hintergrund:
Ich mache öfters Speicher Tests und dort muss die Festplatte nur noch
eine bestimmten freien Speicherplatz besitzen. Anstatt dies immer manuell
zu machen würde ich dies gerne über ein kleines Tool machen.
Danke + Gruß,
Daniel
gibt es eine Möglichkeit eine Datei mit einer bestimmten Größe (z.B. 5 MB, ...) zu erstellen?
Hintergrund:
Ich mache öfters Speicher Tests und dort muss die Festplatte nur noch
eine bestimmten freien Speicherplatz besitzen. Anstatt dies immer manuell
zu machen würde ich dies gerne über ein kleines Tool machen.
Danke + Gruß,
Daniel
Try this:
Karl
-- bobobo konnte nicht wiederstehen wg. unten
Ro's Code macht außerdem nicht die gewünschte Dateigröße
Code: Alles auswählen
*Mem = AllocateMemory(5 << 20)
If *Mem
CreateFile(1, "c:\MyFile.dat")
WriteData(1, *mem, 5 << 20)
CloseFile(1)
EndIf
-- bobobo konnte nicht wiederstehen wg. unten

The Kopyright Liberation Front also known as the justified ancients of Mumu!
PB 5.X
PB 5.X
beispiel 1MB
Die Datei besteht nur aus nullen.
@karl mein code ist kleiner aber sonst
Code: Alles auswählen
CreateFile(1,"d:/test.pop")
k=1024 ;1 Kilobyte
For a=0 To k*k
WriteByte(1,0)
Next
CloseFile(1)
@karl mein code ist kleiner aber sonst

Purebasic 5.0 32bit und 64 bit
I'm back from hell
I'm back from hell
-
- Beiträge: 123
- Registriert: 27.03.2006 09:45
Hi Karl,
super cool ... mehr muss man dazu garnicht machen. Das finde ich gut
Eine weitere Frage hätte ich jedoch noch.
Wenn ich mir die Größe der Datei unter Windows anschaue (Datei > rechte Maustaste | Eigenschaften) ...
welche Größe ist die korrekte? Also
- Size oder
- Size on Disc
Vielen Dank schon einmal für Deine schnelle Hilfe.
Gruß,
Daniel
super cool ... mehr muss man dazu garnicht machen. Das finde ich gut

Eine weitere Frage hätte ich jedoch noch.
Wenn ich mir die Größe der Datei unter Windows anschaue (Datei > rechte Maustaste | Eigenschaften) ...
welche Größe ist die korrekte? Also
- Size oder
- Size on Disc
Vielen Dank schon einmal für Deine schnelle Hilfe.
Gruß,
Daniel
Die Größe auf dem Datenträger hängt mit der Größe eines Blocks zusammen:
echteDateiGröße <= GrößeaufDatenträger
wegen Speichersegmentierung (das Problem heisst interne Fragmentierung).
Benutzt wird also die größere Größe.
Gruß Karl
echteDateiGröße <= GrößeaufDatenträger
wegen Speichersegmentierung (das Problem heisst interne Fragmentierung).
Benutzt wird also die größere Größe.
Gruß Karl
The Kopyright Liberation Front also known as the justified ancients of Mumu!
PB 5.X
PB 5.X
Karl, deine Blocks und die Speichersegmentierung nennt man auch Cluster 

PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
Stimmt das so?
Es ist doch so...
- Die "Größe" bezieht sich auf den Inhalt der Datei, also die Bytes
- Die "Größe auf Datenträger" zeigt, wieviel Speicherplatz die Datei insgesammt zum Speichern auf dem Medium braucht.
...oder?
- Die "Größe" bezieht sich auf den Inhalt der Datei, also die Bytes
- Die "Größe auf Datenträger" zeigt, wieviel Speicherplatz die Datei insgesammt zum Speichern auf dem Medium braucht.
...oder?

-
- Beiträge: 123
- Registriert: 27.03.2006 09:45
Hi zusammen,
vielen Dank für die Hilfe. Das funxt einwandfrei.
Ich habe nur noch folgendes Problem:
z.B. die HDD hat noch 4381 MB frei
Wenn ich das mit dem Taschenrechner ausrechne, um die Bytes zu erhalten
bekomme ich 4381 MB = 4381 * 1024 * 1024 = 4593811456 Bytes heraus.
Wenn ich das nun im Programm ausprobiere, erhalte ich immer:
4381 MB = 4381 * 1024 * 1024 = 298844160
Ich gehe mal davon aus, dass der Datentyp LONG nicht dafür geeignet ist.
Welche höheren Datentypen kann ich denn für PB sonst noch nutzen?
Im Handbuch wird sich nämlich nur auf Byte, Word, Long, Float.
Danke + Gruß,
Daniel
vielen Dank für die Hilfe. Das funxt einwandfrei.
Ich habe nur noch folgendes Problem:
z.B. die HDD hat noch 4381 MB frei
Wenn ich das mit dem Taschenrechner ausrechne, um die Bytes zu erhalten
bekomme ich 4381 MB = 4381 * 1024 * 1024 = 4593811456 Bytes heraus.
Wenn ich das nun im Programm ausprobiere, erhalte ich immer:
4381 MB = 4381 * 1024 * 1024 = 298844160
Ich gehe mal davon aus, dass der Datentyp LONG nicht dafür geeignet ist.
Welche höheren Datentypen kann ich denn für PB sonst noch nutzen?
Im Handbuch wird sich nämlich nur auf Byte, Word, Long, Float.
Danke + Gruß,
Daniel
PB 4.0

bei PB 3.94 nimmste einfach .f (Float)
Code: Alles auswählen
;.q=quad-9223372036854775808 bis +9223372036854775807
test.q= 4381 * 1024 * 1024
Debug test

bei PB 3.94 nimmste einfach .f (Float)
Purebasic 5.0 32bit und 64 bit
I'm back from hell
I'm back from hell