Seite 5 von 6
Verfasst: 10.10.2006 11:41
von Andy Dee
Hm, ich habe unter DOS mal ein Kopierprogramm mittels PowerBaisc 3.2 geschrieben.
Zumindest unter DOS war es möglich, einen Speicherbereich im RAM zu definieren und zu reservieren, in den dann mittels einer DOS-API-Funktion 64 kByte eingelesen und entsprechend auch wieder ausgelesen und geschrieben werden konnten.
Gibt es so eine Möglichkeit nicht auch systemübergreifend für PureBasic?
Wenn ich eine 2,5 GB große Datei byteweise einlesen und schreiben soll, dann kann ich ja in Ruhe zwischenzeitlich arbeiten gehen...
Jaja, zu den nicht immer guten aber alten DOS-Zeiten war manches anders und einfacher...
Gruß
Verfasst: 10.10.2006 11:48
von ts-soft
Dann reserviere doch 64kb Speicher, lese mit Readdata, schreibe mit
Writedata, und dann den nächsten Block, mußte nur mitrechnen wann alles
geschrieben wurde. Das ist nun wirklich kein Problem.
// Nachtrag:
Ungetestet und unvollständig, nur als Anregung
Code: Alles auswählen
Procedure Progress(value)
;;;
EndProcedure
ReadFile = ReadFile(#PB_Any, "bla.txt")
WriteFile = CreateFile(#PB_Any, "dublikat.txt")
If ReadFile And WriteFile
Mem = AllocateMemory(16384) ; 64 KB
If Mem
Laenge = Lof(ReadFile)
While Laenge > 16384
ReadData(ReadFile, Mem, 16384)
WriteData(WriteFile, Mem, 16384)
Laenge - 16384
Progress(laenge)
Wend
ReadData(ReadFile, Mem, Laenge)
WriteData(WriteFile, Mem, Laenge)
CloseFile(ReadFile)
CloseFile(WriteFile)
FreeMemory(Mem)
EndIf
EndIf
Verfasst: 10.10.2006 12:34
von HeX0R
Verfasst: 10.10.2006 12:36
von ts-soft
HeX0R hat geschrieben:

Sry, 64 KL

Dann eben so um die 65000, ist doch wurscht
Verfasst: 10.10.2006 12:41
von Kaeru Gaman
65536...
die zweierpotenzen bis 2^16 sollte man aber wirklich im kopp haben....
Verfasst: 10.10.2006 12:45
von ts-soft
>> die zweierpotenzen
Hab so viel Potenzen
Seit es KiBi und ähnliches gibt, schätze ich solche Sachen nur noch, die
Festplattenhersteller machens auch nicht anders
Verfasst: 10.10.2006 13:03
von Kaeru Gaman
KiBi is eh der großte schwachsinn aller zeiten.
seit anbeginn der computerzeit hatte Kilo in diesem zusammenhang die bedeutung von 1024.
nach jahrzehnten merken das diese Hansel von der internationalen kommission,
und meckern: "Das dürft ihr nich, das is unser Präfix, sagt gefälligst was anderes."
dabei gehen sie absolut an der realität vorbei, weil 10-basierte zahlen in
der Programmierung absolut unnütz sind, kein mensch brauch sowas.
anstatt nun einfach zu sagen: "in einer 2-basierten umgebung wird die Bedeutung der Präfixe modifiziert"
saugen die sich neue präfixe aus den fingern, die nun alle verwenden sollen.
so was ähnliches würde schon früher probiert, als man den CPUs die möglichkeit gab,
im "Dezimal-Modus" zu rechnen.
dabei wurden von Hexadezimalzahlen nur die 0-9 ziffern verwendet,
jedes Nibble diente also zur darstellung einer Dezimalstelle statt einer Hexadezimalstelle.
also konnte man mit einem byte zahlen von 0-99 darstellen.
das war ein mißlungener versuch, die bytegrenzen sauber auf Dezimal zu beziehen.
diese neuen einheiten-präfixe sind ein ähnlich dämliches unterfangen,
und ehrlich gesagt, es interessiert mich nicht die bohne,
bei mir isn KiloByte 2^10, Megabyte 2^20, Gigabyte 2^30,
und ganz sauber die grenze des 32bit-adressraums 4GB,
und nicht bescheuerte 4,294967296 GB!
Verfasst: 10.10.2006 13:04
von HeX0R
Verfasst: 12.10.2006 12:22
von Kaeru Gaman
Verfasst: 12.10.2006 13:10
von ts-soft
JWD vermisse ich noch
