Yo para un caso similar utilice la función MoveFile, es decir, primero renombro el archivo y luego lo proceso. Te preguntaras porque renombrarlo y no leerlo y borrarlo, pues muy sencillo, si la función MoveFile tiene éxito quiere decir que ningún otro programa esta usando el archivo, asi evitamos "tocar" el archivo mientras el programa del reloj lo esta usando.
En resumen, seria algo así:
Código Delphi
[-]
while not MovFile('origen.txt','destino.txt') do
Sleep(10);
...
DeleteFile('destino.txt');