Сравнить две таблицы с помощью макроса VBA
Есть много способов проверить две таблицы на схожесть, но некоторые варианты возможно только с помощью макросов VBA. Макросы для того что бы сравнить две таблицы, унифицирует этот процесс и существенно сокращает затраченное время на подготовку данных. Исходя из решаемой вами задачи и знаний макросов VBA, вы можете создавать любые варианты макросов. Ниже я привел методику, указанную на официальной страничке Microsoft. Вам нужно создать модуль для кода VBA и ввести код:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Sub Find_Matches()
Dim CompareRange AsVariant,xAsVariant,yAsVariant ‘ Установка переменной CompareRange равной сравниваемому диапазону Set CompareRange = Range(«B1:B11») ‘Еслисравниваемыйдиапазоннаходитсянадругомлистеиликниге, ‘ используйте следующий синтаксис ‘Set CompareRange=Workbooks(«Книга2»)._ ‘ Worksheets(«Лист2»).Range(«B1:B11») ‘ ‘ Сравнение каждого элемента в выделенном диапазоне с каждым элементом ‘переменнойCompareRange ForEachxInSelection ForEachyInCompareRange Ifx=yThenx.Offset(0,2)=x Nexty Nextx EndSub |
Этот макрос просматривает все элементы в указанном диапазоне и начинает сравнивать его каждым значением диапазона сравнивания. В случае, когда будут найдены одинаковые значения, макрос записывает их в столбик С.
Для использования вашего макроса, вы переходите на ваш рабочий лист, выделяете диапазон (с примера видно, это A1:A11) и нажимаем горячее сочетание клавиш Alt+F8. В новом диалоговом окне выбираете ваш макрос Find_similar и выполняете его.
Как сравнить два файла, в чем у них различия (текст, Word/Excel-документы, Exe-файлы)
Приветствую всех читателей!
Сегодняшняя заметка будет относиться к офисной тематике. (а точнее: речь пойдет о сравнении нескольких документов между собой).
Представьте , у вас есть парочка документов, в которых частично различается текст (например, где-то уже исправленный, а где-то «старый», с ошибками. ). И теперь нужно найти между ними различия, принять их к сведению, и собрать из 2-х файлов один.
Можно, конечно, сориентироваться по дате — однако, далеко не всегда такой подход будет уместен. Но вот если бы какая-то программа нашла и выделила несовпадающие символы (строки). это было бы здорово! 👌
Собственно, о нескольких подобных примерах и пойдет речь в этой заметке.
Текстовые файлы
И так, начать заметку (я думаю) стоит с самых обычных текстовых файлов (коих большинство). Задача перед нами будет следующая : есть два почти одинаковых текстовых файла (в формате TXT), и нужно найти в них отличные строки и символы, и подсветить их (о чем я и сказал выше).
Для работы нам понадобится блокнот 👉 Notepad++ (ссылка на офиц. сайт) . Установка у программы стандартная (поэтому ее опускаю).
Далее делаем следующее:
- запускаем Notepad++ и открываем меню «Плагины / управление плагинами» — в списке плагинов находим «Compare» и соглашаемся на его установку (см. пример ниже 👇);
Устанавливаем плагин в Notepad++
Открываем два нужных файла и жмем кнопку сравнения
Места, где есть различия, были выделены! // Notepad++
Документы Word / Excel (+ текстовые в т.ч.)
Начну с MS Word.
Программа универсальная и позволяет сравнивать как документы формата Docx, так и обычные текстовые файлы (TXT, RTF и пр. форматы).
Делается это так (на примере Word 2019):
- сначала необходимо открыть оба файла в Word (как правило достаточно по нужному файла кликнуть правой кнопкой мыши и в меню указать, что требуется открыть в Word, см. пример ниже 👇) ;
Открываем 2 файла в Word
Рецензирование — Сравнить (Word 2019)
Что получается в итоге // Word подсчитал сколько было мест с исправлениями (в моем случае 8!).
👉 Что касается Excel
С одной стороны — в Excel есть десятки способов, как можно сравнить две таблички между собой, с другой — в зависимости от конкретной задачи в каждом случае нужно «всё подгонять» под себя (универсального способа на все случаи жизни — нет!). 👌
Ниже приведу лишь парочку наиболее простых вариантов (разумеется, есть много др. способов решения).
- для начала необходимо скопировать (сочетания в помощь: Ctrl+C / Ctrl+V) обе таблички на один лист в Excel (в качестве примера у меня табличка с именами 👇);
Пример двух табличек
Выделяем таблицы, и вкл. повторяющиеся значения
Все отличия были найдены!
В Excel есть одна довольно мощная функция ВПР — она позволяет сравнивать 2 таблицы и при нахождении чего-то «несовпадающего» — выполнять условие (скажем, подставить значение из одной таблицы в другую). О том, как с ней работать — показано в одной моей прошлой статье (парочка ссылок ниже).
Др. бинарные файлы Exe, Com и пр. (возможно без расширения)
Сравнить два EXE-файла (или любых других, у которых нет расширения, и вы даже не знаете их тип данных) можно с помощью спец. редактора шестнадцатеричных, десятичных и бинарных файлов. Например, один из доступных для начинающих — это 👉 Hex Editor Neo (ссылка на сайт разработчика).
Как с ней работать : сначала необходимо запустить программу и открыть в ней оба файла (это стандартно, как и в др. софте). Далее перейти в раздел «Tools / File Comparison / Compare Files» . 👇
Hex Editor Neo — инструмент сравнения
В результате Hex Editor Neo автоматически разделит экран поровну на две части и подсветит несовпадающий код. 👇
Разумеется, для дальнейшего редактирования и более-менее осмысленной работы — необходимы определенные знания / либо точно знать, какой кусок нужно удалить, поменять (можно, конечно, поэкспериментировать. но результаты могут быть самыми разными — от ошибок при запуске отредактированного файла, до «вылетов» синих экранов).
Картинки
Вообще, две картинки чаще всего сравнивают просто на «глазок», ставя их одну к одной. Впрочем, для этого можно использовать и спец. утилиты — например, те, которые используются для поиска дубликатов файлов. Я на страницах блога как-то упоминал о них, ссылка ниже в помощь.
Обратите внимание , программа Image Comparer 👇 автоматически выделят на картинках те области, к которым стоит присмотреться (либо есть различие, либо они не четкие и нельзя точно сказать наверняка. )
Image Comparer — скрин работы приложения (от разработчика)
Дополнения по теме (👇), разумеется, приветствуются!
Сравните два файла Excel с помощью функции «Сравнение электронных таблиц».
Spreadsheet Compare – надежное программное обеспечение для сравнения двух файлов или листов Excel. К сожалению, на данный момент он доступен только для устройств с Windows. Он поставляется как отдельная программа, а также встроен в Microsoft Excel, включенный в версии / пакеты Office: Office Professional Plus (2013 и 2016) или Microsoft 365.
Использование сравнения электронных таблиц в Excel
Если ваше приложение Excel является частью вышеупомянутых пакетов Office, вы можете получить доступ к инструменту сравнения электронных таблиц через надстройку «Запрос». Если в вашем приложении Excel нет вкладки «Запрос», вот как ее включить.
- Выберите Файл в строке меню.
- Выберите Параметры на боковой панели.
- Выберите «Надстройки» на боковой панели, выберите «Надстройка COM» в раскрывающемся меню «Управление» и выберите «Перейти».
- Установите флажок “Запросить” и нажмите “ОК”.
Примечание. Если вы не найдете флажок «Запросить» на странице надстроек COM, ваша версия Excel или Office не поддерживает сравнение электронных таблиц. Или, возможно, администратор вашей организации отключил эту функцию. Установите версии Office с предварительно установленным средством сравнения электронных таблиц или обратитесь к администратору вашей организации.
- Откройте оба файла Excel, которые вы хотите сравнить, в отдельном окне, перейдите на вкладку «Запрос» в строке меню и выберите «Сравнить файлы».
- Excel автоматически добавит первый и второй файлы в диалоговые окна «Сравнить» и «С» соответственно. Выберите файлы подкачки, чтобы поменять местами первичный и вторичный файлы, или выберите «Сравнить», чтобы начать сравнение.
Это запустит сравнение электронных таблиц в новом окне, подчеркнув любое несоответствие в вашем наборе данных. Обычные ячейки с разными значениями будут выделены зеленым цветом. Ячейки с формулами имеют фиолетовый формат, а ячейки с макросом имеют бирюзовую заливку.
Выберите «Экспортировать результаты», чтобы сгенерировать и сохранить копию результатов на свой компьютер в виде документа Excel.
В отчете будут указаны листы и ссылки на ячейки с различными наборами данных, а также точные значения старых и новых данных.
Вы можете поделиться отчетом Excel с вашими коллегами, командой или другими людьми, совместно работающими над файлом.
Используйте сравнение электронных таблиц как отдельную программу
Если в вашей версии Excel или Office нет надстройки сравнения электронных таблиц, установите автономное программное обеспечение с веб-сайта разработчика. При установке установочного файла убедитесь, что вы установили флажок «Зарегистрировать и активировать надстройку в Excel».
После установки запустите «Сравнение электронных таблиц» и выполните следующие действия, чтобы использовать программу для сравнения документов Excel.
- Выберите «Сравнить файлы» на вкладке «Главная».
- Щелкните значок папки рядом с диалоговым окном «Сравнить (старые файлы)», чтобы добавить первый документ, который вы хотите сравнить, с инструментом. Добавьте второй файл в поле «К (новые файлы)» и нажмите «ОК», чтобы продолжить.
Сравнение электронных таблиц обработает файлы и выделит ячейки с разными значениями зеленым цветом.
4 способа сравнить два файла по содержимому 40
Друзья, рад вас приветствовать на страницах моего блога. Сегодня хочу рассказать вам о 4 способах сравнения файлов по содержимому. Необходимость найти различия возникает довольно часто. Приходится делать сравнение файлов по типу или размеру. Сравнение файлов в Word и Excel тоже весьма распространённая процедура в офисах и конторах, где постоянно приходится работать с текстовыми документами и таблицами.
Так, последний пример, когда я использовал сравнение двух файлов, — это проблема с работой комментариев. В своём ежемесячном отчёте я упоминал об этом. Причина была всего лишь в одном пробеле. Вы только представьте, как можно найти такое несущественное различие вручную.
И, вообще, работая с файлами сайта, достаточно часто приходиться анализировать код. Делать это вручную нереально. Куда проще воспользоваться подручными средствами, инструментами, которые должны быть у каждого веб-мастера и владельца сайта.
diff для ленивых разработчиков или как сравнить несравнимое
В былые времена, на Windows, для сравнения oracle-схем (читай баз) я удовлетворялся встроенным в Quest Software TOAD сравнивателем. Он был неплох, и со своей задачей справлялся. Но пересев в linux, меня ждало разочарование. Ни один из инструментов не предоставляет даже половины былого комфорта. А именно, элементарное сравнение и мёржинг двух файлов (DDL, SQL, любых исходников — не суть) по несколько тысяч строк в каждом, где каждый отформатирован по-своему а реальных изменений всего-ничего, становится натуральной пыткой.
Поняв тщетность попыток найти необходимый функционал в одном инструменте, я решил поискать костыли в виде сторонних инструментов. А именно — самостоятельные сравниловки и мёржиловки ( compare and merging tools). Перебрав практически все популярные инструменты, выяснилось, что очень немногие (читай почти никто) умели пропускать в сравнении двух текстовых файлов символы конца строки.
Для наглядности, поясню на примере. Допустим у нас есть 2 файла, типично старый и новый.
nFunctionResult := orauser.pack_util.FGetNeededValue ( in_nSomeParam => somevalue );
dbms_output.put_line( ‘Function result: ‘ || nFunctionResult); exception when SOME_EXCEPTION THEN orauser.pack_util.PReportError( ‘SOME_EXCEPTION’ ); when OTHERS THEN orauser.pack_util.PReportError( ‘OTHER exception’ ); end ;
Как видно пытливым человеческим глазом, суть различий файлов ora1.sql и ora2.sql в одном лишь слове и разном форматировании, но их diff абсолютно нечитаем. Вот классический результат их сравнения:
Не улучшает ситуацию и ключ «положить на все пробелы» -w:
Не смотря на то, что в оригинальной документации сказано, что пробелами являются и символы конца строки, заведённый мною баг был закрыт в redhat’ной багзилле с пометкой «НЕ БАГ», а сами ГНУшники отписались что мол да, это БАГ, но БАГ документации. А в последнем письме и вовсе пообещались исправить всё на свете.
Из всех переробованных утилит, наиболее удобная оказалась xxdiff (а конкретнее её опция ignore per-hunk whitespaces), но к сожалению, сама утилита не умела работать с юникод файлами, не имела встроенного редактора. чтобы «на лету» править фалы, не предоставляла CLI для возможной интеграции с другими средствами да и к тому же имела не самый приятный интерфейс.
Но ближе всех по смыслу подошла утилитка коммандной строки dwdiff. Эта небольшая обёрточка вокруг diff выдаёт ровно то, что мне нужно — различия на уровне СЛОВ. Но и без ложки дёгтя не обошлось — вывод этой утилиты своеобразен и стандартных опций для приведения разницы в diff формат не имеет:
С другой стороны, это и не мудрено, ибо стандарнтный patch имеет уровень строки, а в каком виде выводить разницу двух файлов, если они различаются по-дифовски в каждой строке? Этим вопросом я озадачился и списался с автором сей утилиты, коммрадом G.P. Halkes, результатом переписки стал небольшой костыль:
Сей враппер позволяет пользоваться в том числе и с визуальными дифферами, типа kdiff3. Сам скриптик, отточенная версия которого скоро войдёт в состав dwdiff и будет распространятся вместе с ней на радость ленивым кодерам, но кому не терпится уже сейчас опробовать его в работе, никакой магии тут нет:
if ; then echo «Usage: script.sh » exit 1 fi
# First create a version of the old file that is formated like # the new file. TMP=»`mktemp oldconvertXXXXXX`» dwdiff -P -2 -w » -x » «$OLD» «$NEW» > «$TMP»
# . and then call a diff program to show the changes (per line). «$@» «$TMP» «$NEW»
# Finally, clean up the temporary file rm «$TMP»
P. S. Безусловно у описываемой мною проблемы существуют и другие решения. Одно из них — натравить на сравниваемые исходники какой-нить автоформатер. Но мне пришлось отказатся от этого по следующим соображениям: 1) в коллективе выработался некий coding style guide, привести в соответствие с которым любой автоформатер дело не одного даже наверное дня, тратить на это время, чтобы потом разочароваться в выборе пока нет возможности; 2) если откинуть предыдущий пункт, и просто привести копии упоминаемых файлов в какой-нибудь единый формат только для сравнивания, появляется другая задача — как спроецировать найденные различия на оригиналы?
linux для всех
Сравнить несколько документов
В текстовом окне сравнения вы можете выбрать любой текстовый файл или URL. Вы также можете скопировать и вставить простой текст прямо на панель сравнения, чтобы проверить два набора текста на сходство. У вас есть возможность загрузить файл с Google Диска, Dropbox, а также с One Drive. Мы создали надежный инструмент сравнения, чтобы обеспечить охват всех типов документов, поэтому вам не нужно беспокоиться об изменении типа документа для проведения онлайн-сравнения с помощью инструмента сравнения Copyleaks.
Если вы не знаете, как использовать наш инструмент для сравнения документов, мы создали пошаговый метод, который поможет вам сравнить ваши документы в кратчайшие сроки.
- Откройте инструмент «Сравнение текста» и загрузите документ в каждую панель. Документы, которые вы загружаете, будут сравниваться друг с другом на предмет сходства.
- После завершения процесса загрузки запустите процесс сравнения, выбрав «Сравнить».
- Вам будет предоставлен точный отчет об уровне сходства, включая идентичные, похожие и связанные значения.
- Для вашего удобства и использования в будущем вы можете загрузить отчет о результатах сравнения в формате PDF.
Как сравнить две папки?
1: Windiff.exe
Приложение сообщит вам, если оно обнаружило отличия и где. Чтобы просмотреть различия, нажмите кнопку «Развернуть» в правом верхнем углу и дважды щелкните красный результат в окне.
Чтобы актуализировать различия, снова нажмите «Файл»> «Копировать файлы»> выберите, откуда вы хотите скопировать (слева или справа) + «Разные файлы» > «ОК».
2 WinMerge
Отсутствующие файлы будут выделены другим цветом.
Чтобы иметь одинаковую информацию в обеих папках, перейдите на вкладку «Объединить »> «Копировать все влево» или «Копировать все вправо», в зависимости от того, какая информация является полной.
3 FreeFileSync
FreeFile Sync – отличный инструмент для использования, если вы хотите сравнить локальную папку с Google Диском или локальную папку с папкой вашего FTP-сервера, рекурсивно используя FTP или SFTP-соединение.
Затем, чтобы скопировать из одного источника в другой, нажмите «Синхронизировать» и выберите один из вариантов.
Возможно, лучшими из них являются двусторонняя синхронизация, которая идентифицирует и применяет изменения с обеих сторон, или Mirror, что означает, что две папки станут зеркальной копией друг друга.
4 ExamDiff
Как и в предыдущих решениях, различия имеют другой цвет.
Затем, чтобы синхронизировать содержимое, выберите «Правка»> «Заменить блок во втором файле из первого» или «Редактировать»> «Заменить блок во втором файле из второго».
ExamDiff также имеет платную версию Pro, которая добавляет возможность сравнивать каталоги и двоичные файлы, сравнивать локальную папку с папкой на FTP-сервере с помощью встроенных плагинов или синхронизировать файлы и папки между вашим ПК и внешние носители.
5 Используйте Total Commander
Чтобы синхронизировать две папки, в окне сравнения выберите файлы, которые вы хотите скопировать, затем установите флажок между столбцами и нажмите «Синхронизировать».
Как упоминалось ранее, это лишь некоторые из доступных бесплатных инструментов, а не исчерпывающий список. Кроме того, есть больше вариантов, включая инструменты, которые предлагают бесплатные пробные версии, а затем и платные планы.
Если у вас есть рекомендация по использованию аналогичного инструмента, напишите нам в разделе комментариев ниже.
Сравните два листа и выделите различия (с использованием условного форматирования)
Хотя вы можете использовать описанный выше метод для выравнивания книг вместе и вручную просматривать данные построчно, это не лучший способ, если у вас много данных.
Кроме того, выполнение этого уровня сравнения вручную может привести к множеству ошибок.
Поэтому вместо того, чтобы делать это вручную, вы можете использовать возможности условного форматирования, чтобы быстро выделить любые различия на двух листах Excel.
Этот метод действительно полезен, если у вас есть две версии на двух разных листах и вы хотите быстро проверить, что изменилось.
Обратите внимание, что вы НЕ МОЖЕШЬ сравните два листа в разных книгах. Поскольку условное форматирование не может ссылаться на внешний файл Excel, сравниваемые листы должны находиться в одной книге Excel
Если это не так, вы можете скопировать лист из другого файла в активную книгу, а затем провести это сравнение
Поскольку условное форматирование не может ссылаться на внешний файл Excel, сравниваемые листы должны находиться в одной книге Excel. Если это не так, вы можете скопировать лист из другого файла в активную книгу, а затем провести это сравнение.
В этом примере предположим, что у вас есть набор данных, показанный ниже, за два месяца (январь и февраль) на двух разных листах, и вы хотите быстро сравнить данные на этих двух листах и проверить, изменились ли цены на эти товары или нет.
Ниже приведены шаги для этого:
- Выберите данные на листе, где вы хотите выделить изменения. Поскольку я хочу проверить, как изменились цены с января по февраль, я выбрал данные в таблице за февраль.
- Перейдите на вкладку «Главная»
- В группе «Стили» нажмите «Условное форматирование».
- В появившихся вариантах нажмите «Новое правило».
- В диалоговом окне «Новое правило форматирования» нажмите «Использовать формулу, чтобы определить, какие ячейки нужно форматировать».
- В поле формулы введите следующую формулу: = B2Jan! B2
- Нажмите кнопку «Формат».
- В появившемся диалоговом окне «Формат ячеек» щелкните вкладку «Заливка» и выберите цвет, которым вы хотите выделить несоответствующие данные.
- Нажмите ОК.
- Нажмите ОК.
Вышеупомянутые шаги мгновенно подчеркнут любые изменения в наборе данных на обоих листах.
Как это работает?
Условное форматирование выделяет ячейку, когда заданная формула для этой ячейки возвращает ИСТИНА. В этом примере мы сравниваем каждую ячейку на одном листе с соответствующей ячейкой на другом листе (выполняется с помощью оператора not equal to в формуле).
Когда условное форматирование обнаруживает какие-либо различия в данных, оно выделяет это на листе Ян (тот, в котором мы применили условное форматирование.
Обратите внимание, что в этом примере я использовал относительную ссылку (A1, а не $ A $ 1, $ A1 или A $ 1). При использовании этого метода для сравнения двух листов в Excel помните следующее;
При использовании этого метода для сравнения двух листов в Excel помните следующее;
- Этот метод хорош для быстрого выявления различий, но вы не можете использовать его постоянно. Например, если я введу новую строку в любой из наборов данных (или удалю строку), это даст мне неверные результаты. Как только я вставляю / удаляю строку, все последующие строки считаются разными и соответственно выделяются.
- Вы можете сравнивать только два листа в одном файле Excel.
- Вы можете только сравнить значение (а не разницу в формуле или форматировании).
Что такое WinMerge?
WinMerge является Open Source инструментом сравнения и слияния для Windows. WinMerge может сравнивать как файлы, так и папки, отображая различия в визуальной текстовой форме, которые легко понять и обработать.
Особенности (фичи)
WinMerge является весьма полезной для определения мест, которые изменились между версиями проекта, а затем она позволяет объединять изменения между версиями. WinMerge можно использовать в качестве внешнего инструмента определения разностей/слияния, или как автономное приложение.
В дополнение, WinMerge имеет множество вспомогательных возможностей, которые делают процесс сравнения, синхронизации и слития настолько простым, насколько это возможно:
Другое
WinMerge 2.16.14 является самой последней стабильной версией, рекомендуемой для большинства пользователей.
В дополнении ко всему, WinMerge переведен на множество различных языков. Смотрите нашу информацию о переводах WinMerge по вашему языку.
Формула сравнения.
Это самый простой способ соотнесения таблиц в Excel, который позволяет идентифицировать в них ячейки с разными значениями.
Простейший вариант – сопоставление двух таблиц, находящихся на одном листе. Можно соотносить как числовые, так и текстовые значения, всего-навсего прописав в одной из соседних ячеек формулу их равенства. В результате при тождестве ячеек мы получим сообщение ИСТИНА, в противном случае — ЛОЖЬ.
Предположим, у нас имеется два прайс-листа (старый и новый), в которых на некоторые товары различаются цены. При этом порядок следования товаров одинаков. Поэтому мы можем при помощи простейшей формулы прямо на этом же листе сравнить идентичные ячейки с данными.
Результатом будет являться либо ИСТИНА (в случае совпадения), либо ЛОЖЬ (при отрицательном результате).
Таким же образом можно производить сравнение данных в таблицах, которые расположены на разных листах. Процедура сравнения практически точно такая, как была описана выше, кроме того факта, что при создании формулы придется переключаться между листами. В нашем случае выражение будет иметь следующий вид:
Если ваши таблицы достаточно велики, то довольно утомительно будет просматривать колонку I на предмет поиска слова ЛОЖЬ. Поэтому может быть полезным сразу определить — а есть ли вообще несовпадения?
Можно подсчитать общее количество расхождений и сразу вывести это число где-нибудь отдельно.
или можно сделать это формулой массива
Если формула возвращает ноль, значит, данные полностью совпадают. Ну а ежели результат положительный, то нужны более детальные исследования. О них мы и поговорим далее.
Как сравнить два документа если нет ворда?
Что же делать если под рукой нет ворда. Многие люди имея в наличии самый распространённый текстовый редактор, не знают о его огромном потенциале, выходящего за рамки форматирования текста. И если Вы не запомните как сравнить или в у Вас другой текстовый редактор, то выход один, маркировать помеченные на удаление/вставляемые слова одним из следующих способов:
— красным цветом заливать текст на удаление, зеленным на добавление (цвета можете выбрать произвольные, но для этой операции эти самые распространённые).
— зачеркивать удаляемый текст/подчеркивать вставляемый и т.д.
Вдруг если Вы хотите скачать Microsoft Word то переходите на следующую ссылку:
Использование Arrays.equals() метод
В JDK мы можем просто считать файлы целиком в массивы байтов, а затем сравнить оба массива на равенство. Чтобы прочитать все байты из файла в массив байтов, мы можем использовать метод, а равенство байтовых массивов можно проверить с помощью , как показано ниже:
1 |
importjava.io.File; importjava.io.IOException; importjava.nio.file.Files; importjava.nio.file.Path; importjava.util.Arrays; classMain { privatestaticbooleanisEqual(Path firstFile,Path secondFile) { try{ if(Files.size(firstFile)!=Files.size(secondFile)){ returnfalse; } bytefirst=Files.readAllBytes(firstFile); bytesecond=Files.readAllBytes(secondFile); returnArrays.equals(first,second); }catch(IOExceptione){ e.printStackTrace(); } returnfalse; } publicstaticvoidmain(Stringargs) { File firstFile=newFile(«/var/www/first.txt»); File secondFile=newFile(«/var/www/second.txt»); booleanequal=isEqual(firstFile.toPath(),secondFile.toPath()); if(equal){ System.out.println(«Files are equal.»); } else{ System.out.println(«Files are not equal.»); } } } |
Использование Apache Commons IO
Apache Commons IO класс имеет несколько служебных методов для работы с файлами. Чтобы сравнить содержимое двух файлов, мы можем использовать его метод, который возвращает true, только если содержимое обоих файлов одинаково или они оба не существуют.
Этот метод проверяет наличие обоих файлов, проверяет, что оба файла являются обычными файлами, а не каталогом, сравнивает длину обоих файлов или указывают ли они на один и тот же файл, прежде чем прибегать к побайтовому сравнению содержание.
1 |
importorg.apache.commons.io.FileUtils; importjava.io.File; importjava.io.IOException; classMain { privatestaticbooleanisEqual(File firstFile,File secondFile) { try{ returnFileUtils.contentEquals(firstFile,secondFile); }catch(IOExceptione) { e.printStackTrace(); returnfalse; } } publicstaticvoidmain(Stringargs) { File firstFile=newFile(«/var/www/first.txt»); File secondFile=newFile(«/var/www/second.txt»); booleanequal=isEqual(firstFile,secondFile); if(equal){ System.out.println(«Files are equal.»); } else{ System.out.println(«Files are not equal.»); } } } |
Способ 4. Сравнение файлов с помощью командной строки Windows.
Этот способ позволяет сравнивать содержимое файлов без сторонних программ. Достаточно воспользоваться стандартным инструментом операционной системы Windows.
Также этот способ не позволяет редактировать файлы. Для этого нужно использовать другие инструменты. Но, тем не менее с поставленной задачей вы справитесь без дополнительных программ.
Для этого открываете «Пуск» — «Все программы» — «Стандартные» — «Командная строка». И вводите вот эту команду:
Fc /N путь к первому файлу путь ко второму файлу
выглядит это так:
Fc /N C:\Мои документы\file1.txt C:\Мои документы\file2.txt
Готовый результат будет выглядеть так:
Когда различий мало, то их достаточно быстро можно исправить использую для этого уже программы редактирования. Но когда различий много, то анализировать информацию с помощью этого способа достаточно трудно.
Итак, о способах сравнения файлов я вам рассказал, а теперь предлагаю посмотреть видеоурок в, котором я показываю сравнение двух файлов всеми способами.
Уверен, теперь если вам необходимо будет сравнить файлы, то вы легко сможете это сделать, использую один из предложенных способов.
На этом сегодня всё, всем желаю успехов и хорошего настроения и до встречи в новых статьях и видеоуроках!
Нередко при работе приходится сравнивать между собой различные модификации документов, например, исходную и измененную редакции материалов, подготовленных в Word либо в виде PDF-документов или презентаций, рабочую и обновленные версии прайс-листов с изменившимися ценами в Excel, разные версии текстовых документов и т.п
При этом вопрос не в том, какая из версий файлов является более свежей (это и так понятно из свойств файлов), а важно, что именно изменилось в документах с точки зрения содержимого. Сравнивать документы вручную — занятие неблагодарное из-за слишком больших затрат времени и возможности ошибок, ведь не заметить какую-то важную деталь при просмотре проще простого. Гораздо разумнее задачу сравнения файлов перепоручить компьютеру.
В целом, в плане сравнения Word-документов все обстоит достаточно благополучно и без использования вспомогательных инструментов, хотя в версиях Word 2002 и Word 2003 данная возможность надежно скрыта от чужих глаз, и, вероятно, не так много пользователей о ее существовании вообще догадываются
Дело в том, что для сравнения документов здесь нужно вначале загрузить исходный файл. Затем из меню «Сервис» открыть команду «Сравнить и объединить исправления», указать файл, сравниваемый с исходным, и включить флажок «Черные строки». Только после этих манипуляций кнопка «Объединить» превратится в кнопку «Сравнить», и при щелчке по данной кнопке программа и проведет сравнение файлов.
Гораздо разумнее задачу сравнения файлов перепоручить компьютеру.
В целом, в плане сравнения Word-документов все обстоит достаточно благополучно и без использования вспомогательных инструментов, хотя в версиях Word 2002 и Word 2003 данная возможность надежно скрыта от чужих глаз, и, вероятно, не так много пользователей о ее существовании вообще догадываются. Дело в том, что для сравнения документов здесь нужно вначале загрузить исходный файл. Затем из меню «Сервис» открыть команду «Сравнить и объединить исправления», указать файл, сравниваемый с исходным, и включить флажок «Черные строки». Только после этих манипуляций кнопка «Объединить» превратится в кнопку «Сравнить», и при щелчке по данной кнопке программа и проведет сравнение файлов.
Результаты сравнения будут показаны во вновь созданном документе в традиционном режиме рецензирования.
С появлением Word 2007 все стало гораздо проще, поскольку теперь достаточно переключиться на вкладку «Рецензирование», щелкнуть по кнопке «Сравнить» и указать сравниваемые версии документа.
Результат сравнения окажется представленным в новом документе, где слева будет отображен отрецензированный документ с учетом изменений, а справа (друг над другом) — исходный и измененный документы.
Теоретически, в Excel тоже возможно сравнение документов встроенными средствами, правда, только при работе в режиме фиксирования изменений. Однако это неудобно, поскольку каждую из измененных ячеек придется просматривать, наводя на нее мышь, так как изменения, внесенные в документ, отображаются во всплывающих окошках (примерно таких, как обычные примечания).
Во-вторых, если названный режим не будет предварительно включен (команда «Сервис» > «Исправления» > «Выделить исправления», флажок «Отслеживать исправления»), то произвести сравнение XLS-файлов потом окажется невозможно.
@ max software
Довольно часто бывает необходимо быстро посмотреть, чем отличается содержимое двух папок, и затем, возможно, произвести синхронизацию, сделав их содержимое идентичным. Конечно, для этих целей можно создать и потом выполнить специально настроенный профиль синхронизации. Но в случае если требуется лишь однократная синхронизация, создание профиля не вполне оправдано. @MAX SyncUp позволяет вам сравнить и синхронизировать две папки буквально в несколько кликов прямо из Проводника Windows.
Предположим, что вам надо увидеть, чем отличаются клипарты на вашем ноутбуке и стационарном компьютере, и скопировать на ноутбук отсутствующие там файлы. Также будем считать, что @MAX SyncUp установлен на ПК, и папка на ноутбуке доступна по сети.
Для того чтобы быстро сравнить и синхронизировать две папки, проделайте следующее:
На ПК откройте Проводник Windows, выберите папку, в которой хранится клипарт, щелкните правой кнопкой мышки и в контекстном меню выберите пункт Compare and Sync.
В поле Target paths укажите папку на ноутбуке, в которой находится клипарт (используйте кнопку Browse). Это все! Теперь вы можете нажать Proceed, чтобы запустить процесс сравнения. В более сложных случаях вы можете перед этим:
После завершения сравнения папок вам будет показано окно предварительного просмотра файлов, которые будут обрабатываться.
Здесь вы можете просматривать списки одинаковых файлов, различающихся файлов, файлов, которые будут обрабатываться, и т.д. Для этого установите Current view в соответствующее значение. Если необходимо, вы можете вручную изменить автоматически назначенные действия для файла или папки. После того, как вы убедитесь, что программа будет делать именно то, что вам нужно, нажмите Execute для того, чтобы запустить процесс синхронизации, или нажмите Close, чтобы просто закрыть окно без внесения изменений.
После завершения процесса синхронизации отчет о результатах можно посмотреть в Сводном журнале в главном окне программы.