[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 5 месяцев
  • Сообщений: 1307
  • Репутация:127

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


Последний раз редактировалось: AZJIO (2022-06-18 21:57), всего редактировалось 3 раз(а)

[Цитировать]

    rekshd
  • 19892
  • Стаж: 5 лет 7 месяцев
  • Сообщений: 331
  • Репутация:7

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

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 5 месяцев
  • Сообщений: 1307
  • Репутация:127

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

[Цитировать]

    rekshd
  • 19892
  • Стаж: 5 лет 7 месяцев
  • Сообщений: 331
  • Репутация:7

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

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 5 месяцев
  • Сообщений: 1307
  • Репутация:127

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

[Цитировать]

    rekshd
  • 19892
  • Стаж: 5 лет 7 месяцев
  • Сообщений: 331
  • Репутация:7

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

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 5 месяцев
  • Сообщений: 1307
  • Репутация:127

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

[Цитировать]

    Gemostarter
  • 15956
  • Стаж: 7 лет 4 месяца
  • Сообщений: 323
  • Репутация:35

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

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 5 месяцев
  • Сообщений: 1307
  • Репутация:127

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

[Цитировать]

    rekshd
  • 19892
  • Стаж: 5 лет 7 месяцев
  • Сообщений: 331
  • Репутация:7

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

[Цитировать]

    bnn17
  • 24171
  • Стаж: 4 года 4 месяца
  • Сообщений: 38
  • Репутация: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

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 5 месяцев
  • Сообщений: 1307
  • Репутация:127

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

[Цитировать]

    bnn17
  • 24171
  • Стаж: 4 года 4 месяца
  • Сообщений: 38
  • Репутация:0

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


Показать сообщения:    

Текущее время: 27-Июл 13:19

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы