如何解决两个程序同时读写一个文本文件的冲突(两个程序都一个高速读,一个高速读这个文件),主要是为了解决一个DOS程序与WINDOWS程序之间通信。(50分)

  • 主题发起人 主题发起人 jwchc
  • 开始时间 开始时间
看不懂,能否说详细些?
 
我有一个DOS专用通信程序,因为资料有限改编成为WINDOWS下的通信程序,因为我想通过这个通信程序不断地将采集到的数据写到一个文本文件中,与些同时,WIN下的数据管理程序又从这个文本文件中取得这些数据,因为两个程序之间无法同步,因些存在共享冲突问题。这就是我需要解决的。
 
有多高速?

我现在做的是一个dos程序不断写一个dbf文件,另一个windows程序不断通过bde
读取dbf数据库, 不用考虑文件共享问题.

你是否可以考虑让dos程序把数据写成文本数据库格式,比如dbase ?
 
For high speed communication between Dos and Windows, you can use
clipboard instead of a file.

It is very fast and has no conflict.

but be careful, disadvantage of clipboard is, in Dos side, it can only create TEXT format.
 
外就外: clipboard不保险,随时可能被别的数据覆盖.
 
写文件时,共享打开不就行了?
两个程序同时写一个文件都可以。谁最后写谁写的内容生效。
 
当我在WIN程序中打开这个文本文件时,DOS程序或许已经刷新2次了。
如何共享地打开这个文件?
 
打开文件的速度,dos下和windows下应该差不多吧?
 
可以模仿多线程同步:
在文本文件中设置一个标记, 读写程序都不用独占方式打开
该文件, 写的时候, 先判断该标记, 如果有人在读取, 则等待.
否则,置为写标记; 读的时候, 如有人在写, 等待否则置为读
标记. 读写结束后设为可用.
 
cAkk,是的,所以我说:"disadvantage of clipboard is ...",更要命的
是,Dos那边,只能用TEXT格式。

通常,要求Window和DOS快速传递信息的,都是配外界设备的,DRIVER是
DOS的,界面是WINDOW的,那PC也就不打算用来干别的了。

Window和Shell Dos之间的信息传递,除了用文件或Clipboard外,似乎
找不到其他办法了。我现在的项目就用的是Clipboard,我告诉老板:
你……你……千万别COPY/PASTE,哈哈。


 
多人接受答案了。
 
JWCHC:

哦,对不起,分数给重复了……Y9Y和歪就歪是同一个人,因为班上
的机器里没有中文输入,我无法用“歪就歪”LOGIN,所以就只好用
Y9Y
 
后退
顶部