請問一下,如何將TXT檔的內容轉成數字型態的矩陣~ |
答題得分者是:jow
|
cindy54610
一般會員 發表:1 回覆:3 積分:5 註冊:2007-10-10 發送簡訊給我 |
你好:
最近用BCB寫老鼠走迷宮的程式,在讀檔發生問題~ #,#,#,#,#,#,#,#,# #,‧,‧,‧,‧,‧,‧,‧,# #,‧,#,#,‧,#,#,‧,# #,‧,#,‧,‧,#,‧,‧,# #,‧,#,‧,#,‧,#,‧,# #,‧,‧,‧,‧,‧,#,‧,# #,#,‧,#,#,‧,#,#,# #,‧,‧,‧,‧,‧,‧,‧,# #,#,#,#,#,#,#,#,# 我想要轉成數字型的矩陣 int maze[9][9] = {{2, 2, 2, 2, 2, 2, 2, 2, 2}, {2, 0, 0, 0, 0, 0, 0, 0, 2}, {2, 0, 2, 2, 0, 2, 2, 0, 2}, {2, 0, 2, 0, 0, 2, 0, 0, 2}, {2, 0, 2, 0, 2, 0, 2, 0, 2}, {2, 0, 0, 0, 0, 0, 2, 0, 2}, {2, 2, 0, 2, 2, 0, 2, 2, 2}, {2, 0, 0, 0, 0, 0, 0, 0, 2}, {2, 2, 2, 2, 2, 2, 2, 2, 2}}; 可以麻煩教我寫一下嗎(我用的是BCB6.0)?非常感謝唷^^ 另外,如果是沒有","分隔的話我又要怎麼寫呢? ######### #‧‧‧‧‧‧‧# #‧##‧##‧# #‧#‧‧#‧‧# #‧#‧#‧#‧# #‧‧‧‧‧#‧# ##‧##‧### #‧‧‧‧‧‧‧# ######### |
jow
尊榮會員 發表:66 回覆:751 積分:1253 註冊:2002-03-13 發送簡訊給我 |
參考這一篇 http://delphi.ktop.com.tw/board.php?cid=168&fid=1499&tid=90919
稍微修改一下應該就可以用了. |
cindy54610
一般會員 發表:1 回覆:3 積分:5 註冊:2007-10-10 發送簡訊給我 |
不好意思唷!因為我的非常新的新手,所以可不可以教我一個比較淺顯易懂的程式,讓我更加了解呢?
String a; char *tChar; AnsiString str1[9]={0}; if(OpenDialog1->Execute()) if(OpenDialog1->FileName!="") { Memo1->Lines->LoadFromFile(OpenDialog1->FileName); } for(int i=0;i<9;i ) { str1[i]=Memo1->Lines->Strings[i]; tChar = str1[i].c_str(); for(int j=0;j<9;j ) { if(tChar[i]=='‧') maze[i][j]=0; else if(tChar[i]=='#') maze[i][j]=2; } } 但是maze[9][9]內容都是0耶???一怎麼寫才可以將數字正確的放入數字型態矩陣maze[9][9]中呢? |
jow
尊榮會員 發表:66 回覆:751 積分:1253 註冊:2002-03-13 發送簡訊給我 |
"‧", "#" 是全形字, 各佔2byte..
LAYOUT.TXT的內容: ######### #‧‧‧‧‧‧‧# #‧##‧##‧# #‧#‧‧#‧‧# #‧#‧#‧#‧# #‧‧‧‧‧#‧# ##‧##‧### #‧‧‧‧‧‧‧# ######### 檔案LAYOUT2.TXT的內容: #,#,#,#,#,#,#,#,# #,‧,‧,‧,‧,‧,‧,‧,# #,‧,#,#,‧,#,#,‧,# #,‧,#,‧,‧,#,‧,‧,# #,‧,#,‧,#,‧,#,‧,# #,‧,‧,‧,‧,‧,#,‧,# #,#,‧,#,#,‧,#,#,# #,‧,‧,‧,‧,‧,‧,‧,# #,#,#,#,#,#,#,#,# [code cpp] //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { int maze[9][9]; AnsiString S, T; char *filename = "LAYOUT.TXT"; if(FileExists(filename)){ TStringList *L = new TStringList(); try{ memset(&maze,0,sizeof(maze)); L->LoadFromFile(filename); for(int i=0; i<9; i ){ for(int j=0; j<9; j ){ S = L->Strings[i].SubString(j*2 1,2); if(S=="‧")maze[i][j]=0; else if(S=="#")maze[i][j]=2; } } //顯示結果 L->Clear(); for(int i=0;i<9;i ){ T=""; for(int j=0;j<9;j ) T =S.sprintf("%d",maze[i][j]); L->Add(T); } Memo1->Lines->Text=L->Text; } __finally{ delete L; } } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { int maze[9][9]; AnsiString S, T; char *filename = "LAYOUT2.TXT"; TStringList *L, *M; M = new TStringList(); try{ if(FileExists(filename)){ L = new TStringList();//產生TStringList物件 try{ L->LoadFromFile(filename); M->CommaText = L->Text; } __finally{ delete L; //TStringList用畢後釋放 } } memset(&maze,0,sizeof(maze)); for(int i=0; i<81; i ){ S = M->Strings[i]; if(S=="‧")maze[i/9][i%9]=0; else if(S=="#")maze[i/9][i%9]=2; } //顯示結果 M->Clear(); for(int i=0;i<9;i ){ T=""; for(int j=0;j<9;j ) T =S.sprintf("%d",maze[i][j]); M->Add(T); } Memo1->Lines->Text=M->Text; } __finally{ delete M; } } //--------------------------------------------------------------------------- [/code] |
cindy54610
一般會員 發表:1 回覆:3 積分:5 註冊:2007-10-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |