我的應用程序緩慢地讀取一個浮點數的TextFile。情況會不時發生變化,文件必須重寫。一些示例代碼:如何編寫正在讀取的文件?
procedure TAMI_Column_Selector.read_continuously (file_name: string);
var infile: TextFile;
f: Double;
begin
AssignFile (infile, file_name);
Reset (infile);
try
while not EOF (infile) do
begin
Read (infile, f);
process (f); // this may take quite some time, seconds or even minutes
end; // while
finally
CloseFile (infile);
end; // try..finally
end; // read_continuously //
如何編寫一個可以閱讀的文件?更具體地說:
- 我該怎麼寫一個可以閱讀的文件?
- 如何防止應用程序試圖讀取當時正在編寫 的文件時發生崩潰
- 我的應用程序如何知道文件已被重寫?
我認爲我可以解決第一個問題,即將文件讀入內存並讀取該文件(是否存在可以寫入和讀取內存的TextFile)?然後,我仍然可以測試一個已經寫好的文件。
任何人有一個(優雅)解決這個問題?
在此先感謝。
在Windows 7
讓你的閱讀程序對不完整閱讀有魯棒性。然後使用現代IO(即'TFileStream')而不是Pascal IO。爲您的作家打開文件時指定'fmShareDenyWrite'。爲您的讀者指定'fmShareDenyNone'。或者,使用數據庫! – 2012-04-02 20:07:46
我描述的情況是一個導入設施,所以我使用csv文件。數據庫可以解決所有問題,但在這種情況下不可行。 – Arnold 2012-04-03 04:59:06