社区
C#
帖子详情
怎么读取正在使用的文件
yuyu46569
2011-09-09 03:14:33
我的程序调用一个DLL, 这个DLL调用的时候会计算很长时间,计算的过程中会产生一个data.DAT文件, 并且不停的往里面写数据, 现在有个问题,就是让DLL产生data.DAT文件之后,我程序另一个地方再去读取它,并且去读取data.DAT里面的数据行数。 请问如何去实现。 最好有详细代码。谢谢
PS:data.DAT文件是一直被DLL程序占用的。
...全文
162
14
打赏
收藏
怎么读取正在使用的文件
我的程序调用一个DLL, 这个DLL调用的时候会计算很长时间,计算的过程中会产生一个data.DAT文件, 并且不停的往里面写数据, 现在有个问题,就是让DLL产生data.DAT文件之后,我程序另一个地方再去读取它,并且去读取data.DAT里面的数据行数。 请问如何去实现。 最好有详细代码。谢谢 PS:data.DAT文件是一直被DLL程序占用的。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
longbin891012
2011-09-09
打赏
举报
回复
既然只有读的权限 ,就把文件copy出来一份至于命名规则由你自己定,当他读完时 再把文件删除掉
yuyu46569
2011-09-09
打赏
举报
回复
[Quote=引用 10 楼 bunliney 的回复:]
引用 7 楼 yuyu46569 的回复:
引用 6 楼 bunliney 的回复:
引用 2 楼 yuyu46569 的回复:
引用 1 楼 wwlyqin 的回复:
自己去写程序吧。。。
dll打开文件时以写独占方式打开。。另外的程序以只读打开去读取。
我的意思是是DLL计算的时候程序怎么去执行我的那个 获取data.DAT文件行数的 方法。 程序执行DLL的时……
[/Quote]
你这个方法可以行的通。
不过详细的能给点代码么,谢谢了
萧炎
2011-09-09
打赏
举报
回复
读取进程不就对了么LZ
funxu
2011-09-09
打赏
举报
回复
用读写锁控制dll写文件的时候模式选择 FileShare.ReadWrite,这样当dll不写文件的时候可以允许其他程序读取
另外用内存映射倒是也可以,不过不能保证读文件的时候,写操作是不是正在修改文件
Bullatus
2011-09-09
打赏
举报
回复
[Quote=引用 7 楼 yuyu46569 的回复:]
引用 6 楼 bunliney 的回复:
引用 2 楼 yuyu46569 的回复:
引用 1 楼 wwlyqin 的回复:
自己去写程序吧。。。
dll打开文件时以写独占方式打开。。另外的程序以只读打开去读取。
我的意思是是DLL计算的时候程序怎么去执行我的那个 获取data.DAT文件行数的 方法。 程序执行DLL的时候不是要等DLL执行完程序才跳出来么? 现在是这……
[/Quote]
让DLL向tim通信,每次关闭流时通知tim,然后tim接收到通知后开始读取,在下一次dll写入时再次通知tim并等待tim反馈操作结束,然后开始再次写入。
WillWang
2011-09-09
打赏
举报
回复
直接按行读,或者一个字符一个字符的读。因为文件没写完,获取行数不准确的
WillWang
2011-09-09
打赏
举报
回复
读的时候带读阻塞?不知道FileStream按行读的时候会不会阻塞。
如果不行,那就在线程里读一次,读不到就sleep,然后继续读。
写应该是一直打开的吧?
可以写代码试验一下。
yuyu46569
2011-09-09
打赏
举报
回复
[Quote=引用 6 楼 bunliney 的回复:]
引用 2 楼 yuyu46569 的回复:
引用 1 楼 wwlyqin 的回复:
自己去写程序吧。。。
dll打开文件时以写独占方式打开。。另外的程序以只读打开去读取。
我的意思是是DLL计算的时候程序怎么去执行我的那个 获取data.DAT文件行数的 方法。 程序执行DLL的时候不是要等DLL执行完程序才跳出来么? 现在是这个问题, 要怎么去读取文件行数我会
在线……
[/Quote]
比如我获取文件行数的方法 叫 tim()
我DLL和tim()方法 都是用的线程, 只是两个都用线程的话,在刚开始执行tim()时DLL还没有产生data.DAT文件,那我tim()方法里面会报找不到data.DAT文件的错。
Bullatus
2011-09-09
打赏
举报
回复
[Quote=引用 2 楼 yuyu46569 的回复:]
引用 1 楼 wwlyqin 的回复:
自己去写程序吧。。。
dll打开文件时以写独占方式打开。。另外的程序以只读打开去读取。
我的意思是是DLL计算的时候程序怎么去执行我的那个 获取data.DAT文件行数的 方法。 程序执行DLL的时候不是要等DLL执行完程序才跳出来么? 现在是这个问题, 要怎么去读取文件行数我会
[/Quote]
在线程中执行DLL
Bullatus
2011-09-09
打赏
举报
回复
我能像到的是,DLL在写文件时,是计算一段时间写一次,写完后立刻关闭流,下次写的时候再打开。
另一个程序则在DLL关闭流后开始读取一直到读取完或DLL又要写数据。
可能DLL与另一个程序需要互相进行通信已保证交替进行操作
火星大能猫
2011-09-09
打赏
举报
回复
有难度
libolei
2011-09-09
打赏
举报
回复
copy出来
yuyu46569
2011-09-09
打赏
举报
回复
[Quote=引用 1 楼 wwlyqin 的回复:]
自己去写程序吧。。。
dll打开文件时以写独占方式打开。。另外的程序以只读打开去读取。
[/Quote]
我的意思是是DLL计算的时候程序怎么去执行我的那个 获取data.DAT文件行数的 方法。 程序执行DLL的时候不是要等DLL执行完程序才跳出来么? 现在是这个问题, 要怎么去读取文件行数我会
WillWang
2011-09-09
打赏
举报
回复
自己去写程序吧。。。
dll打开文件时以写独占方式打开。。另外的程序以只读打开去读取。
XML
文件
要
读取
的XML
文件
rddata.m -- MIT-BIH ECG 信号的数据
读取
Matlab程序
MIT-BIH ECG 信号的数据
读取
Matlab程序,能够
读取
MIT-BIH数据库 .atr、.dat、.hea三种
文件
的数据,根据这些数据计算出实际的心电信号值,并绘制出信号波形。
读取
某人的消息列表
`.doc`
文件
(readme.doc)可能是文档说明,`.txt`
文件
(README.txt)通常用来提供项目的基本信息或
使用
指南。 5. 编程实践:在Java编程中,类如`toprog`、`toprogProxy`、`UIN`和`upsilonprog`可能是程序的不同组件...
poi.jar 全部jar包程序
文件
要
使用
Apache POI
读取
Excel数据,首先需要导入poi.jar到项目类路径中。然后,你可以创建一个Workbook对象,代表整个Excel
文件
,再通过Sheet对象来访问每个工作表,最后通过Row和Cell对象来获取具体单元格的数据。...
commons-codec-1.8官方JAR包程序
文件
commons-codec-1.8官方JAR包,供亲们下载~~~
C#
111,092
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章