有一个文本文件,正在被其他程序写入。 由于想读取文本文件内容。
用 ls:=tstringlist.create;
ls.loadfromfile('1.TXT'); 或者 AssignFile(F,'1.TXT');
均提示次文件被其他程序占用,后者还报I/O错误。 我指向读取里面的内容,并不是改写,请问如何才能读取里面的内容啊。
用 ls:=tstringlist.create;
ls.loadfromfile('1.TXT'); 或者 AssignFile(F,'1.TXT');
均提示次文件被其他程序占用,后者还报I/O错误。 我指向读取里面的内容,并不是改写,请问如何才能读取里面的内容啊。
var
stream:TFileStream;
ls:TStringList;
begin
ls:=tstringlist.create;
stream := TFileStream.Create('',fmOpenRead);
ls.LoadFromStream(stream);
end;
如果 1.txt 正在打开
取这个窗口的句柄,一般是 '1.txt - 记事本'
然后取edit控件的内容,因为1.txt是在记事本软件的edit控件里显示的// 以下是查找窗口 Edit 的代码:
function MyFindWindow : THandle;
const
// 父窗口类名数组
A_szClassName : array [0..1] of PChar = (
'Notepad',
'Edit'
);
// 父窗口标题数组
A_szWinName : array [0..1] of PChar = (
'1.txt - 记事本',
''
);
var
i : Integer;
hLastWin : THandle;
begin
// 首先求得顶级父窗口
hLastWin := FindWindow(A_szClassName[0], A_szWinName[0]);
// 逐次用FindWindowEx函数求出各级子窗口
for i:=1 to 1 do
begin
hLastWin := FindWindowEx(hLastWin, THandle(nil),
A_szClassName[i], A_szWinName[i]);
end;
result := hLastWin;
end;
// 举例: hLastWin : THandle;
// hLastWin := MyFindWindow();