Wie Kopierdauer berechnen und anzeigen

Anfängerfragen zum Programmieren mit PureBasic.
Andy Dee
Beiträge: 5
Registriert: 02.10.2006 12:38
Wohnort: Kiel
Kontaktdaten:

Beitrag 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... :shock:

Jaja, zu den nicht immer guten aber alten DOS-Zeiten war manches anders und einfacher... :roll:

Gruß
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
HeX0R
Beiträge: 3040
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Code: Alles auswählen

Mem = AllocateMemory(16384) ; 64 KB
:shock:
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

HeX0R hat geschrieben:

Code: Alles auswählen

Mem = AllocateMemory(16384) ; 64 KB
:shock:
Sry, 64 KL :mrgreen:
Dann eben so um die 65000, ist doch wurscht
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

65536...

die zweierpotenzen bis 2^16 sollte man aber wirklich im kopp haben....
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> die zweierpotenzen
Hab so viel Potenzen :lol:
Seit es KiBi und ähnliches gibt, schätze ich solche Sachen nur noch, die
Festplattenhersteller machens auch nicht anders
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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!
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
HeX0R
Beiträge: 3040
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Bild
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

:lol:
JWD vermisse ich noch :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten