Замена 2х-3х подряд идущих слов одним
Всем Доброго времени суток! У меня есть программа, суть ее такова: берется вордовский документ, в нем выделяются слова желтым цветом, а потом при нажатии на кнопку заменяются тегами. Проблема в том, что если выделено несколько слов подряд, то заменяется каждое отдельно, а мне нужно чтобы одним заменялось. Как выполнить проверку на непрерывность выделения не могу найти... может кто подскажет?
Заранее спасибо! :) |
Цитата:
|
Код:
// активный word-документ |
Очень нужна помощь, подскажите, а то на этой неделе уже сдавать...
|
Marsella_88, выложите проект, формы, тестовые файлы и т.д.
Чтобы можно было дебажить алгоритм в приближенных вам условиях. И чтобы не думалось, куда эту процедуру использовать и куда передавать результат. Сделайте простенький проект-заготовку, чтобы нам было удобно помогать вам. Где-то в пробелах ошибка ИМХО. Глаз вроде "спотыкается", но точно сказать не могу. На спокойную голову в четверг. |
Вложений: 1
Готово!
|
Marsella_88, спасибо. Проект открывается, в четверг на трезвую голову буду разбирать. Ранее, извини, никак.
Только если коллеги помогут. |
Буду ждать. может и саму осенит :) Заранее спасибо )
|
Очень жду каких-нибудь известий....
|
Marsella_88, смотрю в оба глаза. :)
30ого защита диссера была, был невменяем. Сейчас фильмишку фоном включу и за отладку. |
дурацкий ворд, обкуренные, обколотые создатели этой дурацкой автоматизации и психоделики! И т.д. и т.п.
Marsella_88, Код:
private void button2_Click(object sender, EventArgs e) Дело в том, что Word, кроме всего прочего относит к слову и следующий за ним пробел, чем делает жизнь интересней (не знаю, то ли радоваться, то ли нет). Это ведет к некоторым подводным камням, как то: поиск нескольких выделенных слов подряд Код:
while (Range_1.HighlightColorIndex == Word.WdColorIndex.wdYellow) Пример: Текст - просто черный текст Желтый - некоторой текст с желтым выделением [i] - индекс слова в массиве thisDocument.Words исходник: 1) текст[1] желтый[2] желтый[3] нашли "желтый", начали выполнять цикл поиска следующих желтых слов 2) slovo_1 = желтый Range_1.Text="" -> Range_1.Text = null -> текст[1] желтый[null] желтый[3] -> текст[1] желтый[null] желтый[2] ! Текст в Word примет вид текст[1] желтый[2] Вот такая хитрая вещь, поэтому i=i+1 я закомментировал. Хочется отметить, что если желтое слово стоит в конце строки, то он съестся вместе с переносом строки. Поэтому надо все желтые слова обрамлять либо пробелами, либо как то оставлять переносы строк. Это первое. Второе - я ввел в условное слово, по которому прекращается обработка цикла while - это слово "конец". Его необходимо будет закрасить белым, и шрифту также назначить белый цвет. Т.е. вроде как есть, а вроде как и не видно. Либо заменить другим кодовым словом. Большой вопрос с конечному оформлению документа. Оно(оформление) поплывет. :dont-know надеюсь поможет |
тьфу, не заметила второй страницы :)
Огромное спасибо за помощь, вечером разберу что к чему :) |
Время: 06:08. |
Время: 06:08.
© OSzone.net 2001-