[問題] 請問MFC的listbox與editbox顯示大量data問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++ MFC
問題(Question):
目前的任務是讀取一個純文字檔,以任意方是顯示在Dialog上,
我試了兩個: 用string暫存列data
1. 用list box: 遇到換符號或是eof,依序用addstring加入一列一列的data
2. 用edit box: 用SetWindowText直接將字串顯示在edit box中
當資料量不大的時候如此使用沒有問題。
問題:(資料量大(文件內容很大))
1. 用list box的時候,因為筆數太多(太多行),
不斷addstring後,會突然有後面的data被插到前面的list中,
不知道是什麼問題...
2. 用edit box的時候,因為檔案實在太大,不確定是否為string發生了問題,
string我是用char一個一個慢慢黏起來的,
在SetWindowText後,edit box一片空白,什麼也顯示不出來。
餵入的資料(Input):
20000筆(每筆14欄位的)左右的資料庫資料文字檔
預期的正確結果(Expected Output):
dialog上顯示的文字檔內容和文字檔中的一樣,任一方式都可。
我想了兩種,list box或edit box所顯示的data該和文字檔中的一樣。
錯誤結果(Wrong Output):
list box顯示行順序與文件不同
edit box沒有顯示東西
程式碼(Code):(請善用置底文網頁, 記得排版)
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.251.192.114
→
03/13 00:14, , 1F
03/13 00:14, 1F
※ 編輯: prjryu 來自: 111.251.192.114 (03/13 00:20)
推
03/13 11:32, , 2F
03/13 11:32, 2F
→
03/13 11:33, , 3F
03/13 11:33, 3F
後來發現另一種方法,用表格的方式顯示就沒問題了,
物件名稱是是"List Control"
用.SetColumn可以設定屬性欄,
用.InsertItem可以增加列的第一筆data,
用.SetItemText可以設定列data,
如果要從表格取出資料的話,只要用GetItemText就可以了,
用起來非常方便,不會有資料太大而顯示出錯的問題。
謝謝大家的幫助,也希望這篇文章有機會幫助到遇到類似問題的版友們。
※ 編輯: prjryu 來自: 111.251.219.239 (03/14 00:24)
推
03/14 09:48, , 4F
03/14 09:48, 4F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章