作者acosy (acosy)
看板Visual_Basic
標題Re: [VB6 ] duplicate binary file
時間Fri Aug 5 12:46:19 2005
感激不盡! 但是發現處理比較大檔案時,
程式會當掉, 且頗吃資源, 是因為沒有用 buffer 就邊讀編寫
的關係嗎?
另外, 表單中不知如何實現動態文字,
想呈現 xx% 的進度, 卻到 100 % 才顯現出來.
※ 引述《fumizuki (小獅子)》之銘言:
: ※ 引述《acosy (acosy)》之銘言:
: : 一個簡單的二進位檔複製..
: : ------
: : open "c:\xxx.1" for binary access read as #1
: : open "c:\xxx.2" for binary access write as #2
: : do until eof(1)
: : get #1, ,a
: : put #2, ,a
: : loop
: : close #1
: : close #2
: : --------
: : 結果 xxx.2 總會比 xxx.1 多出 1 bytes, why??
: 多出一個 chr(0) ,不知道為何讀到 0 ... eof才會是true @@
: 下面兩種方法就不會有這問題
: 1)
: Dim a As Byte
: Open "c:\xxx.1" For Binary As #1
: Open "c:\xxx.2" For Binary As #2
: Do While Loc(1) < LOF(1)
: Get #1, , a
: Put #2, , a
: Loop
: Close
: 2)
: Dim a() As Byte
: Open "c:\xxx.1" For Binary As #1
: Open "c:\xxx.2" For Binary As #2
: Redim a(LOF(1) - 1)
: Get #1, , a
: Put #2, , a
: Close
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.60.197.145
推 mouse26:迴圈裡插入一行doevents即可 210.58.40.212 08/05
推 fumizuki:文字很好表現吧 迴圈執行時間很長的話就加樓上 210.58.156.43 08/05
推 fumizuki:所說的 210.58.156.43 08/05
推 fumizuki:第二個方法只適合小的檔案~ 210.58.156.43 08/05