我有一個二進制檔案,想從某個位元組開始,6個位元組6個位元組的開始讀出,每讀6個位元組,經過簡單處理后,按照一定的格式寫入一個TXT檔案中,然后再讀下一組6個位元組,然后再寫入........
以上功能我已經寫出來了,運行和結果也沒有錯誤。
目前我的問題是,時間運行的比較長,用timer了一下,大概需要用28秒鐘,能加快么?最快能有多快?
這個二進制檔案里的內容數量在我這算是中等,還有數倍于此的,用我的程式,不是要運行數分鐘了?不敢想象。
在這里想請問各位路過的大神,程式要怎么改才能加快這個TXT檔案的生成速度?能加快多少?最快能有多快?
在這里先叩謝各位大神。
我的程式和二進制檔案:
鏈接:https://pan.baidu.com/s/1JiruySQf903fZ24vetLK3w
提取碼:29tn
uj5u.com熱心網友回復:
處理完成后一次性寫入。uj5u.com熱心網友回復:
大神,求寫法。拜求。uj5u.com熱心網友回復:
建立一個byte陣列作為緩沖區,直接修改陣列內容,保存的時候直接存位元組陣列;也可以試試vb.net,也許會快一點;
uj5u.com熱心網友回復:
各位大神看過我的程式了,應該了解我的程式水平還在入門級別,只能達到按部就班的對檔案基本的讀寫水平,各位大神所提出的方法我還是不太理解如何去撰寫,萬望能幫我修改一下我的程式,讓我能對照真實案例去琢磨,學習和提高。另外,文本檔案還是需要生成的,要用來資料統計。謝謝并麻煩各位大神了。uj5u.com熱心網友回復:
你的“For q3”那段回圈中,有一段:If abc1 < 0 Then
abc1 = abc1 + 1
Else
abc1 = abc1 + 1
End If
無論abc1的值是什么,都是執行相同的操作。
你這個If陳述句豈不是多此一舉嗎!
其實你這個“慢”最根本的原因,是在“大回圈”中操作Text1 !!!!
把這個 “Text1.text”用一個字串變數代替,估計可以提升3倍的速度。
當然,這只是“簡單的修正”而已,要真正優化,不止于此。
若寫好了,你這“相同”的處理,從你的“28秒”減少到2秒以內,應該問題不大。
uj5u.com熱心網友回復:
我覺得用VB6的程式處理,肯定比用 .NET的程式處理快。
uj5u.com熱心網友回復:
我就知道,vb.net對大量字串操作的處理速度要比VB6快;
vb6就只有a=a & b,vb.net有stringbuffer,可以append;
uj5u.com熱心網友回復:
所言極是,大量操作控制元件肯定慢的uj5u.com熱心網友回復:
根本的問題在于你頻繁的一小塊一小塊的讀取資料,然后再一小塊一小塊的寫資料。大量的IO等待占用了時間。一口氣將資料讀到記憶體里來(你的檔案還不到1兆,記憶體吃得住),處理以后在記憶體里面拼接字串再一口氣寫到temp檔案里去。
你這個程式應該是秒級別甚至是毫秒級別的。
代碼連個縮進都沒有,變數用序號的懶得幫你改了。自己倒騰吧
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/18423.html
標籤:VB基礎類
上一篇:excel-vba求助
