Load Log.txt From other apps to Memo - Delphi7

delphi, memo

Solution

The other program has opened the file with a sharing mode that does not allow other processes to read it. Typically this happens when the other application is writing to the file.

There's not a whole lot you can do about this. This is perfectly normal behaviour, and is to be expected. You can try detecting the error, waiting for a short period of time, and re-trying.

Since you are already running this on a timer, the re-try will just happen. So perhaps you just need to suppress those exceptions:

procedure TForm1.TimerTimer(Sender: TObject); 
begin
  try
    Memo1.Lines.LoadFromFile(...);
  except
    on EFOpenError do
      ; //swallow this error
  end;
end;

Note that detecting `EFOpenError` is perhaps a little crude. Perhaps there are other failure modes that lead to that error. However, as a first pass, the code above is a decent start.

Problem

I am trying to record the session log from other applications (Proxifier) to a Memo. I've tried using the command : ``` procedure TForm1.TimerTimer(Sender: TObject); begin Memo1.Lines.LoadFromFile('C:\PMASSH\Proxyfier\Profiles\Log.txt'); end; ``` but at certain times I get an error Can you help my problem above ? I would really appreciate of all the answers. Thanks

Original source