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

請問一下AnsiString 讀入Struct裡

尚未結案
Schuamcher
一般會員


發表:30
回覆:42
積分:14
註冊:2004-11-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-24 12:13:12 IP:210.68.xxx.xxx 未訂閱
請問一下我有一個text檔裡面有文字,請問一下當我程式這樣寫的時侯,為什麼Test會出現類似X0的記憶體碼,我該如何寫呢(程式碼如下) typedef struct{ char TAMCode[2]; char Time[16]; char ID[10]; char B1P [9]; char B1Q [8]; char B2P [9]; char B2Q [8]; char B3P [9]; char B3Q [8]; char B4P [9]; char B4Q [8]; char B5P [9]; char B5Q [8]; char A1P [9]; char A1Q [8]; char A2P [9]; char A2Q [8]; char A3P [9]; char A3Q [8]; char A4P [9]; char A4Q [8]; char A5P [9]; char A5Q [8]; }Best5_Type; void __fastcall TForm1::Button1Click(TObject *Sender) { Best5_Type BestP_5; TIniFile *pIniFile = new TIniFile(ExtractFilePath(Application- >ExeName) "TestText.ini"); AnsiString TestText = pIniFile->ReadString("Test","OpTest",""); memmove(&BestP_5,&TestText,198); AnSiString Test = AnsiString(BestP_5.B1p) 文字如下(521005050000036465TXO06200D500001950000000004000019000000000400000185000000018300001800000000161000017500000002700000200000000018800002050000000095000021000000001370000215000000002500002200000000033) 謝謝各位高手的幫忙
jackyung
一般會員


發表:22
回覆:46
積分:13
註冊:2004-01-24

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-24 13:02:39 IP:218.171.xxx.xxx 未訂閱
TestText 應該用 TestText.c_str() 方式取得字串吧
smartboss
初階會員


發表:19
回覆:93
積分:42
註冊:2004-12-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-24 16:02:54 IP:211.76.xxx.xxx 未訂閱
引言: 請問一下我有一個text檔裡面有文字,請問一下當我程式這樣寫的時侯,為什麼Test會出現類似X0的記憶體碼,我該如何寫呢(程式碼如下) typedef struct{ char TAMCode[2]; char Time[16]; char ID[10]; char B1P [9]; char B1Q [8]; char B2P [9]; char B2Q [8]; char B3P [9]; char B3Q [8]; char B4P [9]; char B4Q [8]; char B5P [9]; char B5Q [8]; char A1P [9]; char A1Q [8]; char A2P [9]; char A2Q [8]; char A3P [9]; char A3Q [8]; char A4P [9]; char A4Q [8]; char A5P [9]; char A5Q [8]; }Best5_Type; void __fastcall TForm1::Button1Click(TObject *Sender) { Best5_Type BestP_5; TIniFile *pIniFile = new TIniFile(ExtractFilePath(Application- >ExeName) "TestText.ini"); AnsiString TestText = pIniFile->ReadString("Test","OpTest",""); memmove(&BestP_5,&TestText,198); AnSiString Test = AnsiString(BestP_5.B1p) 文字如下(521005050000036465TXO06200D500001950000000004000019000000000400000185000000018300001800000000161000017500000002700000200000000018800002050000000095000021000000001370000215000000002500002200000000033) 謝謝各位高手的幫忙
大叔您這樣錯了喔,您應該要如 jackyung 所說的那樣才對喔,且您要的應該是分段的資料,所以您的 AnSiString Test = AnsiString(BestP_5.B1p) 這部份可能也要修改一下
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        Best5_Type BestP_5;
        TIniFile *pIniFile = new TIniFile(ChangeFileExt(Application->ExeName, ".ini" ));            AnsiString TestText = pIniFile->ReadString("Test","OpTest","");
        memmove(&BestP_5,TestText.c_str(),198);
        Edit1->Text = AnsiString(BestP_5.Time,sizeof(BestP_5.Time));    }
您試試看您要的是不是這樣呢?? 蝦程速,有了 K.TOP 尊好。
ubong
一般會員


發表:2
回覆:42
積分:23
註冊:2002-10-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-24 23:28:43 IP:218.163.xxx.xxx 未訂閱
struct 中所設定的字串應為每一個字串預留字串的結尾’\0’ 例如char id[10]; 該是身分證號碼吧,身分證號碼共10碼,所以應設為 char id[11]; 這是C語言儲存字串規則,以’\0’做為字串結束碼,初學者很容易忽略此點。 ubong
------
ubong
Schuamcher
一般會員


發表:30
回覆:42
積分:14
註冊:2004-11-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-03-25 09:31:59 IP:210.68.xxx.xxx 未訂閱
謝謝smartboss、jackyung 、ubong的幫忙,感恩
Schuamcher
一般會員


發表:30
回覆:42
積分:14
註冊:2004-11-18

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-03-25 10:46:14 IP:220.130.xxx.xxx 未訂閱
那麼再請問一下,如果Structure改為 typedef struct{ AnsiString TAMCode[2]; AnsiString Time[16]; AnsiString ID[10]; float B1P ; int B1Q ; float B2P ; int B2Q ; float B3P ; int B3Q ; float B4P ; int B4Q ; float B5P ; int B5Q ; float A1P ; int A1Q ; float A2P ; int A2Q ; float A3P ; int A3Q ; float A4P ; int A4Q ; float A5P ; int A5Q ; }Best5_Type; 字串仍然一樣.(521005050000036465TXO06200D500001950000000004000019000000000400000185000000018300001800000000161000017500000002700000200000000018800002050000000095000021000000001370000215000000002500002200000000033)只是將之前的char轉成(int及float)請問一下我該如何寫能使效率最快,因為資料量很大,也需要速度,謝謝各位高手的幫忙
系統時間:2024-05-19 19:46:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!