Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2009, 18:27   #1
SKth
Новичок
Джуниор
 
Регистрация: 14.12.2009
Сообщений: 3
По умолчанию Вынести слова по маске

Есть проблема. Суть такова - надо выбрать фразы из большого текста и скопировать их в отдельный файл, в зависимости от его "соседей".
Например : [слово] [Главное слово] [слово]. Все разумеется разделено пробелами.

пытался пробовать разные конструкции поиска, например [ ]*[ ]Укр.[ ]*[ ], но не очень помогает - постоянно захватываются слишком большие куски текста.

В общем помогите)
Немного сумбурно написал, но надеюсь суть ясна.

Последний раз редактировалось SKth; 14.12.2009 в 18:31.
SKth вне форума Ответить с цитированием
Старый 14.12.2009, 20:10   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Суть не ясна. Приложите пример документа, или конкретный пример фразы
Попробуйте так:
Найти: слово1 <[А-яЁё]@> слово2
Подстановочные знаки включены.
Если поможет, тогда можно дальше идти
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 14.12.2009 в 20:14.
viter.alex вне форума Ответить с цитированием
Старый 14.12.2009, 20:55   #3
SKth
Новичок
Джуниор
 
Регистрация: 14.12.2009
Сообщений: 3
По умолчанию

Ну тут задача такая - скопировать из словаря слова, что относяться к определенной отрасли.
PHP код:
аброгация юраброгація.
абруптив лингвабруптив.
абрупция музабрупція.
абсанс медабсанс, -у.
абсентизм медабсентизм, -у
В данном случае сработает просто выбрать два соседних слова, к каждому слову "мед."

<[А-яЁё]@> мед. <[А-яЁё]@>
вариант сработал) спасибо))
вдогонку вопрос - как можно сделать, чтобы в новый документ каждая выноска шла на новую строчку?

Последний раз редактировалось SKth; 14.12.2009 в 21:00.
SKth вне форума Ответить с цитированием
Старый 14.12.2009, 21:35   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Каждая фраза находится в одном абзаце? Так, как в примере? Окончания нужно копировать?
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 14.12.2009, 22:07   #5
SKth
Новичок
Джуниор
 
Регистрация: 14.12.2009
Сообщений: 3
По умолчанию

Фраза да, в абзаце.
Окончания пофигу, т.е
Код:
аброгация юр. аброгація.
так.
SKth вне форума Ответить с цитированием
Старый 14.12.2009, 22:37   #6
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Пробуй.
Код:
Sub ExtractDefinitions()
  Dim oNewDoc As Document 'Новый документ
  Dim oDoc As Document 'Документ для поиска
  Dim BranchAbbr As String 'Аббревиатура
  Dim bFound As Boolean 'Результат поиска
  
  Set oDoc = ActiveDocument
  Set oNewDoc = Documents.Add
  BranchAbbr = InputBox("Введите аббревиатуру для отрасли", "Извлечение статей")
  
  If Len(BranchAbbr) = 0 Then Exit Sub
  
  With oDoc.Range.Find
    .Text = "<[А-яЁё]@> " & BranchAbbr & " <[А-яЁё]@>"
    .MatchWildcards = True
    While .Execute
      bFound = .Found
      oNewDoc.Range.InsertAfter .Parent.Paragraphs.First.Range.Text
    Wend
  End With
  'Если ничего не найдено, то документ закрываем без сохранения
  If Not bFound Then oNewDoc.Close False
  
  Set oDoc = Nothing: Set oNewDoc = Nothing
End Sub
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск слова Chartvit Общие вопросы C/C++ 2 08.12.2009 21:57
СИ. Удалить слова, которые содержат все повторяющиеся буквы первого слова nick23 Помощь студентам 7 01.11.2009 14:47
Как удалить текст до слова, потом от слова ? littlecoder Общие вопросы Delphi 7 29.12.2008 00:57