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

判斷檔案鎖定與否

尚未結案
leonard
一般會員


發表:42
回覆:42
積分:21
註冊:2003-10-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-03 12:08:29 IP:210.59.xxx.xxx 未訂閱
對不起 延伸前一個話題 因為我的另有一個應用程式會不停更新.txt中的數字資料 而BCB上我使用TIMER不停讀取.txt數值----出來繪圖 可是當我的應用程式使用txt檔案時BCB要讀取此檔案時會發生無法開啟錯誤 請問BCB該如判斷txt檔案是否被使用 如沒使用然後再讀取檔案 loadfromfile如何判斷 發表人 - taishyang 於 2004/03/03 14:37:46 發表人 - leonard 於 2004/03/03 18:53:00
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-03 13:45:59 IP:140.135.xxx.xxx 未訂閱
leonard您好: 我想您的標題應該為[如何判斷檔案使用中]之類的 所以下面連結的討論您可以參考看看 < href="http://delphi.ktop.com.tw/topic.php?topic_id=45245">http://delphi.ktop.com.tw/topic.php?topic_id=45245 【Delphi】【問題】如何判斷文字檔正在使用中 http://delphi.ktop.com.tw/topic.php?topic_id=26986 【問題】啟動Word後要如何得知某個檔案目前是開啟而拒絕開啟? 小弟沒碰過Delphi所以要請其他前輩幫您翻譯一下< > 順心< > 發表人 - taishyang 於 2004/03/03 13:49:39
anpino
版主


發表:31
回覆:477
積分:231
註冊:2003-01-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-03 14:01:27 IP:61.66.xxx.xxx 未訂閱
這也可參考:    http://delphi.ktop.com.tw/topic.php?TOPIC_ID=40148 【Delphi】【問題】請問如何知道檔案正被開啟?  最後解法是用MSDN 的example。 ------------------------------- 數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-03 14:36:13 IP:140.135.xxx.xxx 未訂閱
anpino太強了~~~ > 發表人 -
anpino
版主


發表:31
回覆:477
積分:231
註冊:2003-01-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-03 15:51:49 IP:61.66.xxx.xxx 未訂閱
引言: anpino太強了~~~ 發表人 - >< face="Verdana, Arial, Helvetica"> 謝..謝謝版...版主... 我其實不強...我只是習慣search MSDN 而已... > ------------------------------- 數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖
leonard
一般會員


發表:42
回覆:42
積分:21
註冊:2003-10-18

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-03-03 19:04:14 IP:210.59.xxx.xxx 未訂閱
1.我的程式執行時會出現錯不過compiler會過---不知是否能給我點意見 2.請問我想讀取時把檔案鎖住不讓其他程式讀取此檔案   不知道該家在哪裡    
 int i;
 int s[10]={10,25,30,40,53,61,74,88,90,100};
 HANDLE hfile;
 TStringList* buf = new TStringList();
 DWORD bytesread;
 hfile=CreateFile("C:\\ti\\myprojects\\tt1\\chen.txt",GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_FLAG_SEQUENTIAL_SCAN,NULL);
 if(hfile==INVALID_HANDLE_VALUE)
 {
  return;----當別的程式使用時--他會一直讀取txt檔直到可以開啟
  }
  else
  {
  ReadFile(hfile,buf,sizeof(buf),&bytesread,NULL);
  for (int x=0; x<10; x  )
  {
    i=s[x];
  Series1->AddXY(i,buf->Strings[x].ToInt(),i,clRed);
  }
  delete buf;
  }
}
 
發表人 - leonard 於 2004/03/03 21:13:50 發表人 - leonard 於 2004/03/03 21:14:48
anpino
版主


發表:31
回覆:477
積分:231
註冊:2003-01-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-03-04 08:36:27 IP:61.66.xxx.xxx 未訂閱
引言: 1.我的程式執行時會出現錯不過compiler會過---不知是否能給我點意見 永遠記得compiler會過,不代表程式就是正確無誤,也不代表程式可以正確執行。最常見的就是記憶體管理問題。 class="code"> int i; int s[10]={10,25,30,40,53,61,74,88,90,100}; HANDLE hfile; TStringList* buf = new TStringList(); DWORD bytesread, dwPos; hfile=CreateFile("C:\\ti\\myprojects\\tt1\\chen.txt",GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_FLAG_SEQUENTIAL_SCAN,NULL); if(hfile==INVALID_HANDLE_VALUE) { return;----當別的程式使用時--他會一直讀取txt檔直到可以開啟 } else { if(ReadFile(hfile,buf,sizeof(buf),&bytesread,NULL)) { dwPos = SetFilePointer(hfile, 0, NULL, FILE_END); LockFile(hfile, dwPos, 0, bytesread, 0); for (int x=0; x<10; x ) { i=s[x]; Series1->AddXY(i,buf->Strings[x].ToInt(),i,clRed); } delete buf; UnlockFile(hfile, dwPos, 0, bytesread, 0); } } }
關於第二個問題, 既然已經給你 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=40148, 裡面的sample已經寫得很明白, 希望您以後先看看,想想再問。 STFW ------------------------------- 數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D Programmers Guide http://anpino.begin.8d8d.com 發表人 - anpino 於 2004/03/04 08:43:58
leonard
一般會員


發表:42
回覆:42
積分:21
註冊:2003-10-18

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-03-04 09:36:15 IP:210.59.xxx.xxx 未訂閱
引言:
引言: 1.我的程式執行時會出現錯不過compiler會過---不知是否能給我點意見 永遠記得compiler會過,不代表程式就是正確無誤,也不代表程式可以正確執行。最常見的就是記憶體管理問題。 class="code"> int i; int s[10]={10,25,30,40,53,61,74,88,90,100}; HANDLE hfile; TStringList* buf = new TStringList(); DWORD bytesread, dwPos; hfile=CreateFile("C:\\ti\\myprojects\\tt1\\chen.txt",GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_FLAG_SEQUENTIAL_SCAN,NULL); if(hfile==INVALID_HANDLE_VALUE) { return;----當別的程式使用時--他會一直讀取txt檔直到可以開啟 } else { if(ReadFile(hfile,buf,sizeof(buf),&bytesread,NULL)) { dwPos = SetFilePointer(hfile, 0, NULL, FILE_END); LockFile(hfile, dwPos, 0, bytesread, 0); for (int x=0; x<10; x ) { i=s[x]; Series1->AddXY(i,buf->Strings[x].ToInt(),i,clRed); } delete buf; UnlockFile(hfile, dwPos, 0, bytesread, 0); } } }
關於第二個問題, 既然已經給你 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=40148, 裡面的sample已經寫得很明白, 希望您以後先看看,想想再問。 STFW ------------------------------- 數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D Programmers Guide http://anpino.begin.8d8d.com 發表人 - anpino 於 2004/03/04 08:43:58
不好意思沒看到 還是要謝謝你
系統時間:2024-05-05 17:54:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!