Page 1 of 4

Контрольная сумма выделения

Posted: Fri Feb 08, 2013 7:03 am
by akkorn
Шапка:
Текст скрипта имет свой постоянный адрес и находится здесь:
viewtopic.php?p=21273#p21273

Текст первого сообщения в этой ветке:
Здравствуйте.
Порыскал по форуму, не нашел. Скажите, можно ли в AkelPad встроить функцию вывода контрольной суммы выделенного текста. Желательно в статус-строке. Таким образом можно было бы сравнивать два куска текста. Это на мой взгляд была бы очень удобная фича и она прекрасно бы заменила существующий аналог, который показывает только один символ перед курсором
(я про %cl и %CH в файле AkelPad.ini в блоке [Options], пункт StatusUserFormat).

Спасибо :wink:

Posted: Fri Feb 08, 2013 10:05 am
by VladSh
akkorn
Имеется скрипт getHash.js, но он работает либо диалогом либо копированием текста в буфер обмена. Нужно попросить Infocatcher'а добавить режим вывода в Log-плагин, и Ваша проблема решается красиво и непринуждённо :)
Думаю, что идея здравая, и когда он увидит, то добавит эту функциональную возможность.

Posted: Fri Feb 08, 2013 10:25 am
by Infocatcher
VladSh wrote:добавить режим вывода в Log-плагин
Правда, это не совсем то, что просили. :)

Posted: Fri Feb 08, 2013 10:39 am
by VladSh
Infocatcher
Ну да. Не добавление в StatusUserFormat (что я считаю чрезмерным и излишним).
Но зато решает задачу сравнения.

Хотя, по большому счёту это же решается с помощью плага HexSel. Но вот если бы допилить (возможно опционально) этот плаг вот так, то сравнение было бы очень удобным.

Posted: Fri Feb 08, 2013 1:29 pm
by akkorn
Здравствуйте всем :)
VladSh wrote:Infocatcher
Ну да. Не добавление в StatusUserFormat (что я считаю чрезмерным и излишним).
Но зато решает задачу сравнения.

Хотя, по большому счёту это же решается с помощью плага HexSel. Но вот если бы допилить (возможно опционально) этот плаг вот так, то сравнение было бы очень удобным.
Согласен. Это должен быть плагин, который можно будет отключить (представьте тормоз при выборе текста из открытого >10 мб файла).

На самом деле идея пришла из архиваторов- увидел контрольные суммы файлов (WinRAR, 7-zip) и подумал, что CRC32 текстового файла- это CRC самого текста в файле.
VladSh wrote:akkorn
Имеется скрипт getHash.js, но он работает либо диалогом либо копированием текста в буфер обмена. Нужно попросить Infocatcher'а добавить режим вывода в Log-плагин, и Ваша проблема решается красиво и непринуждённо :)
Думаю, что идея здравая, и когда он увидит, то добавит эту функциональную возможность.
На самом деле идея была такая: Есть (будет/ не будет) поле. Открыл два текстовых файла (как пример, да?) в двух вкдадках, нажал в каждой Ctrl+A и сравнил 8 символов (это от CRC32). Сходятся- значит тексты одинаковы. Не сходятся- нет.

Вот и вся задумка.

Всем пАсибки :wink:

Posted: Fri Feb 08, 2013 2:34 pm
by VladSh
akkorn
Если вопросы по конкретным плагинам, то ищем его тему и задаём там, если по скриптам, то в теме "Дискуссии скриптов". Если какие-то предложения по проге, то ищем в форуме "Discussion (Russian)", если есть такая тема уже поднималась, продолжаем. Если нет, то зависит от вопроса, если идейка маленькая, то сюда кидаем, если же предполагает обсуждение, создаём отдельную тему.
Как-то так.

По первой части - см. плагин HexSel, им и сейчас можно пользоваться (для выделения в одном файле).
Хотя я за доработку getHash.js.

Для визуального сравнения файлов можно попробовать WinMerge.js. У меня всё работает, но при каких-то неопределённых условиях возникает ошибка. К сожалению никто в этом так и не помог :( А скрипт реально хороший.

Posted: Sat Feb 09, 2013 7:01 am
by Instructor
akkorn wrote:На самом деле идея была такая: Есть (будет/ не будет) поле. Открыл два текстовых файла (как пример, да?) в двух вкдадках, нажал в каждой Ctrl+A и сравнил 8 символов (это от CRC32). Сходятся- значит тексты одинаковы. Не сходятся- нет.
Я делаю так:
- выделяю кусок текста в первом файле или Ctrl+A, если нужно весь файл сравнить, и копирую его.
- переключаюсь на второй файл, перехожу в начало файла, вызываю диалог поиска (Ctrl+F), вставляю в поле поиска скопированный текст и нажимаю найти (или F3 в диалоге).

Posted: Sun Feb 10, 2013 6:37 pm
by Infocatcher
VladSh wrote:Хотя я за доработку getHash.js.
Ok: viewtopic.php?p=21218#p21218
Впрочем, я не уверен, что так будет удобно сравнивать. :)

