AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Возможна ли консольная работа с AkelPad?
Goto page 1, 2  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
bzmn



Joined: 14 Jul 2010
Posts: 6

PostPosted: Wed Jul 14, 2010 2:18 pm    Post subject: Возможна ли консольная работа с AkelPad? Reply with quote

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

Дело в том, что мне переодически надо очищать один такой файл, потому что его объемы достигают очень больших размеров, в то время как в него пишет нужная мне программа, остановка которой для меня критична, но при это мнужно держать определенный размер файла. Возможно ли как-то через командную строку научить AkelPad открывать файл, очищать его содержимое, сохранять. Из командной строки - потому что мне надо автоматизировать данный процесс.

Руками я уже проверил - именно этот тип файлов, заблокированный данным приложением, АкелПад легко очищает/сохраняет. Не ожидал, но это здорово! Как бы только делать это авматически? Smile

FAR данный файл не открывает в режиме редактирования, обычный виндовый блокнот не дает сохранять, а банальная команда echo text > file говорит о занятости данного файла.

Заранее спасибо!

P.S. На самом деле, говоря о большим объемах - я подразумеваю относительную величину (в мегабайт-два) - меня не обламывает количество занятого пространства как таковое, но дело в том, что анализ содержимого данного файла также переодически производит другое приложение, и когда объемы превышают определенные размеры - это становится приличный удар по системе.
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2658
Location: Киев, Русь

PostPosted: Wed Jul 14, 2010 2:28 pm    Post subject: Reply with quote

Отсюда:
Instructor wrote:
Добавлено: возможность использования методов /OpenFile(), /SaveFile(), /Command(), /Call(), /Exec(), /Font(), /Recode(), /Insert() в командной строке. А также добавлены параметры /L+ и /L- для тихого ответа на сообщение о потере символов в указанной кодировке.

Работа видится мне примерно так:
- написать батник, работающий с АкелПадом или скрипт;
- заюзать вышенаписанное из какой-то внешней, постоянно висящей в памяти, проги типа "Планировщика заданий", но которая позволяет периодически выполнять какие-то настраиваемые действия (в данном случае - запускать скрипт).
Back to top
View user's profile Send private message Visit poster's website
bzmn



Joined: 14 Jul 2010
Posts: 6

PostPosted: Wed Jul 14, 2010 4:29 pm    Post subject: Reply with quote

Спасибо большое за оперативный и толковый ответ. Но без образцов совершенно не понимаю данных команд.

akelpad.exe /OpenFile text.txt /command (какая-то команда с функцией очистки?) /SaveFile text.txt. Как-то так?

Вопрос автоматизации запуска батника - совершенно не проблема. Это мой головняк.
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2658
Location: Киев, Русь

PostPosted: Wed Jul 14, 2010 5:40 pm    Post subject: Reply with quote

Всегда рад Smile

bzmn wrote:
akelpad.exe /OpenFile text.txt /command (какая-то команда с функцией очистки?) /SaveFile text.txt. Как-то так?
Думаю да. Хотя я сам не видел пока примеров...(

По аналогии с другими плагами могу предположить, что очистка будет Insert(""), но оно заменит пустотой всё содержимое... Как же оставить там что-нибудь по объёму - не знаю. Возможно как-то через Call() вызвать какой-нибудь скрипт...

Кстати в AkelHelp-Rus.htm есть кое-какое описание!

Если через /Call("Scripts::Main", 1, "MyScript.js", fullfilename), то тогда наверное можно обойтись без /OpenFile и /SaveFile, это всё можно будет сделать внутри.

Как получить полный путь к файлу читайте про аргументы и см. примеры в теме Scripts collection по слову Arguments.
Back to top
View user's profile Send private message Visit poster's website
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5454

PostPosted: Wed Jul 14, 2010 6:26 pm    Post subject: Reply with quote

bzmn
В разрабатываемой 4.4.6 исправил ошибку метода /SaveFile(). С этой версией попробуйте так:
Code:
AkelPad.exe /SaveFile("C:\File.txt", 1251, 0) /Quit
Заместо
Code:
echo.>C:\File.txt

Кстати примеры по использованию есть в AkelHelp-Rus.htm.
Back to top
View user's profile Send private message Send e-mail
bzmn



Joined: 14 Jul 2010
Posts: 6

PostPosted: Wed Jul 14, 2010 7:18 pm    Post subject: Reply with quote

А-фи-геть! Спасибо, спасибо большущее!

Работает.

А где у вас страница с donate? Или просто ЯД номер скажите.

И всё-таки, каким образом ваше приложение умудряется перезаписывать заблокированный файл?
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2658
Location: Киев, Русь

PostPosted: Thu Jul 15, 2010 7:51 am    Post subject: Reply with quote

bzmn wrote:
Работает.

Если не трудно, положите скрипт (если всё-таки писали скрипт) в тему Scripts collection.

И какую прогу использовали для вызова скрипта?
Back to top
View user's profile Send private message Visit poster's website
bzmn



Joined: 14 Jul 2010
Posts: 6

PostPosted: Thu Jul 15, 2010 11:03 am    Post subject: Reply with quote

VladSh, слушай, да ничего оригинального не использовал. Просто заюзал то, что сказал инструктор:

AkelPad.exe /SaveFile("C:\File.txt", 1251, 0) /Quit

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

Видимо, команда просто создает файл, по умолчанию пустой, который перезаписывает нужный мне файл. ЕЩЕ РАЗ ПОВТОРЮСЬ - ДАЖЕ ЗАБЛОКИРОВАННЫЙ СИСТЕМОЙ! это важно.
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2658
Location: Киев, Русь

PostPosted: Thu Jul 15, 2010 11:14 am    Post subject: Reply with quote

bzmn, ясно, спасибо) здорово!))

