txt一行一行讀檔 |
答題得分者是:RedSnow
|
andygiga
一般會員 發表:3 回覆:4 積分:1 註冊:2005-03-26 發送簡訊給我 |
|
supman
尊榮會員 發表:29 回覆:770 積分:924 註冊:2002-04-22 發送簡訊給我 |
您好:
不太曉得您要如何表示,所以提供相關的函數給您參考.
1.利用TStringList的LoadFromFile將檔案讀進來.
2.設立回圈將StringList.Strins[i],利用下面這各函數切割.
Procedure zCutStr(Src:String;var Target1,Target2:String;Key:String);overload;//將Src中有Key關鍵字的分割成兩個字串至Target1,Target2 Procedure zCutStr(Src:String;var Target1,Target2:String;Key:String);overload; var Len,iEnd:Integer; begin Len:=Length(Src); if (Pos(Key,Src)>0) then begin iEnd:=Pos(Key,Src); Target1:=Copy(Src,0,iEnd-1); Target2:=Copy(Src,iEnd Length(Key),Len); end; end;3.切割完S1填入Edit中,如: zCutStr('123 kkk',S1,S2,' '); |
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
andygiga 您好: 試試下列的作法:
void __fastcall TForm1::Button1Click(TObject *Sender) { TStringList *slRow = new TStringList; TStringList *slCol = new TStringList; int tmp; if (OpenDialog1->Execute()) { slRow->LoadFromFile(OpenDialog1->FileName); for (int i=0; i發表人 - RedSnow 於 2005/06/13 02:23:22 |
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
重改一個範例並加註部分解說,下列寫法是將讀取到的數字填入對應的 Edit 欄位內:
void __fastcall TForm1::Button1Click(TObject *Sender) { TStringList *slRow = new TStringList; TStringList *slCol = new TStringList; int tmp; if (OpenDialog1->Execute()) { slRow->LoadFromFile(OpenDialog1->FileName); for (int i=0; i |
andygiga
一般會員 發表:3 回覆:4 積分:1 註冊:2005-03-26 發送簡訊給我 |
引言: 重改一個範例並加註部分解說,下列寫法是將讀取到的數字填入對應的 Edit 欄位內:謝謝大大的解答,我想在請問一下, 若是我的行數很多 switch的case數也變的很多, 有可以寫成迴圈的辦法嗎? 另外,我還是不太懂這一行的意思 slCol->CommaText = slRow->Strings[i]; 拆解資料行為兩個欄位 事什麼意思ㄋ..若要拆解為三個欄位以上ㄋ?? 發表人 - andygiga 於 2005/06/13 10:47:47void __fastcall TForm1::Button1Click(TObject *Sender) { TStringList *slRow = new TStringList; TStringList *slCol = new TStringList; int tmp; if (OpenDialog1->Execute()) { slRow->LoadFromFile(OpenDialog1->FileName); for (int i=0; i |
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
andygiga 您好: 如果您有很多的 Edit 物件要同時做這項設定的話,您確實可以考慮改用迴圈,或者是將那些物件做成陣列來處理,但是 BCB 也提供了一些更好用的方式,如果您的 Edit 物件命名方式有一定的規則,那麼您可以將整段的 switch case 刪掉改成下列的敘述:
((TEdit *)FindComponent("Edit" IntToStr(i 1)))->Text = tmp;另外您問到 CommaText 的問題,那是 TStringList 提供的功能,當您將一個帶有以空白、逗號....之類的字元來分隔的字串設給它的時候,它就會將字串拆解成個別的 TStrings,若字串中有五組以空白字元分隔的資料,就會拆解成五組資料,這樣子我們就可以個別存取那些分隔的資料了,詳細說明可以參考 BCB Help 或者搜尋站上的相關討論。 發表人 - RedSnow 於 2005/06/13 11:22:51 |
andygiga
一般會員 發表:3 回覆:4 積分:1 註冊:2005-03-26 發送簡訊給我 |
引言: andygiga 您好: 如果您有很多的 Edit 物件要同時做這項設定的話,您確實可以考慮改用迴圈,或者是將那些物件做成陣列來處理,但是 BCB 也提供了一些更好用的方式,如果您的 Edit 物件命名方式有一定的規則,那麼您可以將整段的 switch case 刪掉改成下列的敘述:發表人 - andygiga 於 2005/06/13 11:43:35((TEdit *)FindComponent("Edit" IntToStr(i 1)))->Text = tmp;請問一下,因為我的edit是寫在form2,那我要怎麼表示ㄋ??? 另外您問到 CommaText 的問題,那是 TStringList 提供的功能,當您將一個帶有以空白、逗號....之類的字元來分隔的字串設給它的時候,它就會將字串拆解成個別的 TStrings,若字串中有五組以空白字元分隔的資料,就會拆解成五組資料,這樣子我們就可以個別存取那些分隔的資料了,詳細說明可以參考 BCB Help 或者搜尋站上的相關討論。 發表人 - RedSnow 於 2005/06/13 11:22:51 |
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
|
andygiga
一般會員 發表:3 回覆:4 積分:1 註冊:2005-03-26 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
andygiga 您好: 剛才做了一下測試,請參考下列範例來設定:
Form2 的 .h 檔: public: // User declarations void __fastcall FillEdits(AnsiString FileName); Form2 的 .cpp 檔: void __fastcall TForm2::FillEdits(AnsiString FileName) { TStringList *slRow = new TStringList; TStringList *slCol = new TStringList; int tmp; slRow->LoadFromFile(FileName); for (int i=0; i |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
taishyang 副站長您好: 多謝您插的花,我真是腦子打結、捨近求遠....(晚睡晚起的後遺症)。 andygiga 您好: 雖然我前一篇貼的方式與 taishyang 副站長說的方式都可行,但是副站長說的方式不用將原先的程式敘述做太大的變動,也就是將原先的敘述改成如下就可以了:
((TEdit *)Form2->FindComponent("Edit" IntToStr(i 1)))->Text = tmp;發表人 - RedSnow 於 2005/06/13 12:53:57 |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
andygiga
一般會員 發表:3 回覆:4 積分:1 註冊:2005-03-26 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |