如何將StringGrid的兩各Cols 用SaveToFile 存成同一各檔案? |
答題得分者是:dllee
|
a0815
一般會員 發表:4 回覆:5 積分:1 註冊:2007-08-20 發送簡訊給我 |
各位先進大家好! 請問如何將StringGrid1的Cols[0]跟Cols[1] 存成同一檔案?(已爬文沒有找到類似的) 而檔案的內容希望如下,比較好區別(若Cols[0]=0~5,Cols[1]=a~e) 1,a 2,b 3,c 4,d 5,e 我目前的程式如下:(只能存Cols[1])
SaveDialog1->Title="Save LCD Registers To File "; if(SaveDialog1->Execute()) { StringGrid1->Cols[1]->SaveToFile(SaveDialog1->FileName); } |
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
TStringList *file=new TStingList;
int count=StringGrid1->RowCount; for(int i=0;i<count;i ) file->Add(StringGrid1->Cols[0] "," StringGrid1->Cols[1]); file->SaveToFile("ABC.csv"); delete file; 利用此法,如果有更多 Cols 也可以使用。
------
http://www.ViewMove.com |
membermember
一般會員 發表:1 回覆:2 積分:0 註冊:2007-02-01 發送簡訊給我 |
請多多指教^^ <textarea class="cpp" rows="10" cols="60" name="code">#include
|
a0815
一般會員 發表:4 回覆:5 積分:1 註冊:2007-08-20 發送簡訊給我 |
dllee板大: 原本使用COL的方式似乎不行 改成以下的就可以了 Cells 跟COL 不知道差在哪邊?~~ TStringList *file=new TStringList; int count=StringGrid1->RowCount; for(int i=0;i file->SaveToFile(SaveDialog1->FileName); delete file; ===================引 用 dllee 文 章=================== TStringList *file=new TStingList; int count=StringGrid1->RowCount; for(int i=0;i<count;i ) ?? file->Add(StringGrid1->Cols[0] "," StringGrid1->Cols[1]); file->SaveToFile("ABC.csv"); delete file; 利用此法,如果有更多 Cols 也可以使用。 |
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
哈哈... 因為我偷懶, 沒用 BCB 直接打出來, 沒有語法檢查
TStringList *file=new TStingList; int count=StringGrid1->RowCount; for(int i=0;i<count;i ) file->Add(StringGrid1->Cols[0]->Strings[i] "," StringGrid1->Cols[1]->Strings[i]); file->SaveToFile("ABC.csv"); delete file; 加上 Strings[i] 才會是對的。 Cells[i][j] 與 Cols[i]->Strings[j] 是一樣的,因為看到您一開始用了 Cols[] 才想說用 Cols 作說明, 但沒注意到漏寫了 Strings[] 其實, 網路上找一找, 應該可以找到 TStringGrid 轉 csv 的函式或元件
------
http://www.ViewMove.com |
a0815
一般會員 發表:4 回覆:5 積分:1 註冊:2007-08-20 發送簡訊給我 |
dllee版大: 以下是我在站上找到的 LOAD的CODE 是可以正常運作,不過令我不解的是 slCol->CommaText = slRow->Strings[row]; ( "slRow->Count"的值是怎算出來的?"slCol->CommaText"又怎分割置字串?用逗號跟換行符號去分嗎? 查HELP看的霧煞煞~ ) 再麻煩您了~ TKS~ <textarea class="cpp" rows="10" cols="60" name="code"> slRow->LoadFromFile(OpenDialog1->FileName); // 將 OpenDialog 之 FileName 指向的檔案內容載至 slRow 內
for (int row=0; row
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
slRow->LoadFromFile(OpenDialog1->FileName);
slRow 是一個 TStringList ,LoadFromFile 就是把檔案載入 TStringList 以分行符號分出每個字串。 slCol->CommaText = slRow->Strings[row]; slCol 也是一個 TStringList,slRow->Strings[row] 就是檔案第 row 行的資料放入一個 TStringList CommaText 表示使用 , 逗號分隔,如 abc,def,124 這樣一行就可分 3 個字串放入 TStringList 內。 StringGrid1->Cells[col][row] = slCol->Strings[col] 把 slCol 放入 StringGrid1 內。 Online Help 看不懂,就直接把範例拿來單步除錯,查看每一行的內容, 看久了就懂了。 現成的程式碼很多,試著去跑跑看,單步除錯看變數的變化或元件內屬性的變化, 才能更了解元件要如何使用。 不練習,看再多也沒用,不練習,聽再多也沒用。 所以,請多練習,有問題再發問。
------
http://www.ViewMove.com |
ALTIS
初階會員 發表:4 回覆:26 積分:31 註冊:2005-04-28 發送簡訊給我 |
ringList;
第一行 少了一個 r 喔. ===================引 用 dllee 文 章=================== 哈哈... 因為我偷懶, 沒用 BCB 直接打出來, 沒有語法檢查 TStringList *file=new TStingList; int count=StringGrid1->RowCount; for(int i=0;i<count;i ) file->Add(StringGrid1->Cols[0]->Strings[i] "," StringGrid1->Cols[1]->Strings[i]); file->SaveToFile("ABC.csv"); delete file; 加上 Strings[i] 才會是對的。 Cells[i][j] 與 Cols[i]->Strings[j] 是一樣的,因為看到您一開始用了 Cols[] 才想說用 Cols 作說明, 但沒注意到漏寫了 Strings[] 其實, 網路上找一找, 應該可以找到 TStringGrid 轉 csv 的函式或元件
------
城市讓人迷惘 我在湖岸看見希望 妳的眼神是一道光芒 開啟我心中的收藏 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |