網絡傳輸(FTP)問題
2024-07-21 02:16:03
供稿:網友
 
dim buffer as string
dim buffersize as integer
dim filelength as long, superbuffer as long
dim percentdone as long, b as integer
open xfilename for binary access read as #i         'open the file to read
        filelength = lof(i)
        if lof(i) <> 0 then
            do while not eof(i): doevents
                if filelength - loc(i) < buffersize then
                    let buffersize = filelength - loc(i)
                    if buffersize = 0 then goto done
                end if
                
                buffer = space(buffersize)
                get #i, , buffer
                
                superbuffer = superbuffer + len(buffer)
                debug.print "buffersize=" & buffersize & " superbuffer=" & superbuffer & " loc(" & i & ")=" & loc(i)
            loop
        end if
close #i
//立即窗口打印結果:
buffersize=2048 superbuffer=2048 loc(1)=2188
buffersize=2048 superbuffer=4096 loc(1)=5146
.......
.......
buffersize=2048 superbuffer=22571008 loc(1)=32422628
buffersize=56 superbuffer=22571064 loc(1)=32422690
//問題:
文件大小實際是30.9m,但最后只能傳輸到28.1m就結束了,問題出在文件讀取的位置loc(1)和實際傳輸的文件大小不同步,在
if filelength - loc(i) < buffersize then
   let buffersize = filelength - loc(i)
   if buffersize = 0 then goto 結束過程
end if
這個過程判斷時及早結束讀取。
請各位大俠指點,如能解決本人不勝感激,必有高分酬謝!
可將解決方法發送本人郵箱:[email protected] ,也可直接寫到這里,謝謝各位!