Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 10 ]
- vadim19
- рядовой
- Неактивен
- Зарегистрирован: 01.06.2011
- Сообщений: 3
Тема: Как удалить одинаковые слова?
Есть два документа с текстом (многостраничные документы, или большие текстовые файлы). Надо сделать так, чтобы в первом
файле остались только те слова, которых нет во втором, а во втором файле остались только те слова, которых нет в первом.
...
Например, в первом файле: мама папа бабушка дедушка
Во втором файле: мама брат сестра бабушка дедушка
...
Нужно сделать, чтобы файлы стали иметь такое содержание:
Первый файл: папа
Второй файл: брат сестра
...
То есть, из обоих файлов удаляются одинаковые слова, принадлежащие обоим файлам, оставляя лишь неповторяющиеся,
а удаляемые слова (одинаковые) нужно записать в третий файл.
Тогда, третий файл, согласно примеру выше, будет таким:
мама бабушка дедушка
...
Может быть есть макрос (программа или скрипт), которые бы работали подобным образом (без ввода искомых слов вручную)?
...
Чтобы работало под Windows.
...
Спасибо всем, кто пытается помочь.
- ЮВ
- генерал-лейтенант
- Неактивен
- Зарегистрирован: 28.07.2010
- Сообщений: 284
- Поблагодарили: 43
Re: Как удалить одинаковые слова?
vadim19 пишет:Может быть есть макрос (программа или скрипт), которые бы работали подобным образом (без ввода искомых слов вручную)?
.
Может, я ошибаюсь (тогда компетентные товарищи поправят), но программы для решения вашей специфической проблемы нет.
Все существующие программы сравнения файлов предназначены, как правило, для визуального сравнения
(текстов программ, версий документов и т. п.). Несовпадения (различия) выделяются цветом.
К тому же ваша проблема не сводится к сравнению файлов.
Вам надо писать собственную программу.
Алгоритм примерно следующий:
1 Составляете отсортированный список (без дубликатов) всех слов первого документа.
2 Аналогично для второго документа.
3 Далее в цикле:
- берете очередное слово из первого списка и проверяете, есть ли оно во втором списке.
Если да, удаляете из обоих списков и помещаете его в выходной файл совпадающих слов.
Если нет, ничего не делаете, переходите к следующему слову.
- vadim19
- рядовой
- Неактивен
- Зарегистрирован: 01.06.2011
- Сообщений: 3
Re: Как удалить одинаковые слова?
ЮВ пишет:1 Составляете отсортированный список (без дубликатов) всех слов первого документа.
2 Аналогично для второго документа.
3 Далее в цикле:
- берете очередное слово из первого списка и проверяете, есть ли оно во втором списке.
Если да, удаляете из обоих списков и помещаете его в выходной файл совпадающих слов.
Если нет, ничего не делаете, переходите к следующему слову.
Спабисо, ЮВ.
1 и 2 пункты я умею делать. У меня даже есть для этих целей рабочие и макросы и скрипты, я ими постоянно пользуюсь. Здесь проблем не будет. А вот с третьим пунктом, если можно подробнее расскажите, как сделать.
- ЮВ
- генерал-лейтенант
- Неактивен
- Зарегистрирован: 28.07.2010
- Сообщений: 284
- Поблагодарили: 43
Re: Как удалить одинаковые слова?
vadim19 пишет:1 и 2 пункты я умею делать. У меня даже есть для этих целей рабочие и макросы и скрипты, я ими постоянно пользуюсь. Здесь проблем не будет. А вот с третьим пунктом, если можно подробнее расскажите, как сделать.
Имхо, третий пункт проще всего реализуется с помощью какой-нибудь СУБД.
В БД надо будет создать две таблицы и загрузить в них списки слов из пункта 1 и 2.
Потом с помощью простых SQL-запросов можно будет выбирать интересующую информацию, например,
список одинаковых слов
select tab1.слово from tab1, tab2 where tab1.слово=tab2.слово;
Подобными запросами можно получить список слов, присутствующих в первом документе и отсутствующих во втором,
и наоборот, иcключить совпадающие слова и т. п.
- Вождь
- Модератор
- Неактивен
- Зарегистрирован: 07.01.2010
- Сообщений: 745
- Поблагодарили: 181
Re: Как удалить одинаковые слова?
Есть идея склеить все в один документ разделив, например, разрывом страницы/раздела. Где-то так:
текст документа 1
- разрыв -
текст документа 2
- разрыв -
здесь будут удаленные (одинаковые) слова
Тогда можно обойтись поиском и заменой. Например, чтобы вырезать одинаковые слова из первых двух частей и поместить в третью, надо в цикле гонять такой поиск:
найти: (<[0-9A-Za-zА-ЯЁа-яё]@>)(*^m*)<\1>(*^m)
заменить: \2\3\1^13
подстановочные знаки: да
Но надо учесть что одинаковых слов может быть не 1+1, а и 1+2, 3+2 и т.д. Сначала надо удалить лишние.
Макросы под заказ и готовый пакет - mtdmacro.ru
- vadim19
- рядовой
- Неактивен
- Зарегистрирован: 01.06.2011
- Сообщений: 3
Re: Как удалить одинаковые слова?
Спасибо, ребят, буду пробовать. Вот только я не знаю ни поисковых запросов, ни языков программирования, в том виде, в каком их надо бы знать. Я типа методом тыка делал. Но у меня получилось. Просто осталось малость, которую я не могу понять. Ну ладно, спасибо.
С уважением.
- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
Re: Как удалить одинаковые слова?
ЮВ пишет:Потом с помощью простых SQL-запросов можно будет выбирать интересующую информацию, например,
список одинаковых слов
select tab1.слово from tab1, tab2 where tab1.слово=tab2.слово;
Я так понял это Ворд??
если да то пожалуйста приведите пример Ваших слов, я думал, что такого в Ворде нет
- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
Re: Как удалить одинаковые слова?
Вождь пишет: найти: (<[0-9A-Za-zА-ЯЁа-яё]@>)(*^m*)<\1>(*^m)
заменить: \2\3\1^13
Вы об этом скрипте говорите:
Sub Macro1()
'специальные символы и подстановочные знаки
'в операциях поиска и замены MS Word 97/2000/XP
'http://artefact.lib.ru/design/text_khozyainov.shtml
'регулярное выражение - это образец текста
'который состоит из обычных символов и/или специальных метасимволов, описание:
'http://www.script-coding.com/WSH/RegExp.html#4
'http://www.script-coding.info/WSH/RegExp.html
'поиск и замена во всём документе
With ActiveDocument.Content.Find
'найти:
.Text = "(<[0-9A-Za-zА-ЯЁа-яё]@>)(*^m*)<\1>(*^m)"
'заменить:
.Replacement.Text = "\2\3\1^13"
'эта опция отвечает за поиск с использованием подстановочных знаков
'не работает когда установлено в положение False, или её нет вообще
'если установлена в положение True, тогда работает
.MatchWildcards = True
'заменить все
.Execute Replace:=wdReplaceAll
End With
End Sub
Я спорить не буду просто на 2010 вроде не работает???
Но я в нём особо не освоился
- ЮВ
- генерал-лейтенант
- Неактивен
- Зарегистрирован: 28.07.2010
- Сообщений: 284
- Поблагодарили: 43
Re: Как удалить одинаковые слова?
Ципихович Эндрю пишет:Я так понял это Ворд??
Нет, вы не так поняли.
Это конструкция не WORD, а любой реляционной СУБД, в БД которой предлагалось загрузить списки слов из документов.
- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
Re: Как удалить одинаковые слова?
я говорю судя из ТС автора
Есть два документа с текстом (многостраничные документы, или большие текстовые файлы). Надо сделать так, чтобы в первом
файле остались только те слова, которых нет во втором, а во втором файле остались только те слова, которых нет в первом.
...
Например, в первом файле: мама папа бабушка дедушка
Во втором файле: мама брат сестра бабушка дедушка
...
Нужно сделать, чтобы файлы стали иметь такое содержание:
Первый файл: папа
Второй файл: брат сестра
ДА ЭТО Ж ВОРД!!!!!!!!!!
нет?? как Ваше детише прикручивать
Сообщений [ 10 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как удалить одинаковые слова?
Если у вас установлен редактор Microsoft Word, обязательно посетите форум Ворд Эксперт. Это русскоязычный портал, на котором пользователи делятся друг с другом и гостями сайта особенностями работы с данной программой. На портале о Microsoft Office Word вы узнаете про: как в 2007 убрать номер страницы с титульного листа.
Регистрация не займет много времени, для сомневающихся даже имеется иллюстрированная инструкция. В главном разделе приведены наиболее часто встречающиеся вопросы по редактору и ответы на них. На портале о Microsoft Office Word вы узнаете про: как перевести документ из word 3 в pdf.
Главной задачей портала является разработка разнообразных макросов, позволяющих доводить работу редактора до автоматизма, с легкостью производить запрашиваемые действия. На портале о Microsoft Office Word вы узнаете про: программа нахождения одинаковых слов в тексте.
На форуме вы можете найти как готовые макросы, так и инструкции по их созданию, если захотите разработать сами. Наш сайт о Microsoft Office Word даст ответ про: как с содержании зделать чтобы текст не выходил за номер страницы.
Если же вас не устраивает ничего из предложенного и нет возможности/желания написать макрос самостоятельно, на форуме можно оставить заявку на его создание. Наш сайт о Microsoft Office Word даст ответ про: как в ворде 2007 расположить список по алфавиту.
На портале ведется активное обсуждение работы с программой, ее настройки, особенности работы с текстами, возможности при создании и редактировании текстов. На портале о Microsoft Office Word вы узнаете про: не могу найти ворд.
Вы можете обратиться к пользователям с любым интересующим вас вопросом. Не забудьте только пояснять, какая у вас версия редактора. На портале о Microsoft Office Word вы узнаете про: создать оглавление в книге, состоящей из трех заголовков первого уровня и трех заголовков второго уровня..
Можете прописать эти данные в подписи для того, чтобы на ваш вопрос отвечающим легче было откликнуться. На портале о Microsoft Office Word вы узнаете про: убрать переносы строк в тексте.
Помимо этого на сайте вы найдете самую литературу и копилочку полезных ссылок. На портале размещена вся самая важная и нужная информация о работе с Microsoft Word. Наш сайт о Microsoft Office Word даст ответ про: как повернуть таблицу в word 10.