這樣的字串問題要怎樣處理會比較快呢? |
答題得分者是:collonil
|
leeli
初階會員 發表:57 回覆:55 積分:27 註冊:2003-06-25 發送簡訊給我 |
Dears:
小弟現在我有一些字串資料要處理:輸入的資料長度不一定,但是如果長度不足32Byte,需要以0x00補足。然後字串最後要加上"0x0a0dL"當截止字元。
此類資料目前有114筆,所以小弟我宣告:
struct person_struct
{
String cmd_no,address
};
person_struct person[114];
這樣的陣列來先做處理。
可是,似乎加上0x00之後都會被截斷。請問有沒有什麼比較好的方式,能夠簡單的來處理這樣的問題呢? 小弟我是BCB的新手,若有發問一些蠢問題,敬請見諒。
對於各位的大力協助,感激不盡!
------
小弟我是BCB的新手,若有發問一些蠢問題,敬請見諒。 對於各位的大力協助,感激不盡! |
collonil
中階會員 發表:13 回覆:56 積分:63 註冊:2003-03-26 發送簡訊給我 |
|
leeli
初階會員 發表:57 回覆:55 積分:27 註冊:2003-06-25 發送簡訊給我 |
引言:0x00通常代表字串結束, 所以之後的資料會被截掉, 如果以空白(0x20)填補 未滿32 bytes的部分不知道能不能接受? 如果一定要0x00的話, 可能就無法以字串的方式處理了, 或許要用char陣列, 一byte一byte分開處理...Dear: 如果,我把AnsiString字串轉為傳統的字串陣列,如下: char temp[31]; strcpy(temp,(person[0].cmd_no).c_str()); 這樣的話,他字串之後是不是就為00了。還是,我自己要再自動填入? 小弟我是BCB的新手,若有發問一些蠢問題,敬請見諒。 對於各位的大力協助,感激不盡!
------
小弟我是BCB的新手,若有發問一些蠢問題,敬請見諒。 對於各位的大力協助,感激不盡! |
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
引言: 如果,我把AnsiString字串轉為傳統的字串陣列,如下: char temp[31]; strcpy(temp,(person[0].cmd_no).c_str()); 這樣的話,他字串之後是不是就為00了。還是,我自己要再自動填入?不需再另外處理, 白花時間. 引言: 可是,似乎加上0x00之後都會被截斷。請問有沒有什麼比較好的方式,能夠簡單的來處理這樣的問題呢?假如是寫入檔案,請用BINARY寫入. 寫入用 fopen("檔名","wb"); 讀出用 fopen("檔名","rb"); |
collonil
中階會員 發表:13 回覆:56 積分:63 註冊:2003-03-26 發送簡訊給我 |
引言: Dear: 如果,我把AnsiString字串轉為傳統的字串陣列,如下: char temp[31]; strcpy(temp,(person[0].cmd_no).c_str()); 這樣的話,他字串之後是不是就為00了。還是,我自己要再自動填入? 小弟我是BCB的新手,若有發問一些蠢問題,敬請見諒。 對於各位的大力協助,感激不盡!char temp[31] = {NULL}; strcpy(temp,(person[0].cmd_no).c_str()); 如果person[0].cmd_no長度小於31 bytes, 那temp最後會是0x00; 如果等於31 bytes, 那temp後不會是0x00; 如果大於31 bytes, 會超過temp的範圍, 蓋到其他資料... -- BCB學習中~~ |
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
|
leeli
初階會員 發表:57 回覆:55 積分:27 註冊:2003-06-25 發送簡訊給我 |
引言: 不好意思,剛刪才看到你這個東東,因為我一般都是會定義 struct person_struct { char cmd_no[12],address[20]; }; 再用BINARY檔存取很方便, 但你用 String 的話一定不是使用BINARY,可否再給我們多一點點的提示或程式片斷, 讓我們比較好猜.Dear: 因為,我的程式中有114筆資料需要給使用者修改內容,所以我是使用edit,TString的元件,來讓使用者修改。因此,我用string來儲存,以及處理(因為,除了要存資料外,需要另外再處理。ex.加上字串長度,及一些check sum等機制)。然後,因為資料處理完畢後,必須要再透過RS-232傳輸出去。因此才會有,長度不足要補0x00以及截止位元的問題。 小弟我寫程式的時間不長,因此只會使用一些土法煉鋼的技巧。煩請各位大大,多加指導~~ 小弟我是BCB的新手,若有發問一些蠢問題,敬請見諒。 對於各位的大力協助,感激不盡!
------
小弟我是BCB的新手,若有發問一些蠢問題,敬請見諒。 對於各位的大力協助,感激不盡! |
collonil
中階會員 發表:13 回覆:56 積分:63 註冊:2003-03-26 發送簡訊給我 |
引言: Dear: 因為,我的程式中有114筆資料需要給使用者修改內容,所以我是使用edit,TString的元件,來讓使用者修改。因此,我用string來儲存,以及處理(因為,除了要存資料外,需要另外再處理。ex.加上字串長度,及一些check sum等機制)。然後,因為資料處理完畢後,必須要再透過RS-232傳輸出去。因此才會有,長度不足要補0x00以及截止位元的問題。 小弟我寫程式的時間不長,因此只會使用一些土法煉鋼的技巧。煩請各位大大,多加指導~~ 小弟我是BCB的新手,若有發問一些蠢問題,敬請見諒。 對於各位的大力協助,感激不盡!那就先使用String儲存及處理, 送出前再轉成char陣列, 轉換時再加上補0x00的動作... -- BCB學習中~~ |
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |