Страница 144 из 198

Добавлено: Вс авг 05, 2012 21:35
480499497
В том то и дело, что пока син выполняет >%Temp%\synWr$$.txt
он не может обратиться к файлу пока не завершит запись, а она не закончиться так как демон работает постоянно.
Но ситуация проясняется.

Думаю стоит попробовать реализовать или загрузку строки не в файл а в масив, либо же сделать опцию которая будет регулировать из какого файла делать загрузку и при каком событии.

Сейчас в голову пришла идея смотри.
при выполнении акого сложного вызова

Код: Выделить всё

cmd /c start cmd /k "c:\Program Files\nodejs\Node.exe" "d:\dev\server.js"
Происходит вызов нового процесса с выводом в консоль ответа обработчика не в прямом потомке командной строки от Син а в НОВОМ процессе командной строки. Можно доработать строку вызова таким образом что бы формировать НОВЫЙ файл отчета, к примеру synTemp$$.txt

Код: Выделить всё

cmd /c start cmd /k '"c:\Program Files\nodejs\Node.exe" "d:\dev\server.js">%Temp%\synTemp$$.txt'
Почему нужен имено новый? Потому что сейчас при попытке добавить в synWr$$.txt возвращается ответ
The process cannot access the file because it is being used by another process.

И всё что останеться это прикрутить в Син опцию где в ручную можно будет указан файл обмена консольными ответами. И подцепить функцию чтения файла (и вывода её в панель Вывод в самом Син) с задержкой скажем в 5 секунд, и каждые пять секунд добавлять новую запись в панель либо очищать и перезаписывать её.

Тоесть три опции получается:
Путь файла отчета внешнего обработчика
Время интервала опроса файла
Режим перезаписи панели Вывода

Таким образом мы сможем производить вывод консоли от внешнего обработчика который будет НЕЗАВИСИМО работать от самого Син.

п.с.
пока что же, я наблюдаю ответы Node.exe в черном окне CMD пускай не идеальный вариант но работает.

Posted after 10 minutes:

меня осинило. Всё проще чем мы думали.
ты говорил
cmd.exe /c"здесь комстрока" >%Temp%\synWr$$.txt
просто замени cmd.exe /c на
cmd /c start cmd /k
и стандартный вариант с synWr$$.txt должен заработать как нужно в новом процессе.

п.с. в нашем случае нужно правда вместо /k писать /c что бы консоль пропадала.

Добавлено: Вс авг 05, 2012 22:03
Alextp
-просто замени cmd.exe /c на
cmd /c start cmd /k

Чтото не вижу как он заработает. все равно первый cmd будет ждать завершения процесса-но не дождется...

Добавлено: Вс авг 05, 2012 22:08
480499497
команда START запускает новый процесс без ожидания его завершения.
что бы cmd начал ждать с командой start нужно применять параметр /w а без него это что то вроде асинхронного запуска. Дочирний процес запускается, а родительский продолжает свою работу забывая о том что у него был произведен вызов.

Добавлено: Вс авг 05, 2012 22:24
Alextp
Это да. но после запуска 2й консоли через start первая закроется, вывод ее -почти никакой- покажется в Сине. т.е. вывод демона не захватится. тут надо городить опции типа предложенных. Неохота для такого спецслучая...

Добавлено: Вс авг 05, 2012 22:34
480499497
ну впринципе да... файл будет сформирован пустой.

Но нам ничто не мешает доработать вызов, что бы файл отчета формировался второй консолью а не той что закрывается.

Тогда файл отчета будет постоянно дополняться деманом через вторую консоль, а Син при этом сможет брать из этогофайла данные для вывода.

Это попроще чем делать все эти опции.

Добавлено: Вс авг 05, 2012 22:36
Alextp
еще: чтение вывода(другого) каждые 5 сек может быть плохо: замедлится реакция Сина, и ухудшится навигация по списку вывода- список будет дергаться и т.д.

Добавлено: Вс авг 05, 2012 22:46
480499497
Ладно, тогда оставим это на как нибудь потом.
как я и говорил в самом начале, через командную строку это так... вариант для ленивых.
Впринципе я себе вариант вывода информации сделал уже.
Единственое что я тебя попрошу сделать, это
выделить функцию парсинга synWr$$.txt в отдельную опцию.
Что бы можно было в ручную её вызывать по горячей кнопке независимо от того есть ли автоматическое перехватывание строк или стоит выключено.

я тогда схитрить могу

поставлю не делать перехват сток, сформирую его в ручную (своими средствами), и потом горячей кнопкой (Ф4 например) заполнять панель ответа из формированого synWr$$.txt

Тоесть всего одна опция в меню ВНЕШНИЕ ИНСТРУМЕНТЫ
всунь туда поле для определения горячей кнопки для вызова парсинга.
Остальное впринципе и не важно будет.

п.с. ну и ОБНОВИТЬ в контекстном меню самой панели вывод тоже будет в тему.

Добавлено: Вс авг 05, 2012 22:53
Alextp
сделаю в общем списке клавиш. Ладно

Добавлено: Вт авг 07, 2012 23:24
Alextp
Avada
как лучше перевести [x]Wrap search? Перенос поиска -криво. Зациклить поиск-не ахти.

Добавлено: Ср авг 08, 2012 07:40
Avada
"Циклический поиск" или "По всему тексту".

Добавлено: Ср авг 08, 2012 11:21
kvichans
Смотрю последний History

Код: Выделить всё

+ help topic "Misc -- Customizing Status Line"
Полезно. Пока можно использовать только

Код: Выделить всё

{LineNum} Caret's line number 
{ColNum} Caret's column number 
{TotalLines} Total lines count 
{TotalChars} Total characters count 
{SelLines} Number of selected lines 
{SelCols} Number of selected columns, for column blocks 
{SelChars} Number of selected characters 
- Надеюсь список будет расширяться. Например, хотелось бы сюда вставить дату последней модификации в полном формате (как в Свойствах: 01.11.2012 23:55:59) или в компактном (01.11.12 23:55).
- Поскольку формирование текста доверено пользователю, то логично было бы дать ему же управление шириной панели, где этот текст появится

Добавлено: Ср авг 08, 2012 13:46
Alextp
Да, это логично, сделаю

Добавлено: Сб авг 11, 2012 00:23
Alextp
+ ini: пар-р задания размера статуса + макро {FileSize} {FileDate} {Filedate2}
beta

Добавлено: Сб авг 11, 2012 12:21
Alextp
+ тип вывода "Replace word" в ext.tools

Добавлено: Сб авг 11, 2012 12:54
mp3svala
Alextp писал(а):+ ini: пар-р задания размера статуса + макро {FileSize} {FileDate} {Filedate2}
beta
интересное нововведение, ещё бы само поле для отображение расширить, а то не всё влезает