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

遇到奇怪的"存檔"問題 ??!! 不知道有沒有人會解決 ?? [急問]

缺席
hfh
一般會員


發表:1
回覆:5
積分:1
註冊:2002-08-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-07 05:40:25 IP:163.28.xxx.xxx 未訂閱
我的片段程式大致如下:       for(......)       {        WinExec("command.com /c copy aaa >c:\\tmp1.ini",SW_HIDE); <--        Sleep(2000);        Form1->Visible=false;        do          {           Sleep(1000);           count++;          }while(!((FileExists("c:\\tmp2.ini"))||(count>=WaitTime)));        .........          WinExec("command.com /c del c:\\tmp?.ini",SW_HIDE);       }    因為我的程式是要利用兩個檔案來讓兩個應用程式來做溝通,所以上面的WinExec那行程式產生一個tmp1.ini (隨便產生,內容並不重要),我試過很多種寫法,例如使用TMemo之SaveToFile Method or TRichEdit等等,但都會發生在那行並沒有寫出檔案,而我最後會使用WinExec的原因是它比較能成功的寫出檔案(tmp1.ini),但還是會有時候無法產生出此檔案,讓我百思不解,不知道有沒有人遇到此種問題或是有辦法解決,請告訴我......謝謝
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-07 07:33:53 IP:61.219.xxx.xxx 未訂閱
在每一個WinExec下加一個 application.ProcessMessages試試
hfh
一般會員


發表:1
回覆:5
積分:1
註冊:2002-08-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-07 08:18:32 IP:163.28.xxx.xxx 未訂閱
我在每個WinExec下加上了Application->ProcessMessage()之後,情況仍然沒有改善,反倒在沒有產生出tmp1.ini的輸出檔時,電腦有點快當機(停頓)的樣子.......不知是什麼情況??!
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-07 08:50:11 IP:61.219.xxx.xxx 未訂閱
1. application.ProcessMessages主要目的在使目前程式暫緩, 以便系統處理Message Queue,如此就不須猜測要sleep多久 2. Memo1->Lines->SaveToFile會沒寫出file嗎?加個application.ProcessMessages吧 3. BCB也有內建的DeleteFile, CopyFileTo 4. 你發表錯位置了, 這裡是Delphi
hfh
一般會員


發表:1
回覆:5
積分:1
註冊:2002-08-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-07 13:42:35 IP:163.28.xxx.xxx 未訂閱
Sorry ~~~ Post 錯地方了,但似乎是使用Delphi的人比較多,且我這部份的語法應該也不是BCB的特殊用法,所以大部份使用Delphi的人應該也看的懂吧?! 所以請版主多多見諒.... 我試過版主所說的這幾種方式,但還是會出現有時無法輸出檔案的情況?!(即使是使用Memo1.Lines.SaveToFile(...) ) 因為這是兩個程式互相溝通的方式,所以只要這個程式無法輸出,必然會影響到另一個程式的執行時間,所以.....:(
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-07 15:18:37 IP:61.70.xxx.xxx 未訂閱
兩個程式互相溝通 你這個方式是 Time dependent 不出錯的機會很小 有試過用發布 系統 message 的方式來溝通嗎 ? 用 SendMessage 來溝通 看是要掛在系統 message 下 還是要自訂一個 都很好用 比用這樣做苦工的方法來的好
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-07 16:43:48 IP:61.221.xxx.xxx 未訂閱
hfh你好: var F:textfile; TxtPath:string; begin TxtPath:='c:\tmp.ini'; AssignFile(F,TxtPath); Rewrite(F); ... .. CloseFile(F); end; 保證上榜!!! 不上免錢!!!
------
======================
昏睡~
不昏睡~
不由昏睡~
hfh
一般會員


發表:1
回覆:5
積分:1
註冊:2002-08-27

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-09 21:39:32 IP:163.28.xxx.xxx 未訂閱
syntax你好...    你說的方式我是有想過,但因為我說的兩個程式相互溝通,一個程式是我寫的,另一個程式則是應用程式(執行類似VB的Script程式),此應用程式只有呼叫外部應用程式的功能,但沒有接受呼叫外部程式的傳回值功能,所以最後才會想說最簡單的方式就是利用file來作傳遞,但奇怪的是偶爾會出現沒有存檔成功的情況...... 不知道您說的方式,在我說的上述這種情況下,還是可以使用嗎?? 大概是要如何實作,可不可以麻煩說明一下?? 謝謝 ...
系統時間:2024-04-29 8:31:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!