Имя: Пароль:
1C
1С v8
поиск строки word
,
0 MiniMuk
 
30.04.13
09:42
Хочу поиском найти всю строку(какуюто чать текста/предложения)
Есть документ word
в нем есть текст с предопределенными  параметрами
Пример
"В нашем селе [село] произошло черзвыйчаное сообыти. Начальник совхоза [начальника] началь пить. Поэтому наше [село] весело провело все лето"

Документ = Ворд.Documents.Open(ФайлШаблона);
Поиск=Документ.Range().Find();
Поиск.Text = "село";
Поиск.Execute();
Пока Поиск.Found Цикл
//а вот тут хочу чтото типи
//Предложение  = Поиск.предложение; где собственно получу 1 и 3 предложение
конеццикла;
1 Godofsin
 
30.04.13
09:43
ты хочешь получить предложение со словом поиска?
2 MiniMuk
 
30.04.13
10:01
(1) да, точнее полное слово [село]
тоесть если у меня в тексте будет [село_официальноеназвание]
то получить [село_официальноеназвание]
а если [село_обывательскоепрозвище] то соответвенно [село_обывательскоепрозвище]
3 MiniMuk
 
30.04.13
10:03
Изначально имеем "В нашем селе  [село_официальноеназвание]  произошло черзвыйчаное сообыти. Начальник совхоза [начальника] началь пить. Поэтому наше [село_обывательскоепрозвище]
весело провело все лето"
хочу получить список
1. [село_официальноеназвание]
2. [село_обывательскоепрозвище]
4 НЕА123
 
30.04.13
10:26
(0)
как вариант.
ИзвлечениеТекста.
5 MiniMuk
 
30.04.13
11:16
(4) это как?
6 НЕА123
 
30.04.13
14:01
(5)
СП нету?
7 zladenuw
 
30.04.13
14:14
Предложение  = Поиск.Text

а так не ?
8 zdas
 
30.04.13
14:19
(1) точки всегда в конце предложения?:)
9 zdas
 
30.04.13
14:20
8-> к (0)
10 drcrasher
 
30.04.13
14:30
(0) ковыряй Поиск=Документ.Range().Find() в сторону множественного поиска по нечеткому шаблону [село*] и евойные результаты.
хотя, imho, проще делать find-replace по тексту. шаблоны ведь стандартные?
11 zdas
 
30.04.13
14:30
ИсходнаяСтрока = "Село пенз. Село Мене. пенз Село.";
   ЧтоИщем = "Пенз";
   
   
   ЧтоИщем = нрег(ЧтоИщем);
   МассивНайденныхПредложений = Новый Массив;
   Изм = СтрЗаменить(ИсходнаяСтрока,".",Символы.пс);
   Всего = СтрЧислоСтрок(Изм);
   Для а = 1 По всего Цикл
       СтрТекущая = СтрПолучитьСтроку(Изм,а);
       Если найти(нрег(СтрТекущая),ЧтоИщем )>0 Тогда
           МассивНайденныхПредложений.Добавить(СтрТекущая);
       КонецЕсли;
   Конеццикла;
   Для каждого ТекСтр ИЗ МассивНайденныхПредложений Цикл
       Сообщить("Во чо нашел: "+ТекСтр);
   КонецЦикла;
12 zdas
 
30.04.13
14:33
чорд, не так понял автора))) короче ему реплейс обычный нужен:)
13 MiniMuk
 
16.05.13
15:17
(10) он вроде как не понимает нечеткие шаблоны, так со звездочкой и ищет (12) обычный не подходит. меня интересует что после искомого шаблона идет до предопределеного символа.
Сделал простой разбор по предложениям. Ищу начальный символ после него конечный символ.  вырезаю между ними
14 Ковычки
 
16.05.13
15:19
ворд может работать с подстановками
15 Ковычки
 
16.05.13
15:19
(13) он понимает не только звездочку
16 MiniMuk
 
16.05.13
15:36
17 Ковычки
 
16.05.13
15:40
ВесьДиапазон = Документ.Range();
Поиск = ВесьДиапазон.Find();
Поиск.Text = "\[село*\]";
Поиск.MatchWildcards = Истина;
Пока Поиск.Execute() Цикл
   Сообщить(Поиск.Parent.Text);
КонецЦикла;
18 drcrasher
 
16.05.13
15:40
(16) оно много чо понимает.
там даже есть подобие регекспа, только вот ТС нужно научиться этим пользоваться в обычном интерфейсе, а потом внимательно читать мсдн
19 Ковычки
 
16.05.13
15:43
правильнее наверное так

Поиск.Text = "\[<село*>\]"
20 MiniMuk
 
16.05.13
16:06
(18) А как в стандартном?
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn