Tôi đang cố gắng mở tệp văn bản để đọc trong ứng dụng Delphi 7, nhưng đang gặp lỗi I/O 32 (chia sẻ vi phạm) vì ứng dụng khác đã mở tệp. Tôi đã cố gắng thiết lập FileMode để "fmOpenRead hoặc fmShareDenyNone" nhưng bây giờ nhận ra điều này không áp dụng cho các tập tin văn bản anyway.Delphi - Chia sẻ tệp văn bản mở vi phạm
Có cách nào để đọc tệp văn bản được mở bởi ứng dụng khác không?
var
f: TextFile;
begin
FileMode := fmOpenRead or fmShareDenyNone; // FileMode IS NOT APPLICABLE TO TEXT FILES!!
AssignFile(f, FileName);
Reset(f);
Tại sao bạn lại quan tâm đến tệp văn bản? Tại sao không sử dụng các lớp luồng cho phép truy cập và chia sẻ tệp đúng cách? – mghie
vì tôi muốn đọc một dòng tại một thời điểm và TFileStream không có phương thức cho điều đó. Tôi cho rằng tôi có thể đọc một bộ đệm đầy đủ và chia thành CR/LF. – Simes
Bạn có thể sử dụng 'TStreamReader' để đọc các dòng từ' TFileStream'. Nó có một phương thức 'ReadLine()' và thực hiện việc đệm trong nội bộ cho bạn. –