如何開啟檔案 |
答題得分者是:JerryKuo
|
流
中階會員 發表:36 回覆:142 積分:70 註冊:2003-07-24 發送簡訊給我 |
|
paf
初階會員 發表:36 回覆:70 積分:41 註冊:2002-12-27 發送簡訊給我 |
|
流
中階會員 發表:36 回覆:142 積分:70 註冊:2003-07-24 發送簡訊給我 |
|
流
中階會員 發表:36 回覆:142 積分:70 註冊:2003-07-24 發送簡訊給我 |
這是我的程式碼,雖然我希望可以不指定路徑而開啟
不過我還是先從可以指定的路徑先做起
但是無法開啟檔案,不曉得為什麼,請前輩指導 void __fastcall TForm1::Button1Click(TObject *Sender)
{
// 這是可以讀入檔案的部份,確定沒有問題
FILE *fp;
String fpfile=ChangeFileExt( Application->ExeName, ".log" );
if ((fp=fopen(fpfile.c_str(), "w")) == NULL)
fclose(fp);
else
fprintf( fp,"%s\n",Edit1->Text);
fclose(fp);
}
//---------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
// 這部份就沒有辦法順利讀出,會在按的時候出現錯誤 String s1;
FILE *fp; fp=fopen("C:\Documents and Settings\qpzm\桌面\test\Project1.log","r");
fscanf(fp,"%s",s1);
fclose(fp); 謝謝
|
流
中階會員 發表:36 回覆:142 積分:70 註冊:2003-07-24 發送簡訊給我 |
這是我的程式碼,雖然我希望可以不指定路徑而開啟
不過我還是先從可以指定的路徑先做起
但是無法開啟檔案,不曉得為什麼,請前輩指導 void __fastcall TForm1::Button1Click(TObject *Sender)
{
// 這是可以讀入檔案的部份,確定沒有問題
FILE *fp;
String fpfile=ChangeFileExt( Application->ExeName, ".log" );
if ((fp=fopen(fpfile.c_str(), "w")) == NULL)
fclose(fp);
else
fprintf( fp,"%s\n",Edit1->Text);
fclose(fp);
}
//---------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
// 這部份就沒有辦法順利讀出,會在按的時候出現錯誤 String s1;
FILE *fp; fp=fopen("C:\Documents and Settings\qpzm\桌面\test\Project1.log","r");
fscanf(fp,"%s",s1);
fclose(fp); 謝謝
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
流
中階會員 發表:36 回覆:142 積分:70 註冊:2003-07-24 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
流您好:
引言: 請問一下,這樣會不會有什麼差別呢 只要檔名有,副檔名有,應該都可開啟吧? 我手邊有本 C 語言的書,他開啟的是 .dat 檔 其實我是節錄出某段來修改,所以才會變成是.log檔 一時忘了修改回 .txt 請問你一下讀取的部份該怎麼實現呢 我手邊的書也都是指個路徑便能讀到 不過我這樣寫卻出錯,懇請指正 謝謝因為處理的方式會有差異(對我來說) 假如確定是*.txt,那您可以用Memo或者是TStringList對文字檔做處理 相當的方便,下面是範例程式 假設1.txt的內容是 1 2 3 ... 9 [用Memo] Memo1->Lines->LoadFromFile("1.txt"); Memo1->Lines->Add(10); Memo1->Lines->SaveToFile("2.txt");[用TStringList] TStringList*sl=new TStringList(); sl->LoadFromFile("1.txt"); sl->Add(11); sl->SaveToFile("2.txt"); delete sl;順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~> |
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
你好:
引言: 這是我的程式碼,雖然我希望可以不指定路徑而開啟 不過我還是先從可以指定的路徑先做起 但是無法開啟檔案,不曉得為什麼,請前輩指導 void __fastcall TForm1::Button1Click(TObject *Sender) { // 這是可以讀入檔案的部份,確定沒有問題 FILE *fp; String fpfile=ChangeFileExt( Application->ExeName, ".log" ); if ((fp=fopen(fpfile.c_str(), "w")) == NULL) fclose(fp); else fprintf( fp,"%s\n",Edit1->Text); fclose(fp); } //--------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { // 這部份就沒有辦法順利讀出,會在按的時候出現錯誤 String s1; FILE *fp; fp=fopen("C:\Documents and Settings\qpzm\桌面\test\Project1.log","r"); 目錄應該是改成 C:\\Documents and Settings\\qpzm\\桌面\\test\\Project1.log fscanf(fp,"%s",s1); s1是String物件,不是字串,你搞錯了,要改成 fscanf(fp,"%s",s1.c_str()); fclose(fp); 謝謝參考看看吧 |
流
中階會員 發表:36 回覆:142 積分:70 註冊:2003-07-24 發送簡訊給我 |
雖然我已經解決,但還是謝謝您的回答喔,給了我些概念 ^^ FILE *fp;
String str;
char fstr[20]; fp = fopen ("C:\\support\\take.txt","r");
while(!feof(fp))
{
fscanf(fp,"%s",fstr);
str = fstr;
}
fclose(fp);
Edit1->Text = str ; 這是我參閱其他範例後修改的 code
正如您所言,的確是少了一條反斜線 "\"
而也從您的文章中得知讀出檔案的資料為字串格式
感謝回答!
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |