Этюды для программистов Microsoft Word


Информация взята с сайта Microsoft http://msdn.microsoft.com и расположена удобным для работы образом. Перевод автора.

Поиск и замена (Word 2003)

Удобная навигация по документу является жизненно необходимым умением каждого текстового процессора. Для документов большого размера (десятки и сотни страниц) удобство навигации становится особенно актуальным. К инструментам навигации относится возможность перемещения "Go To" по разным объектам документа (закладки, страницы, секции, строки, параграфы, картинки, таблицы, поля, элементы оглавления и другие) и, конечно, поиск и замена.

Microsoft Word также позволяет искать атрибуты форматирования.

Строка поиска

Строка поиска может быть обычным текстом (возможно, содержащим специальные символы - символы конца строки, символ разрыва параграфов, символ разрыва страниц и другие) или регулярным выражением (иначе называемым шаблоном поиска). Регулярные выражения, наряду с обычным текстом, могут содержать символы-джокеры, имеющие при поиске специальный смысл.

Диалог "Find and Replace"

Диалог "Find and Replace" содержит три закладки - "Find", "Replace" и "Go To".

Закладка "Find"

Закладка "Find" диалога "Find and Replace" имеет следующий вид:

Выпадающее меню "Format" даёт возможность выбора атрибутов форматирования шрифта (Font), параграфа (Paragraph), позиций табуляции (Tabs), рамки (Frame), стиля (Style) и подсветки (Highlight).

Выпадающее меню "Special" в зависимости от значения поля "Use wildcards" имеет следующий вид.

Подстановочные знаки (Wildcards) выключены

Подстановочные знаки (Wildcards) включены

 

 

  

 

В Приложении приведен краткий справочник по специальным символам. Читать!

Закладка "Replace"

Закладка "Replace" диалога "Find and Replace" имеет следующий вид:

Закладка "Go To"

Закладка "Go To" диалога "Find and Replace" имеет следующий вид:

Закладка "Go To" позволяет перемещаться по страницам, секциям, строкам, закладкам, комментариям, сноскам, полям, таблицам, графикам, уравнениям, объектам и заголовкам.

Горячие клавиши

Горячие клавиши, используемые для быстрого выбора команд поиска и замены, можно увидеть в меню "Edit". Заметьте, что часто используемая команда "Find Next" по умолчанию в меню не отображается.

Поиск и замена

Выберите команду "Find and Replace" в меню "Edit". На закладке "Find" диалога "Find and Replace" отметьте флажок "Use wildcards", если Вы хотите использовать поиск на основе шаблонов (или регулярных выражений). Если флажок не виден, нажмите кнопку "More". В поле "Find What" введите шаблон для поиска текста. Шаблон может содержать как обычный текст, так и специальные символы. В случае поиска на основе регулярных выражений шаблон поиска может содержать также символы-джокеры. Для выбора специальных символов можно использовать кнопку "Special".

На закладке "Replace" диалога "Find and Replace" введите текст замены.

Для активизации поиска нажмите кнопку "Find Next" (закладка "Find"), кнопку "Replace" или кнопку "Replace All" (закладка "Replace"). Для остановки процесса поиска нажмите клавишу ESC.

Чтобы найти символ, использующийся в качестве джокера или другого символа, использующегося в регулярных выражениях, следует предварить его обратной косой чертой (\). Например, чтобы найти вопросительный знак (?) следует набрать (\?) в строке поиска.

В случае использования регулярных выражений, флажок "Match case" всегда включен, а флажок "Find whole words" всегда выключен и эти установки изменить нельзя.

По умолчанию вставляемый текст наследует атрибуты форматирования заменяемого текста. В случае, если MatchCase = False, вставляемый текст наследует регистр заменяемого текста независимо от регистра заданного текста поиска и замены.

Вставка графических объектов

При выполнении операций вставки и замены Microsoft Word позволяет вставлять не только текст, но и любой объект, который можно скопировать в буфер обмена Windows. Если требуется вставить графический или любой другой нетекстовый объект, следует скопировать объект в буфер обмена и использовать специальный символ "^c" в качестве текста замены.

Объект Find

Объект Find представляет критерии поиска в операциях поиска и замены. Свойства и методы объекта Find соответствуют управляющим элементам диалога "Найти и заменить" (Find and Replace).

Если используемый объект Find принадлежит объекту Selection, то в результате удачного поиска объект Selection изменяется.

Если используемый объект Find принадлежит объекту Range, то в результате удачного поиска объект Range переопределяется.

Свойства объекта Find

В следующей таблице приведены основные свойства объекта Find.

Свойство

Тип

Комментарий

Font

Read/write Font

Возвращает или устанавливает объект Font задающий форматирование шрифта.

Format

Read/write Boolean

True если в операцию поиска включено форматирование, False - в противном случае.

Forward

Read/write Boolean

True, если задано направление поиска "Вперёд". False - в противном случае ("Назад").

Found

Read-only Boolean

True, если в результате выполнения поиска было найдено соответствие.

Frame

Объект Frame Read-only

Возвращает объект Frame.

Highlight

Read/write Long

True, если в критерий поиска включена "Подсветка"(highlight formatting).

Может возвращать True, False или константу wdUndefined.

Константа wdUndefined может также использоваться в критерии поиска для игнорирования состояния подсветки.

LanguageID

Read/write

WdLanguageId

Возвращает или устанавливает идентификатор языка.

MatchAllWordForms

Read/write Boolean

True, если требуется найти все словоформы для заданного слова.

MatchByte

Read/write Boolean

True, если в процессе поиска следует различать символы полной и половинной ширины.

MatchCase

Read/write Boolean

True, если в процессе поиска следует различать регистр символов.

MatchSoundsLike

Read/write Boolean

True, если требуется найти слова похожие по звучанию на заданный текст.

MatchWholeWord

Read/write Boolean

True, если в процессе поиска следует искать заданный текст как отдельное слово, а не как часть другого слова.

MatchWildcards

Read/write Boolean

True, если в процессе поиска используются регулярные выражения.

NoProofing

Read/write Long

True, если в процессе поиска следует искать текст, который игнорируется модулем проверки правописания и проверки орфографии.

ParagraphFormat

Объект ParagraphFormat

Read/write

Возвращает или устанавливает объект ParagraphFormat.

Replacement

Объект Replacement

Возвращает объект Replacement, который отвечает за атрибуты операции замены.

Style

Read/write Variant

Возвращает или устанавливает стиль объекта.

Text

Read/write String

Возвращает или устанавливает текст, который требуется найти. Возвращает "плоский" текст, т.е. текст без атрибутов форматирования.

Wrap

Read/write WdFindWrap

Возвращает или устанавливает константу перечисления WdFindWrap.

Перечисление WdFindWrap

Перечисление WdFindWrap определяет поведение поиска в случае, если поиск начался не с начала документа и достигнут конец документа (или наоборот, если для свойства Forward установлено значение False), а также в аналогичных случаях, когда поиск производится в выделенном тексте.

Константа

Значение

Комментарий

wdFindAsk

2

Запрашивается подтверждение пользователя для продолжения поиска.

wdFindContinue

1

Операция поиска продолжается.

wdFindStop

0

Операция поиска завершается.

Методы объекта Find

В следующей таблице приведено краткое описание методов объекта Find.

Метод

Комментарий

ClearFormatting

Удаляет все атрибуты форматирования из параметров поиска.

Метод следует использовать перед выполнения поиска чтобы быть уверенным в том, что атрибуты форматирования не входят в параметры поиска или используются только явно заданные атрибуты форматирования..

Execute(

FindText,
MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward,
Wrap,
Format,
ReplaceWith,
Replace
)

Запускает операцию поиска. Возвращает True, если поиск завершился успехом.

Все аргументы являюся необязательными и имеют тип Variant. Смысл первых девяти аргументов аналогичен смыслу соответствующих свойств объекта Find.

Аргументы метода Execute имеют более высокий приоритет, чем соответствующие свойства объекта Find.

 

ReplaceWith   Optional Variant. Текст замены. Для удаления искомого текста следует использовать пустую строку.

Replace   Optional Variant. Задает требуемое количество замен. Может быть любой константой из перечисления WdReplace.

 

В зависимости от языка установки метод может иметь дополнительные аргументы.

Перечисление WdReplace

Перечисление WdReplace задает требуемое количество замен в операциях поиска и замены.

Константа

Значение

wdReplaceAll

2

wdReplaceNone

0

wdReplaceOne

1

Объект Replacement

Объект Replacement представляет атрибуты вставляемого текста в операциях поиска и замены. Свойства и методы объекта Replacement соответствуют управляющим элементам диалога "Найти и заменить" (Find and Replace).

Свойства и методы объекта Replacement

Единственным методом объекта Replacement является ClearFormatting, который делает в точности то же, что и функция Replacement объекта Find.

В следующей таблице приведены основные свойства объекта Replacement.

Свойство

Тип

Комментарий

Font

Read/write Font

Возвращает или устанавливает объект Font задающий форматирование шрифта.

Frame

Объект Frame Read-only

Возвращает объект Frame.

Highlight

Read/write Long

True, если для заменяемого текста должна быть включена "Подсветка"(highlight formatting). Может возвращать True, False или константу wdUndefined.

LanguageID

Read/write WdLanguageId

Возвращает или устанавливает идентификатор языка.

NoProofing

Read/write Long

True, если в процессе замены используется текст, который игнорируется модулем проверки правописания и проверки орфографии.

ParagraphFormat

Объект ParagraphFormat Read/write

Возвращает или устанавливает объект ParagraphFormat.

Style

Read/write Variant

Возвращает или устанавливает стиль объекта.

Text

Read/write String

Возвращает или устанавливает текст замены. Возвращает "плоский" текст, т.е. текст без атрибутов форматирования.

Регулярные выражения

Термин "регулярные выражения" (regular expressions) неразрывно связан с поиском на основе шаблонов и означает использование специальных символов джокеров (wildcards) в строке поиска для расширения возможностей поиска и замены. Например, джокер звёздочка (*) используется для поиска любых символов (включая их отсуствие). Так, шаблон "s*x" соответствует словам "sex", "sax" и "salut regex".

Регулярные выражения используются практически в любой системе, имеющей дело с текстовыми документами. Так JavaScript, VBScript, Perl и каждый текстовый редактор или процессор используют регулярные выражения. К сожалению, синтаксис и особенности работы регулярных выражений у каждой системы свои и Microsoft Word здесь не является исключением. У Microsoft, как всегда, свои стандарты.

Ниже приводится краткое описание всех джокеров и специальных символов, которые могут использоваться в операциях поиска и замены.

Специальные символы - джокеры

Код

Объект

?

Любой одиночный символ.

*

Любая строка символов.

Начало слова.

Конец слова.

[ ]

Один из перечисленных символов. Например [ABC].

[-]

Один из символов диапазона. Например [A-Za-z].

[!x-z]

Любой символ, кроме символов диапазона.

{n}

Точно n вхождений предыдущего символа или выражения.

{n,}

По крайней мере n вхождений предыдущего символа или выражения.

{n,m}

От n до m вхождений предыдущего символа или выражения.

@

Одно или большее число вхождений предыдущего символа или выражения.

Коды используемые для поиска и замены

Код

Объект

^p или ^13

Символ параграфа. Paragraph mark ().

В случае использования регулярных выражений в поле "Find" следует использовать "^13".

^t или ^9

Символ табуляции. Tab character ()

^nnn

Символ кодировки ASCII с кодом nnn.

^0nnn

Символ кодировки ANSI с кодом nnn.

^+

Символ Em dash ( — )

^=

Символ En dash ( – )

^^

Знак, обозначающий позицию вставки. Caret character

^l или ^11

Мягкий перевод строки. Manual line break ()

^n или ^14

Разрыв колонки. Column break.

^12

Разрыв страницы или секции. При вставке вставляется разрыв страницы.

^m

Мягкий разрыв страницы. Manual page break. При использовании регулярных выражений также используется для поиска или замены разрывов секций.

^s

Неразрывный пробел. Nonbreaking space ()

^~

Неразрывный перенос. Nonbreaking hyphen ()

^-

Необязательный перенос. Optional hyphen ().

Коды используемые только для поиска (регулярные выражения)

Код

Объект

^g

Картинка или график (inline only).

Коды используемые только для поиска (простой поиск)

Код

Объект

^?

Любой символ

^#

Любая цифра

^$

Любая буква

^Unnnn

Символ Unicode с кодом nnnn.

^1

Картинка или график (inline only).

^f или ^2

Знак сноски (Footnote mark)

^e

Сноска в конце документа (Endnote mark)

^d

Поле (Field)

^19

Открывающая скобка поля (Opening field brace), в случае если видимость полей включена.

^21

Закрывающая скобка поля (Closing field brace), в случае если видимость полей включена.

^a или ^5

Комментарий (Comment).

^b

Разрыв секции (Section break).

^u8195

Символ Em space (Unicode).

^u8194

Символ En space (Unicode).

^w

Любая комбинация пробельных символов. К пробельным символам относятся все виды пробелов и символ табуляции.

Коды используемые только для замены

Код

Объект

^c

Содержимое буфера обмена Windows.

^&

Содержимое поля "Найти"(Find what box).

 

Этюды для программистов Microsoft Word. Приложение. Поиск и замена.


© 2000-2009 Евгений Ахунджанов, Все Права Сохранены.
www.transcriber.ru | Послать письмо автору