Posted: Mon Feb 11, 2013 1:12 pm
by akkorn
Instructor wrote:Я делаю так:
- выделяю кусок текста в первом файле или Ctrl+A, если нужно весь файл сравнить, и копирую его.
- переключаюсь на второй файл, перехожу в начало файла, вызываю диалог поиска (Ctrl+F), вставляю в поле поиска скопированный текст и нажимаю найти (или F3 в диалоге).
Согласен. Вы ищите выделенный текст. Найдет- значит он есть в тексте 2 файла. Можо и так, но это уже другая песня...

Кстати, по поиску не подскажете?
Поле поиска в AkelPad. На WinXP я вижу значок перевода строки, на Win7- не вижу его... Чтотакое и как вернуть оное?
Пасибки :)

Posted: Mon Feb 11, 2013 4:01 pm
by FeyFre
akkorn, шрифт. То что Вы видите - квадратик - подстановка для отображения символов нелпределенных в шрифте. В 7-ке очевидно доопределили(пустышкой).

Posted: Sun Feb 17, 2013 11:05 am
by akkorn
FeyFre wrote:akkorn, шрифт. То что Вы видите - квадратик - подстановка для отображения символов нелпределенных в шрифте. В 7-ке очевидно доопределили(пустышкой).
Спасибо за пояснение. Однако, вопрос остался: можно ли это как-нить изменить? Правда теперь этот вопрос связан с OS Win7, а не с AkelPad-ом.. Потому вопрос снимается наверно. :cry:

Posted: Sun Feb 17, 2013 2:28 pm
by akkorn
Всем здрасть. Ждать не стал- наваял утилитку, которая выводит CRC32, переданного ей в командной строке, текста. Плюс запоминает текущий результат и сравнивает его с предыдущим.

Скачать утилитку можно тут: http://webfile.ru/6381950

Назвал ее CRC32txt.

Теперь новая проблема: мне в нее ни как не передать ВЫДЕЛЕННЫЙ текст.. Использую для ее запуска плагин ToolBar.
Команда для запуска проги такая:

Code: Select all

"Узнать CRC32 выделенного текста" Exec('%a\AkelFiles\Source\Resources\CRC32txt.exe %t') Icon(38)
Правда надо понимать, что переменной %t в программе не существует. Для примера можно отправить программе переменную %f или %d, но это для проверки работы...

p.s. пока программка в тестовом режиме, поэтому внизу сообщения я дополнительно вывожу переданный текст. Текст выводится с обрамлением значками (что бы можно было отслеживать невидимые символы (пробелы)). Еще для минимизации размера файла я пока туда не залил значок, ибо размер сразу вырастет кб на 10..

Что делать? Как можно получить выделенный текст в программе? Я конечно могу написать более тяжелую утилиту, отслеживающую кто ее запустил, и поиском в том окне выделенного текста... Тока нужно ли оно, если создатель сможет вывести в переменную выделенный текст.. Хотя тоже под вопросом...

В общем вопросов куча. А хакерскими способами действовать не хочу.

Что посоветуете?

p.s. в моей программе (ссылка выше) нет вирусов и всякой другой чепухи. Это на всяк.случай :)
pp.s. утилитку проверить просто: Создайте bat-файл и вызывайте ее с командной строкой. Либо просто можно на нее что-либо перетащить.

Posted: Sun Feb 17, 2013 3:20 pm
by KDJ
akkorn
You can use standard script EvalCmd.js:

Code: Select all

"Узнать CRC32 выделенного текста" Call("Scripts::Main", 1, "EvalCmd.js", "AkelPad.Exec(AkelPad.GetAkelDir(1)+'\\Source\\Resources\\CRC32txt.exe '+AkelPad.GetSelText());") Icon(38)

Posted: Sun Feb 17, 2013 3:38 pm
by akkorn
KDJ wrote:akkorn
You can use standard script EvalCmd.js:

Code: Select all

"Узнать CRC32 выделенного текста" Call("Scripts::Main", 1, "EvalCmd.js", "AkelPad.Exec(AkelPad.GetAkelDir(1)+'\\Source\\Resources\\CRC32txt.exe '+AkelPad.GetSelText());") Icon(38)
Выводит ошибку:

Code: Select all

Невозможно открыть файл "..\AkelPad\AkelFiles\Plugs\Scripts.dll"
Да и что-то я не найду ни Scripts.dll ни EvalCmd.js

Posted: Sun Feb 17, 2013 3:44 pm
by KDJ
akkorn
You must to install Scripts plugin.