線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:857
推到 Plurk!
推到 Facebook!

請教各位大哥 - 讀檔案的問題

尚未結案
dbstudio
一般會員


發表:13
回覆:18
積分:6
註冊:2003-12-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-28 22:22:25 IP:61.221.xxx.xxx 未訂閱
我寫一個程式,讀進了一個檔案, 並且將檔案內容放置於StringGrid中, 檔案內容如下:    1 2 3 4 5 6 7 8 9    以下是我程式的主要片段:    
 
while(!InputFile.eof())
   {        InputFile>>data;        switch(data)
     {
      case ' ':
       Loc_COL  ;
       break;          case '\n':
       Loc_ROW  ;
       break;          default:
       StringGrid1->Cells[Loc_COL][Loc_ROW] = (AnsiString)data;
       break;
     }
    if(InputFile.eof())break;
    Label1->Caption = Label1->Caption   (AnsiString)data;
   }
問題兒童的問題如下: 1.如果沒有if(InputFile.eof())break;這行, 他會多讀ㄧ次,為什麼呀? ^__^|| 2.我這個文字檔中,裡面有空白字元 ' ' ,也有換行字元 '\n', 可是為什麼都讀不到? 是不是不能用char的方式讀呢? 謝謝~~謝謝~~非常感謝~~~~~ 哇錦喊嫚公為 膽喜挖金喜災 蓋小哩厚有
------
哇錦喊嫚公為
膽喜挖金喜災
蓋小哩厚有
erosme
初階會員


發表:5
回覆:44
積分:29
註冊:2002-12-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-29 00:22:53 IP:218.166.xxx.xxx 未訂閱
Dear Dbstudio, 問題1: 因為你將 InputFile>>data;置於 WHILE(!InputFile.eof()) 之後. 所以當你讀取完最後一個資料時,並不會偵測到 EOF. 所以你會再讀取一次,此時才會偵測到 EOF. 這時才會跳離WHILE. 問題2: 你可以把程式改為如下的方式,解決讀不到空白字元和換行字元. char data; file1 = fopen(FileName,"r "); while(!feof(file1)) { fread(&data,1,1,file1); switch(data) { ..... } }
dbstudio
一般會員


發表:13
回覆:18
積分:6
註冊:2003-12-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-29 14:14:03 IP:61.221.xxx.xxx 未訂閱
引言: 問題2: 你可以把程式改為如下的方式,解決讀不到空白字元和換行字元. char data; file1 = fopen(FileName,"r "); while(!feof(file1)) { fread(&data,1,1,file1); switch(data) { ..... } }
謝謝您~~~~ 哇錦喊嫚公為 膽喜挖金喜災 蓋小哩厚有 發表人 -
------
哇錦喊嫚公為
膽喜挖金喜災
蓋小哩厚有
系統時間:2024-05-18 16:14:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!