Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск текста в Word 
:(
    Опции темы
Injener
Дата 7.10.2006, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 6.10.2006
Где: СПб

Репутация: нет
Всего: 1



Господа, подскажите кто может. Мне необходимо осуществить просто поиск текста в документе Word
Код

private Word.Application W;

//.........

string text = "фыв";
W.Selection.Find.Text = text;
while (W.Selection.Find.Execute() != false)
{
    //...
}


Беда, только в том, что у Execute() целая гора параметров, и что они значат я не знаю.
--------------------
Любое дело можно сделать тремя способами:1) правильно2) неправильно3) и так как это делают в армии
PM MAIL   Вверх
Naum
Дата 7.10.2006, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: 8
Всего: 15



Самый надежный простой способ по VBA - записать какой-нить макрос и посмотреть как он записан.

Код

Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 07.10.2006 Администратор
'
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "Пшеничный"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
End Sub

Где Text - собственно текст, который мы ищем, Replacement.Text -  это, если мы хоти заменять, текст которым заменяем, Forward - скорее всего направление поиска (True - вниз, False - вверх), Wrap - че-то я не совсем понял, че такое, но по-моему действия при нахождении Text, может быть wdFindAsk, wdFindContinue, wdFindStop, Format -  true - если форматирование включено в операцию поиска, соответсвенно False - если не включено, MatchCase - учитывать регистр, MatchWholeWord - только слово целиком, MatchWildCards - подстановочные знаки, MatchSoundLike - произносится как, MatchAllWordForms - все словоформы.

Добавлено @ 11:07 
А вообще там даже справка есть smile 

Это сообщение отредактировал(а) Naum - 7.10.2006, 11:06


--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
Injener
Дата 7.10.2006, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 6.10.2006
Где: СПб

Репутация: нет
Всего: 1



Спасибо Naum.

Вообще там гораздо больше параметров, но я везде вставил false и оно работает.

Код

object FindText = "ИНДУКТОР-1 ";
object MatchCase = false;
object MatchWholeWord = false;
object MatchWildcars = false;
object MatchSoundsLike = false;
object MatchAllWordForms = false;
object Forward = true;
object Wrap = false;
object Format = false;
object ReplaceWith = false;
object Replace = false;
object MatchKashida = false;
object MatchDiacritics = false;
object MatchAlefHamza = false;
object MatchControl = false;
while (W.Selection.Find.Execute(ref FindText, ref MatchCase, ref MatchWholeWord, ref MatchWildcars, 
    ref MatchSoundsLike, ref MatchAllWordForms, ref Forward, ref Wrap, ref Format, ref ReplaceWith, 
    ref Replace, ref MatchKashida, ref MatchDiacritics, ref MatchAlefHamza, ref MatchControl) != false)
{
//....
}

--------------------
Любое дело можно сделать тремя способами:1) правильно2) неправильно3) и так как это делают в армии
PM MAIL   Вверх
Illusionist
Дата 9.3.2008, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 26.2.2008

Репутация: нет
Всего: нет



Не хотелось поднимать эту давно забытую тему, но придется. Мне тут надо текст в ворде заменить, но что-то не очень выходит
вот код, подскажите что не так:
Код

            object trueValue = true;
            object missing = Type.Missing;
            int count=0;
            object FindText = "ПОЖАР";
            object MatchCase = false;
            object MatchWholeWord = false;
            object MatchWildcars = false;
            object MatchSoundsLike = false;
            object MatchAllWordForms = false;
            object Forward = true;
            object Wrap = false;
            object Format = false;
            object ReplaceWith = "xxx";
            object Replace = true;
            object MatchKashida = false;
            object MatchDiacritics = false;
            object MatchAlefHamza = false;
            object MatchControl = false;
            while (word.Selection.Find.Execute(ref FindText, ref MatchCase, ref MatchWholeWord, ref MatchWildcars,
                ref MatchSoundsLike, ref MatchAllWordForms, ref Forward, ref Wrap, ref Format, ref ReplaceWith,
                ref Replace, ref MatchKashida, ref MatchDiacritics, ref MatchAlefHamza, ref MatchControl) != false)
            {
                count++;
            }
            MessageBox.Show(Convert.ToString(count));
            doc.Save();
            doc.Close(ref trueValue, ref missing, ref missing);


он вроде выполняется, но почему-то на первом разе выходит из цикла, и на этапе сохранения вылетает. Помоему я тут какую-то мелочь упустил но не могу понять что.
Помогите пожалуйста кто сможет!!!
PM MAIL   Вверх
Stepan_Lameroff
Дата 10.3.2008, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 16.12.2006

Репутация: 9
Всего: 14



В помощь любителям ковырять MS Office, были выпущены Microsoft Visual Studio Tools for the Office System Power Tools v1.0.0.0.
Рекомендую поюзать Office Interop Extensions (VSTO_PTExtLibs.exe на странице закачки) - очень помогает smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.