You can still use the method - in fact, at present you are writing byte by byte directly to the hard-disk which is horribly slow. Instead, write the data to a memory bank, and then save the bank directly to disk. Again, not tested (as I don't have BlitzPlus/Blitz3D installed), but here is the BlitzGet() function tweaked:
Edit: Updated! I've downloaded and installed Blitz3D for you, and have tested the above code. It seems to work far faster than the old code.
Function BlitzGet2(path$) If Left(path$, 7) = "http://" Then path$ = Right(path$, Len(path$) - 7) inst = Instr(path$, "/") If inst Then host$ = Left(path$, inst - 1) path$ = Right(path$, Len(path$) - inst + 1) Else host$ = path$ path$ = "/" EndIf If out$ = "" Then If path = "/" Then out$ = "Unknown file.txt" Else For findSlash = Len(path$) To 1 Step - 1 testForSlash$ = Mid(path$, findSlash, 1) If testForSlash$ = "/" Then out$ = Right(path$, Len(path$) - findSlash) Exit EndIf Next If out$ = "" Then out$ = "Unknown file.txt" EndIf EndIf tcp = OpenTCPStream(host$, 80) If tcp Then WriteLine tcp, "GET " + path$ + " HTTP/1.1" WriteLine tcp, "Host: " + host$ WriteLine tcp, "User-Agent: unknown" WriteLine tcp, "Accept: */*" WriteLine tcp, "" Repeat header$ = ReadLine(tcp) reply$ = "" inst = Instr(header$, ": ") If inst Then reply$ = Left(header$, inst + 1) If Lower(reply$) = "content-length: " Then toread = Right(header$, Len(header$) - Len(reply$)) Until header$ = "" Or Eof(tcp) If toread > 0 Then Local tmpBank = CreateBank(toread) Local i% = 0, tmpReadAvail% Repeat ;========================================================================================== If Eof(tcp) Then ResizeBank(tmpBank, i) Else tmpReadAvail = Min(ReadAvail(tcp),toread-i) ReadBytes( tmpBank, tcp, i, tmpReadAvail) i = i + tmpReadAvail EndIf ;========================================================================================== Until i >= BankSize(tmpBank) file = WriteFile(out$) WriteBytes( tmpBank, file, 0, BankSize(tmpBank) ) CloseFile file If BankSize(tmpBank) <> toread Then RuntimeError "Download failed!" FreeBank( tmpBank ) EndIf CloseTCPStream tcp Else RuntimeError "Failed to connect" EndIf End Function Function Min( intOne, intTwo ) If intOne < intTwo Then Return intOne Else Return intTwo End Function
Edit: Updated! I've downloaded and installed Blitz3D for you, and have tested the above code. It seems to work far faster than the old code.