Имел ввиду: какую прогу используешь для организации "периодичности" вызова батника?
Back to top
View user's profile Send private message Visit poster's website
bzmn



Joined: 14 Jul 2010
Posts: 6

PostPosted: Thu Jul 15, 2010 11:28 am    Post subject: Reply with quote

VladSh wrote:
bzmn, ясно, спасибо) здорово!))

Имел ввиду: какую прогу используешь для организации "периодичности" вызова батника?


Да обычный BAT-ник, выполняющий через каждые 5 секунд анализ содержимого лога от другой программы (ищет определенной содержимое, сигнализирующее об ошибки - как следствие нужные мне действия). Вот это другая программа - дрянь, в которой не настраивается ограничение по размеру лога. И акелпад меня спас!

В общем-то, если тебе так важно содержимое, то алгоритм примерно такой:

:begin
проверка=проверка+1
если проверка равно 1000 - очищаем file.txt через акелпад и обнуляем проверку
иначе C:\delay.exe 5000 s
find "error" file.txt
если содержимое не найдено - goto begin
иначе ACTION!

под последним подразумеваю совершенно специфичные функции. думаю, нафик никому не нужно.
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2658
Location: Киев, Русь

PostPosted: Thu Jul 15, 2010 1:21 pm    Post subject: Reply with quote

Алгоритм - то такое...)

bzmn wrote:
Да обычный BAT-ник, выполняющий через каждые 5 секунд
Мне было интересно, что за прога позволяет запускать батник каждые 5 секунд?? ))

bzmn wrote:
delay.exe
Что это за прога?
Back to top
View user's profile Send private message Visit poster's website
FeyFre



Joined: 07 Aug 2007
Posts: 2058
Location: Vinnitsa, Ukraine

PostPosted: Thu Jul 15, 2010 1:46 pm    Post subject: Reply with quote

Quote:
Мне было интересно, что за прога позволяет запускать батник каждые 5 секунд?? ))
Для настройки периодов запуска пользуем:
С коммандной строки:
C:\WINDOWS\SYSTEM32\AT.EXE
Либо в панели управления:
"Назначенные заданий"
Для того что бы расписание начало работать делаем в командной строке:
Code:
SC CONFIG SCHEDULE START= AUTO
SC START SCHEDULE
Quote:
Что это за прога?
Скорее всего самописная прога, которая ничего не делает заданное время. В принципе с достаточно хорошей точностью можно воспользоваться финтом ушами
Code:
ping -w XXXX -n 1 127.255.255.255
, где XXXX - время в миллисекундах ожидания. Атомной точности конечно не даст, но её и не нужно, особенно на больших промежутках времени.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
VladSh



Joined: 29 Nov 2006
Posts: 2658
Location: Киев, Русь

PostPosted: Thu Jul 15, 2010 2:26 pm    Post subject: Reply with quote

FeyFre, спасибо!

Мне тут это стало интересно...
По "Планировщику": Win FAQ; ещё нарыл вот такие програмульки: xStarter, nnCron.
Back to top
View user's profile Send private message Visit poster's website
FeyFre



Joined: 07 Aug 2007
Posts: 2058
Location: Vinnitsa, Ukraine

PostPosted: Thu Jul 15, 2010 3:06 pm    Post subject: Reply with quote

OFFTOP:
Quote:
ещё нарыл вот такие програмульки: xStarter, nnCron.
Ничуть не мощнее Планировщика. Ну разве что crontab понимает, что по сути фич не добавляет(ибо дайте мне хотя-бы один пример crontab без изменений годный для nix и Win)
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
ccaid



Joined: 15 Jun 2009
Posts: 35

PostPosted: Thu Jul 15, 2010 4:36 pm    Post subject: Reply with quote

в каком-то серверном ресурските, если мне не изменяет склероз, есть программа sleep, которая принимает из ком. строки количество секунд, которое ей надо перекурить до завершения.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian) All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group