請問如何將字串LOAD到AnsiString中? |
尚未結案
|
superlarry
一般會員 發表:10 回覆:22 積分:6 註冊:2002-10-04 發送簡訊給我 |
因為我把檔案讀到char *buf中了…
而我希望(AnsiString)Edit1->Text去讀取buf[10]以後的10個值…
我原本以為AnsiString::LoadStr可以做到…
但發現AnsiString::LoadStr並不是這樣用的…
找了一下help…好像AnsiString也沒提供這樣的功能… 我現在的解決方法是:
char key[11];
strncpy(key,&buf[10],10);
key[11]=0;//結束字元
Edit1->Text=key; 可是覺得不漂亮…
不曉得各位大大有沒有比較好的方法?
感激不盡!!
|
Royce520
高階會員 發表:18 回覆:157 積分:100 註冊:2002-09-13 發送簡訊給我 |
superlarry 你好,
AnsiString 有一個建構子, 是這樣的
__fastcall AnsiString(const char* src, unsigned int len);
所以你可以這樣用:
char vBuf1[64] = "this is a test for k.top friends!";
AnsiString sTest1(vBuf1+10, 10);
int nLen1 = sTest1.Length(); // 檢查長度
Edit1->Text = sTest1;
或者這樣做:
AnsiString sTest2 = "this is a test for k.top friends!";
Edit1->Text = sTest2.SubString(11, 10); // index 從 1 開始喔 不知道這樣符不符合呢
------
不要忘記呼吸,不要忘記編程! ∩__∩ |
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
|
superlarry
一般會員 發表:10 回覆:22 積分:6 註冊:2002-10-04 發送簡訊給我 |
|
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
引言: 因為我只是要buf[10]後面的10個字元… 因為整個buf是由檔案讀進來的… (lcsboy大大…就是你教我的那一招啊!) char *buf; buf=(BYTE *)TMS->Memory; 所以buf[10]後面10個字元不一定是null結束… 所以用String Str=buf 10; 可能不行… 後來我自己想到一個方法… 就是先把buf[21]的值記下來… 然後改為null… 再把buf[21]的值改回去… 這樣就快多了!戲法會變, 各人巧妙有所不同. 恭喜你能抓住要點, 這樣子寫程式就無往不利啦 大家一起共勉之 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |