[Quote]

    AZJIO
  • 17953
  • Longevity: 6 years 10 months
  • Posts: 1328
  • REPUTATION:127

    [+] [-]
Compare strings
Скачать: yandex upload.ee
Назначение
Сравнивает один/два списка выдавая результат Уникальных или Недостающих строк, также подсчёт и объединение. Допустим есть список подключения IP вчерашний и сегодняшний, можно получить список тех, которые подключались только сегодня, или сравнить два списка орфографии добавленных сленгов, или 2 списка пакетов обновления или два списка кодов драйверов.
Использование
1. Открыть или бросить файл в поле ввода, или скопировать текст и нажать кнопку "Буфер обмена".
2. Нажать старт, откроется файл с результатами сравнения.
3. В качестве разделителя можно использовать любой символ, в том числе метасимволы \r\n\t\f (перенос строки, табуляция и т.д.)
Обновления
Защита от пустых строк в полях ввода
Удаление разделителя в конце строки
Добавлен вывод числа строк и время выполнения задачи в строку состояния.
Добавлено "Объединить строки 2-х файлов"


Last edited by AZJIO on 2022-06-18 21:57; edited 3 times in total

[Quote]

    rekshd
  • 19892
  • Longevity: 6 years
  • Posts: 331
  • REPUTATION:7

    [+] [-]
Как я понимаю, можно пристыковать к ПКМ в проводнике с помощью zRegistration. Сейчас потестю.
Спасибо за очередную полезняшку
aa

[Quote]

    AZJIO
  • 17953
  • Longevity: 6 years 10 months
  • Posts: 1328
  • REPUTATION:127

    [+] [-]
95570 можно пристыковать к ПКМ
нет, но могу сделать, уже не сегодня. На секунду возникала идея переноса в окно сразу двух файлов и они падали бы в свои поля. Просто случай использования проги не частый, но случается время от времени, да и люди по AutoIt3-версии частенько говорили что пригождается.

[Quote]

    rekshd
  • 19892
  • Longevity: 6 years
  • Posts: 331
  • REPUTATION:7

    [+] [-]
95574возникала идея переноса в окно сразу двух файлов и они падали бы в свои поля
Да, текущая версия через zRegostration не заполняется выбранными в проводнике файлами.
А функция то нужная.
При пользовании программой Compare strings в первую очередь и возникнет потребность
сравнить именно два файла.

[Quote]

    AZJIO
  • 17953
  • Longevity: 6 years 10 months
  • Posts: 1328
  • REPUTATION:127

    [+] [-]
rekshd,перекомпилировал с поддержкой ком-строки, т.е. через ПКМ "Отправить". (только на яндекс)

[Quote]

    rekshd
  • 19892
  • Longevity: 6 years
  • Posts: 331
  • REPUTATION:7

    [+] [-]
Крайняя версия, подключенная через zRegistration в проводник, передаёт два выделенных txt или bat файла
в два окна Compare_strings в внутренние окошки №1.
Таким образом пока не получилось передать два разных txt файла в одно окно Compare_strings во внутренние окошки 1 и 2
ai

[Quote]

    AZJIO
  • 17953
  • Longevity: 6 years 10 months
  • Posts: 1328
  • REPUTATION:127

    [+] [-]
rekshd, мы же выясняли вроде уже что программы сравнения, которые требуют двух файлов работают только через "Отправить", любые варианты ком-строки через реестр вынуждают программу запускаться для каждого множественного файла. Если движок обработчика так написан, это не изменить, все претензии к майкрософт.

[Quote]

    Gemostarter
  • 15956
  • Longevity: 7 years 9 months
  • Posts: 323
  • REPUTATION:35

    [+] [-]
AZJIO, Обычно в таких случаях передают данные первому процессу. Запустились, проверили, есть ли запущенный процесс, и если да, то передали ему данные и завершились, не показывая окна. То есть, программа должна сама поддерживать такой вариант. Можно попробовать сделать универсальную "прокладку"...
А по одному файлу в строке вроде все передают, так принято.

[Quote]

    AZJIO
  • 17953
  • Longevity: 6 years 10 months
  • Posts: 1328
  • REPUTATION:127

    [+] [-]
Gemostarter, проги Meld, WinMerge так не делают, несмотря что у них такая же необходимость открывать 2 файла или 2 папки. А также по предыдущей ссылке я отписывал, что правильно получить дескриптор списка, чтобы не запускать прогу дважды. Ну а про твой вариант тоже имеет место быть, вот только это действительно лучше делать через посредника, чтобы запускать на 10 кб небольшой исполняемый файл, а не всю основную программу в память, но тоже есть подводные камни, как запускать копию программы, если она будет пытаться вставлять пути в уже открытую.
rekshd, ты подтолкнул меня на идею добавить поддержку ком-строки везде где это возможно, а это Rename (для папки), Synchronization (для 2-х папок), Search duplicates (для папки), RegExp (для обработки текстового файла, уже давно сделано). Пробую в Linux, в файловом менеджере Nemo и тут нет проблем оба файла получить из выделенного, даже более избирательно, если выделено 2 файла, то только тогда показывать пункт в меню.

[Quote]

    rekshd
  • 19892
  • Longevity: 6 years
  • Posts: 331
  • REPUTATION:7

    [+] [-]
95663Можно попробовать сделать универсальную "прокладку"...
Да, универсальное решение - "прокладка", позволяющая передавать два файла в подобные программы -
было бы идеальным решением !
Ведь позволяющие передавать из контекстного меню проводника в себя два и более файла программы и так используют подобные по функционалу прокладки в виде своих библиотек.
Вот тока заточены эти dll под них самих. Универсальности ноль. am
Думаю, что сделать абсолютно универсальную прокладку в принципе невозможно, но ...
AZJIO стоит попробовать сделать универсальное решение для написанных тобой программ.
Вот это как раз может получиться ah

[Quote]

    bnn17
  • 24171
  • Longevity: 4 years 9 months
  • Posts: 41
  • REPUTATION:0

    [+] [-]
Добрый день.
Давно пользуюсь программой сравнения текстовых файлов - Compare_strings_x64.exe v0.2 2012.12.25
Применяю как контроль для сравнения программ. Быстрая и точная.
К сожалению новая программа Compare strings (PureBasic) v0.4. 2022.06.13
у меня не пошла. При сравнении файлов выводит полный список последнего файла.
Например сравниваю текстовые файлы boot_2_wim.txt и winre_win.txt, программа v0.2 выводит разницу,
а программа v0.4 выводит список файла winre_win.txt. Может что-то не то делаю? Настройки там и там одинаковые.
Windows 10 LTSC2021

[Quote]

    AZJIO
  • 17953
  • Longevity: 6 years 10 months
  • Posts: 1328
  • REPUTATION:127

    [+] [-]
bnn17, разница всё же есть. В AutoIt3 используется "перенос строки", то есть жёстко CRLF, так как используется только винда. В PureBasic в виду того что прога кроссплатформенная и в Linux перенос строки только LF, то введена \r\n или \n, а также важна галочка, которая в виндовом варианте на AutoIt3 отмечена "Вся строка является разделителем", а PureBasic-варианте она не отмечена изначально. Я сам попадал в ситуации когда результат был не ожидаем и был недоволен прогой и пытался исправить, пока очередной раз не приходил к выводу, что опять задал неправильные настройки программы.
В общем чтобы обсуждать нужен скрин программы, чтобы понять правильные ли настройки и если правильны, то скриншот текста в блокноте (AkelPad, Notepad++) с отображением символов \r\n они же CRLF.

[Quote]

    bnn17
  • 24171
  • Longevity: 4 years 9 months
  • Posts: 41
  • REPUTATION:0

    [+] [-]
Прошу прощения за беспокойство.
Неправильно был установлен разделитель при чтении "\r\n\t\f"
При установке "\r\n они же CRLF" разница появляется, но список не отсортирован, потом через excel.
Спасибо за программы.


Display posts:    

Current time is: 18-Jan 00:36

All times are UTC + 3


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
You cannot attach files in this forum
You can download files in this forum