1

Тема: AHK: Удаление файла, записанного скриптом

Здравствуйте!
Файл, записанный скриптом, не может быть удален другой программой. Как это исправить без закрытия или перезагрузки скрипта?

2

Re: AHK: Удаление файла, записанного скриптом

По-моему, это ненормально.

3

Re: AHK: Удаление файла, записанного скриптом

Возможно, надо файл закрыть. Как именно он создаётся в скрипте?

4 (изменено: studentarh, 2012-11-18 23:06:18)

Re: AHK: Удаление файла, записанного скриптом

Происходит так:
1) скрипт создает файл и добавляет в него текст (FileAppend, добавляемый текст, C:\lisparam.txt)
2) другая программа читает этот файл, а затем удаляет его (файл читается, но не удаляется, кроме того скрипт теряет к нему доступ, не может уже ни записать в этот файл новый текст, ни удалить файл)

При этом файл нигде не открыт, программы работают автоматически.
Мне надо было как-то передать данные из скрипта на автохоткей в другой скрипт на autolisp. Хотел через переменные окружения, но не получилось, решил вот через файл - тоже не получается (оба скрипта не могут удалить файл). В autolisp есть функция для закрытия файла, "открытого" для чтения и записи, но она не помогает (не помогает восстановить доступ скрипта на автохоткей к файлу и перезаписать его через этот скрипт).

Помогает перезагрузка скрипта, выполняемая сразу после передачи управления программе на autolisp (тогда программа на autolisp может удалить файл). Но хотелось бы без перезагрузки.

5

Re: AHK: Удаление файла, записанного скриптом

studentarh, попробуй в качестве теста написать скрипт, который читает и удаляет файл, на AHK. Если всё сработает, значит проблема в скрипте на autolisp'е.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

6 (изменено: studentarh, 2012-11-19 14:42:55)

Re: AHK: Удаление файла, записанного скриптом

На автохоткей все работает. Но и на автолиспе без автохоткей тоже все работает. А вместе никак. Но перезагрузка скрипта на автохоткей помогает, то есть возможно файл не удаляется автолиспом из-за связи этого файла со скриптом на автохоткей, которую наверное можно как-то отменить без перезагрузки скрипта (может, для самого автохоткей эта связь - не препятствие). Но если это так, не понятно, как отменить связь без перезагрузки.

Почитаю еще про переменные окружения в автолиспе, если что-то получится, напишу здесь.

7

Re: AHK: Удаление файла, записанного скриптом

На автолиспе не пишу, не могу подсказать. Но на AHK, если файл создаётся или дополняется командой FileAppend, то он автоматически закрывается после этого действия:

The target file is automatically closed after the text is appended (except when FileAppend is used in its single-parameter mode inside a file-reading/writing loop).

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8

Re: AHK: Удаление файла, записанного скриптом

Заработало без перезагрузки, спасибо за ответы!
Ошибка была все-таки в моем скрипте на автолиспе (а именно в отсутсвии этого закрытия файла, которое в автолиспе надо выполнять специальной функцией), но когда я исправлял ошибку, это не помогало, поскольку файл был уже заблокирован, и никак не разблокировался до выключения программ. Теперь проверил все несколько раз - работает.

9

Re: AHK: Удаление файла, записанного скриптом

Я решал проблему передачи данных autolisp->ahk через буфер обмена.

10

Re: AHK: Удаление файла, записанного скриптом

Я как-то не подумал, это лучше, чем через файл. Если можно, приведите вариант такого решения (как именно работать с буфером обмена в autolisp).