全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:954
推到 Plurk!
推到 Facebook!

為什麼總是要按兩次?不解!

尚未結案
enu
中階會員


發表:36
回覆:93
積分:55
註冊:2003-10-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-23 01:20:36 IP:220.142.xxx.xxx 未訂閱
各位先進,請教一個問題;上回小弟請教後使用下列方式產生一個文字檔,   WinExec("cmd.exe /c Project1.exe test -s -i test.ttt -text > test.txt", SW_SHOWNORMAL); 後來在memo中要秀出test.txt, TStringList *slTxt=new TStringList;    slTxt->LoadFromFile("test.txt");    Memo1->Lines->Clear();    for(int i=0; iCount; i ) { Memo1->Lines->Add(slTxt->Strings[i]); } delete slTxt; 怪的是,第一次總是告訴我can't load file,可是run第二次時就可以了。 後來發現,run第一次是確實是有產生test.txt檔了,怎麼會這樣呢?懇請賜教,謝謝!

中階會員


發表:36
回覆:142
積分:70
註冊:2003-07-24

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-23 01:49:17 IP:163.23.xxx.xxx 未訂閱
enu 您好:    直接以 Memo1 來讀檔就好,不需透過 TStringList 來處理 試試以下的 code 合不合用 >> >
enu
中階會員


發表:36
回覆:93
積分:55
註冊:2003-10-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-23 02:14:15 IP:220.142.xxx.xxx 未訂閱
謝謝你,我將程式改為 while(!(FileExists("test.txt"))); { Memo1->Lines->LoadFromFile("test.txt"); } 可是按下run後,系統暫停住告訴我can't open file,這時還沒看到WinExec產生的test.txt檔,然後我再按一次run,又告訴我can't open file,可是我看到test.txt產生了,跟之前的情形是一樣的,不知道為什麼?
HomeSound
中階會員


發表:44
回覆:178
積分:94
註冊:2002-08-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-23 02:53:39 IP:61.30.xxx.xxx 未訂閱
enu 您好: 因為是多功系統所以test.txt還沒產生就去LoadFromFile 當然是會Error喲! 參考看看
STARTUPINFO si; //等待Test.exe完成後,再秀Message,保證程式執行完
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb=sizeof(si);
ZeroMemory(&pi, sizeof(pi));
if(!CreateProcess(NULL,"Test.exe",NULL,NULL,FALSE,0,NULL,NULL,&si,&pi))
{ ShowMessage("CreateProcess failed!" IntToStr(GetLastError()));
}
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
ShowMessage("The Program is terminate!");
希望是您要的 --==多看.多學.多聽==--
------
--==多看.多學.多聽==--

中階會員


發表:36
回覆:142
積分:70
註冊:2003-07-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-23 03:18:01 IP:163.23.xxx.xxx 未訂閱
enu 您好:
試試以下的例子,小弟沒有產生無法開啟的現象,您再測試測試    WinExec("cmd.exe /c Project1.exe test -s -i test.ttt -text > test.txt", SW_SHOWNORMAL);
while(FileExists("test.txt"))
{
  Memo1->Lines->LoadFromFile("test.txt");
  break ;
}    while(!(FileExists("test.txt"))); // 您多了個分號了  
  {
    >> >
     
        
enu
中階會員


發表:36
回覆:93
積分:55
註冊:2003-10-22

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-23 03:32:26 IP:220.142.xxx.xxx 未訂閱
謝謝你,流, 但我測試了一下還是一樣的問題,我在想應該是HomeSound先生所指出的,test.txt還沒產生就去LoadFromFile所產生的Error;但是沒有用過CreateProcess,不知道像這樣test -s -i test.ttt -text > test.txt一長串的字怎麼引用進去?還在努力中! 謝謝各位!
系統時間:2024-05-06 2:55:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!