如何像记事本程序一样打开一个已经被其他程序打开的文本文件。并读取其内容?
先放50分,解决了再加分。总分:100-200下面这种方法不行,请不要再贴
AssignFile(F, FileName);
FileMode := 0; {Set file access to read only }
Rewrite(F);//reset(F)也不行!
readln(F,str)
TStringList.LoadFromFile 这样也不行:
hFile := CreateFile(PChar(FileName), GENERIC_READ,
FILE_SHARE_READ, nil, OPEN_EXISTING,
FILE_FLAG_SEQUENTIAL_SCAN, 0);
I/O Error 32 错误用内存流:
mem :TMemoryStream;
Mem.LoadFromFile(FileName);
最终也是调用下面这个api:
CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE,
0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0)
先放50分,解决了再加分。总分:100-200下面这种方法不行,请不要再贴
AssignFile(F, FileName);
FileMode := 0; {Set file access to read only }
Rewrite(F);//reset(F)也不行!
readln(F,str)
TStringList.LoadFromFile 这样也不行:
hFile := CreateFile(PChar(FileName), GENERIC_READ,
FILE_SHARE_READ, nil, OPEN_EXISTING,
FILE_FLAG_SEQUENTIAL_SCAN, 0);
I/O Error 32 错误用内存流:
mem :TMemoryStream;
Mem.LoadFromFile(FileName);
最终也是调用下面这个api:
CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE,
0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0)
Stream := TFileStream.Create(FileName, fmOpenRead+fmShareCompat)只要那个文件不是独占方式打开的.里面的共享方式一个个试。总有一个应该可以。
乱猜的,详细想了一下,又不大可能.记事没这么高级吧... -_-