全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1235
推到 Plurk!
推到 Facebook!

多筆資料儲檔,若新有增欄位如何處理?

答題得分者是:Stallion
kenneth_c
一般會員


發表:5
回覆:8
積分:2
註冊:2007-08-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-08-06 14:02:28 IP:218.162.xxx.xxx 訂閱
請教各位前輩: 小弟原本用一個檔「set.dat」,來儲存struck定義出Metting資料總Total為4筆 開檔時再將每筆依序讀到Mset_b[i]這個陣列中,之後程再去讀對應資料,但常因欄位增加、減少而要隨之去修改資料很麻煩ex:(多加一p6),則在開檔取資料時,取的資料第5欄位的資料對應就都錯了,不知有何方式可處理?或如何處較佳?希望各位前輩給於幫忙,謝謝!! const Total=4; struct Msetting_struct {   I32 p1,p2,p3,p4,p5; };    Msetting_struct Msetting,Mset_b[Total];    FILE *F_mptr; //---------------------------------------------------------------------------           char *f_n1=".\\setting\\set.dat";//儲存的檔案         F_mptr=fopen(f_n1,"r+");         for(int i=0;i
kenneth_c
一般會員


發表:5
回覆:8
積分:2
註冊:2007-08-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-08-06 14:11:06 IP:218.162.xxx.xxx 訂閱
上面的程式碼有部分不小心被刪,以下重貼
<textarea cols="60" rows="10" class="cpp" name="code"> const Total=4; struct Msetting_struct { I32 p1,p2,p3,p4,p5; }; Msetting_struct Msetting,Mset_b[Total]; FILE *F_mptr; //--------------------------------------------------------------------------- char *f_n1=".\\setting\\set.dat";//儲存的檔案 F_mptr=fopen(f_n1,"r "); for(int i=0;i <=Total;i ) { fseek(F_mptr,sizeof(Msetting)*(i),0); fread(&Msetting,sizeof(Msetting),1,F_mptr); Mset_b[i]=Msetting ; } </textarea>
編輯記錄
Stallion 重新編輯於 2007-08-06 14:30:06, 註解 無‧
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-08-06 14:26:23 IP:122.124.xxx.xxx 未訂閱
請看版規來張貼你的程式碼
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-08-06 14:31:51 IP:211.22.xxx.xxx 未訂閱
別無他法~
反正你資料結構的struct內的成員都知道了,就寫個轉換資料程式吧!
kenneth_c
一般會員


發表:5
回覆:8
積分:2
註冊:2007-08-03

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-08-08 10:57:24 IP:218.162.xxx.xxx 訂閱
謝謝Stallion大大的指教,因為我的筆數不會超過二十筆,但欄位或多或少會增加,所以我改用多檔儲存的方式先處理了。
若有其他較佳或不錯的方式可供參考,也各位前輩可提供一下。謝謝

系統時間:2024-05-02 11:20:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!