IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Обсуждение программ (http://www.imho.ws/forumdisplay.php?f=3)
-   -   REQ: Программа построкового сравнения (http://www.imho.ws/showthread.php?t=108628)

Kdor 21.09.2006 22:14

REQ: Программа построкового сравнения
 
Собвственно сабж - нужна прога. Вернее хотя бы ее название БЕЗ ссылок. Ссылки сам найду.
Итак прога:
Я ей скармливаю файл. В файле в столбик указаны какие-либо названия (к примеру названия музыкальных релизов). В другом столбике напротив этих названий стоит размер этих релизов.
Задаю условие. К примеру - удали мне все строки, где последовательность букв "house". И в итоговом txt или excel файле получаю уже результат БЕЗ строк, в которых встерчалось данное слово и, соответственно, что напротив названия размер тоже удаляется. Пустые строки при сем действии тоже удаляются, т.е. столбик смещается вверх, если был удален релиз.
И еще чтобы прога могла также сравнивать два файла ПОСТРОЧНО. Т.е. брать стоку из первого файла и сравнивать ее СО ВСЕМИ строками второго файла. Далее вторую строку и так далее. Результат - файл с теми строками, которых нет в предидущем файле.
P.S. Excel в качестве проги не предлогать, имхо работа с формалами не катит. Спасибо.

Molt 22.09.2006 20:21

Ответ - коммандная стока. Данное можно реализовать средствами ком. строки

topknot 22.09.2006 20:29

Посмотри в сторону PowerGrep для поиска/удаления/замены и Araxis Merge для сравнения.

Cartman 22.09.2006 20:35

Molt, можешь предложить варианты раелизации - предлагай, а флудить не за чем :mad:

Kdor 22.09.2006 22:06

2 Molt
Приведи пример пожалуйста.

Molt 23.09.2006 00:33

Цитата:

Cartman:
можешь предложить варианты раелизации - предлагай, а флудить не за чем
Конкретно - надо хотя бы знать исходные данные. Ведь даже организация списка на многое влияет. Какой формат, и т.д.

Цитата:

Kdor:
И еще чтобы прога могла также сравнивать два файла ПОСТРОЧНО. Т.е. брать стоку из первого файла и сравнивать ее СО ВСЕМИ строками второго файла. Далее вторую строку и так далее. Результат - файл с теми строками, которых нет в предидущем файле.
Т.е тебе надо получить результат - разницу в списках, я верно понял?
Тогда берем Compare It! , поддерживает консоль, загоняем в качестве аргументов исходные файлы и получаем на выходе файл, в котором и будет указана разница между первым и вторым файлом.
PS - можно и в оконном варианте работать, но насколько я понял тебе лучше один раз посидеть, настроить, и пусть работает - материала много, ручками слишком долго кликать, верно? Ну так опять, в батнике цикл делаешь - и все. В нагрузку можно Synchronize It! - это уже синхронизация каталогов, тоже достаточно большие возможности

Для справки. Compare It!

Программа для сравнения и слияния текстовых файлов. Выделение различий в строках, встроенный редактор с подсветкой синтаксиса, печать, отчеты, поддержка различных форматов файлов, коммандной строки.

Kdor 23.09.2006 03:49

Я в свое время много такого добра перепробовал - названия все счас и не припомню. Что у всех этих программ было плохо, так это принцип их работы. Т.е. они сравнивали своим особым алгоритмом и получалось иногда очень много лишнего добра.
А что мне нужно получить - мне нужно получить в отдельный файл все те строки, что есть в файле №1, но что отсутствую в файле номре 2.

crawler 23.09.2006 06:58

На самом дле серьезных прог для сравненения крайне мало :
WinMerge - мой выбор (бесплатная, неплохая функциональность)
WinDiff - для странных или очень сложных данных, медленная, кривой фейс.
Compare It!
UltraCompare
Araxis Merge (лично с ней не работал, но стоит она 150 $)

Kdor то что тебе надо - лучше всего таки сделать на Екселе. Но можно и коммандной строкой:
Цитата:

find /v "house" input.txt > output.txt
еще можно поиграться с регулярными выражениями - поищи на форуме Regular expressions или regex, но это будет посложнее. Но задача решаема.
Molt - флудер ;)

Kdor 23.09.2006 14:59

2 crawler
Спасибо.
Но возник вопрос - там именно ПОСТРОКОВОЕ сравнение?
Просто вспоминается такая прога, как Active File Compare.
В одном окне вводим данные одного файла, а в другом - другого.
К примеру данные первого файла

Цитата:

Armin_Van_Buurent-Blue_Fear_2004-UK-CDM-2004-USF
armin_van_buuren-the_longest_day-cdm-2005
Armin_Pres_Electric_Movement-Intruder__Pound-Promo_Vinyl-2004-POW
Данные второго файла

Цитата:

Armin_Pres_Electric_Movement-Intruder__Pound-Promo_Vinyl-2004-POW
Armin_Van_Buurent-Blue_Fear_2004-UK-CDM-2004-USF
armin_van_buuren-the_longest_day-cdm-2005
В итоге программа заметит только ДВА совпадения, так как строка 3 первого файла уже не на своем месте, а выше. Два же других совпадения прога удалит, как это и требуется.


P.S. Если есть возможность, то приведи пример как можно сделать сие буйство с помощью excel'я. Только одно НО - в первом файле два столбца (1-ый - название папки-релиза, а 2-ой размер папки), а в другом один столбец (там размер не указан). Поэтому если будет удаляться строка из первого файла, то она должна это делать вместе с размером и потом делать смещение вверх (удаляется и название релиза-папки и ее размер + удаляются пустые строки).

crawler 26.09.2006 12:50

ВинМерж определил Armin_Pres_Electric_Movement-Intruder__Pound-Promo_Vinyl-2004-POW как передвинутую строку ( надо в опциях указать, чтобы искал сдвинутые блоки ). подсветил коричневым - несовпадающие строки он подсвечивает желтым.
Может на сложных сравнениях тебе и не подойдет, но попробуй по любому. Если сначала сортирнуть строки по алфавиту, то проблем должно быть меньше.

Как делать в Екселе - не знаю, но знаю что возможно. Спроси, может кто знаком с VBA, должно быть не очень сложно.


Часовой пояс GMT +4, время: 18:26.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.