|
Как получить номер строки в текстовом документе
| ☑ |
0
Sanjik
27.06.16
✎
17:21
|
Здравствуйте, собственно вопрос, как получить номер строки в текстовом документе по определенному тесту?
Есть функция СтрПолучитьСтроку(Строка, 2) - вернет значение второй строки. А как сделать наоборот, если знаешь значение строки и нужно получить номер этой строки?
|
|
1
Ёпрст
27.06.16
✎
17:28
|
А зачем ?
Ну, самый примитив - перебором всех строк, тип того:
Для Счетчик = 1 По СтрЧислоСтрок(ИсходныйТекст) Цикл
Если НужнаяСтрока = СтрПолучитьСтроку(ИсходныйТекст, Счетчик) Тогда Возврат Счетчик;
КонецЕсли;
КонецЦикла;
|
|
2
GROOVY
27.06.16
✎
17:29
|
Символ переноса строки до позиции курсора посчитайте.
|
|
3
Sanjik
27.06.16
✎
17:37
|
(1) Ошибка: Процедура не может возвращать значение
(2) А это как?
|
|
4
Ёпрст
27.06.16
✎
17:41
|
(3) :))
|
|
5
GROOVY
27.06.16
✎
17:42
|
Понятно.
Это рекурсивно искать символ от начала строки до первого+n совпадения.
|
|
6
Ёпрст
27.06.16
✎
17:46
|
Можно еще так
Возврат СтрЧислоСтрок(Лев(ИсходнаяСтрока,СтрНайти(ИсходнаяСтрока,НужныйТекст)));
|
|
7
Sanjik
27.06.16
✎
17:49
|
(4) Переделал так:
НужнаяСтрока = "#Изделия";
Для Счетчик = 1 По СтрЧислоСтрок(Текст) Цикл
Если НужнаяСтрока = СтрПолучитьСтроку(Текст, Счетчик) Тогда цук = Счетчик;
КонецЕсли;
КонецЦикла;
Но почему-то значение "цук" - 2, а должно быть 4!
Текст:
#Заказ
Отдел;Номер;Дата;Сумма;Клиент;ID_Клиента;ИНН;Бланк;Коммент;Ск_счет;Ск_изд;Ск_акс;Ск_раб
0;500;21.06.2016;218220,32;Уважаемый Заказчик;8;;ООО "Окна";;145480,22;0;0;0;
#Изделия
Номер;Система;ID_Системы;Цвет;Наименование;Ш;В;Сумма;Площадь;Кол-во
|
|
8
Ёпрст
27.06.16
✎
17:52
|
(7) ну смотри отладчиком, че у тебя СтрПолучитьСтроку(Текст, Счетчик) возвращает и чего в переменной счётчик
|
|
9
Sanjik
27.06.16
✎
18:32
|
(8) Спасибо большое! Получилось так:
НужнаяСтрока = "#Изделия";
Для Счетчик = 1 По Текст.КоличествоСтрок() Цикл
Строка = Текст.ПолучитьСтроку(Счетчик);
Если НужнаяСтрока = Строка Тогда цук = Счетчик;
КонецЕсли;
КонецЦикла;
"цук" - есть номер строки.
|
|
10
mistеr
27.06.16
✎
20:35
|
(9) Если искать придется много раз, лучше перегнать в массив или соответствие.
|
|