Posted: Sun Jan 22, 2006 3:31 pm
lol. 
http://www.purebasic.com
https://www.purebasic.fr/english/
Code: Select all
if createfile(0,"blah.txt")
writedata(*sdasdads,length)
;now show progress- but how do i know how many bytes were written?
closefile(0)
Code: Select all
#MemSize = 30594500
MyMem = AllocateMemory(#MemSize)
*byte.byte = MyMem
For I = 0 To #MemSize ; Fill with some readable characters
*byte\b = (I % 100)+32
*byte + 1
Next
OpenWindow(0, 0, 0, 400, 100, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "")
CreateGadgetList(WindowID())
ProgressBarGadget(0, 10, 10, 300, 20, 0, 100, #PB_ProgressBar_Smooth)
ButtonGadget(10, 10, 50, 97, 25, "Start")
TextGadget(20, 120, 55, 100, 20, "Press start")
Procedure UpdateStatus(Percent.l)
SetGadgetState(0, Percent)
SetGadgetText(20, Str(Percent)+"%")
EndProcedure
Procedure WriteToFile(Pointer.l, Length.l)
Protected I
Protected P
Protected O
P = Pointer
O = Int(Length * (I+1) / 100.0)
For I = 0 To 99
WriteData(P, O)
UpdateStatus(I+1)
P + O
Next
WriteData(P, Length-(P-Pointer))
DisableGadget(10, 0)
EndProcedure
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadgetID()
Case 10
DisableGadget(10, 1)
SetGadgetText(20, "0%")
CreateFile(0, "c:\_hopethisisjunk.txt")
WriteToFile(MyMem, #MemSize)
CloseFile(0)
EndSelect
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver