iT邦幫忙

0

目前手上有一個CASE是偵測到系統產出的.txt檔後依照檔名對應到相同名稱的印表機後列印

舉例
A1.txt
就會由A1印表機印出

但是現在客戶說一次會產出很多個.txt檔
這樣變成程式會不知道誰要先印

有沒有什麼方式可以讓全部檔案乖乖印完
又不會衝突的方法?

1 個回答

0
最佳解答

產生時間

看更多先前的回應...收起先前的回應...

@kksugsay

您指的是當他的系統再產出.txt的時候能夠順變產出時間嗎?

@kksugsay

我的客戶測試出來囉
謝謝你

系統產出txt的時候,應該有檔案的建立時間,時間越早的就越先列印,如果要避免重覆列印,最簡單的方式就是列印過就記錄下來如:
檔名 建立時間
這樣就可以知道哪些檔案印過了

@kksugsay

我們檔名是對應印表機名稱
所以說若同時產出10筆A1.txt一訂會因為檔名重複就出錯

目前客戶的做法是
系統設定.txt產出的時間間隔5秒
例如A1.txt偵測到列印時間約3秒
印完後系統會自動將A1.txt刪除

5秒後系統又再產生出第二筆A1.txt
這樣就不會因為檔名相同而衝突

如果間隔時間很固定是可以這樣做,但一般不建議把條件寫死,
通常會在產生檔案時,每秒去檢查目前檔案是否存在,如果不存在再往下執行,
產生後的檔案就可以不用考慮會列印多久,這樣可能會是比較好的方式

捷客 iT邦新手 4 級 ‧ 2018-02-27 14:07:10 檢舉

目前客戶的做法是
系統設定.txt產出的時間間隔5秒
例如A1.txt偵測到列印時間約3秒
印完後系統會自動將A1.txt刪除

5秒後系統又再產生出第二筆A1.txt
這樣就不會因為檔名相同而衝突

這個設計方法真是奇怪,同檔名?
那如果因為印表機原因,造成前一個檔沒有被正確印出,然後另一個檔就被產生,不就蓋掉了也沒人知道?

檔名補上產生的時間,是很一般性的作法吧。

我要發表回答

立即登入回答