2010-04-25 44 views
4

我創建了一個類似於記事本的應用程序,如果我將1MB文件加載到文本框中,大約需要1分鐘。 Visual Studio Binary編輯器在幾分之一秒內顯示行,十六進制和ascii版本。他們如何快速地將數據輸入到文本框? 感謝十六進制編輯器如何快速顯示數據?

+0

標準文本框控件不喜歡包含大量數據。順便提一下,舊版本的記事本與你的應用程序有很多相同的問題;曾經試圖用它來打開一個多MB文件? – 2010-04-25 14:38:55

+0

一分鐘?你如何加載它?一次一個字節? – 2010-04-25 14:56:30

回答

9

他們只讀提供足夠的空間來顯示屏幕上顯示內容可見。換句話說,如果您的用戶界面一次只能顯示100個字節,則只需讀取100個字節即可填滿屏幕。如果用戶滾動窗口,則必須讀取其他字節以填充缺失的部分。

+0

笑大家刪除自己的崗位:-P – jmasterx 2010-04-25 14:11:19

+0

好讀書是沒有問題的,它的winGui是...感謝儘管 – jmasterx 2010-04-25 14:16:33

+1

使用另一個GUI窗口小部件 - 有些人會觸發事件時,需要更多的數據 – 2010-04-25 14:43:43

0

我的意思不是粗魯。只是希望能夠幫助和澄清: 您在答覆中提到,閱讀不是問題,而win32傢伙是問題所在。但我真的懷疑這一點。第一

第一件事,比起任何相關的GUI光盤訪問是紀念碑式的慢。 即使你設置了一個編輯框來包含一些非常大量的文本,它本質上只是一個memcpy和一個重繪。

涉及到一些處理。該字符串必須通過查找換行符。如果你是單詞包裝,它將不得不繼續添加下一個字母的寬度,直到超出允許的寬度。但是與從光盤上讀取相比,這兩者都相當快。

那麼你真的,真的相信這是一個GUI速度問題,而不是一個讀書的問題?你能提供兩個時間嗎?我覺得很難相信GUI是這裏的問題......

+0

那爲什麼在cmd中我能夠在第二個輸出?我還在緩衝區填滿之後添加了一個消息框,並且這個速度非常快。我承諾這是因爲GDI太糟糕而導致殺死它的繪畫事件。 – jmasterx 2010-05-05 12:00:19

+0

這對我來說很難在沒有看到您的代碼的情況下回答。可能會有一百萬件事情放慢速度。我不能猜測發生了什麼事。 如果您一次讀取一個字節並附加您正在執行的許多memcpys,散步,文字換行測試和塗料的字節。那會很慢。但即使如此,問題並不是因爲GUI太慢。這是因爲你告訴它做1,048,575次應該完成的工作(1MB文件)。 – ProgramMax 2010-05-05 18:49:55