Получить нужный кусок текста

1. 11.01.17 07:26 Сейчас в теме
Добрый день!
Возник следующий вопрос: есть текст такого формата

Start *число*

Текст1
Текст2
Текст3
Finish

Необходимо выдрать только вот эту часть - Текст1 Текст2 Текст3, при этом *число* всегда разное и перед Текст1 всегда пустая строка.

Пробовал и через "Найти", и парой способов с форума, ничего не получилось.
Найденные решения
10. Seraf1no 11.01.17 10:50 Сейчас в теме
(9) да, извиняюсь. Времени в обрез, вот код:
Счетчик = 1;
			Пока Стр <> Неопределено Цикл
				
				Если Счетчик < 3 Тогда
				Счетчик = Счетчик + 1;
				Стр = Файл.ПрочитатьСтроку();
					Продолжить;
				КонецЕсли;

Показать
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. olegmedvedev 11.01.17 08:50 Сейчас в теме
(1)
Необходимо выдрать только вот эту часть - Текст1 Текст2 Текст3, при этом *число* всегда разное и перед Текст1 всегда пустая строка.

Start *число*

Текст1


а текст1 - всегда третья строка? тогда можно по индексу взять.
3. Seraf1no 11.01.17 08:52 Сейчас в теме
(2) Всегда четвертая, если быть точнее (я там одну строчку выше Старта не указал)
5. olegmedvedev 11.01.17 08:59 Сейчас в теме
(3)
Всегда четвертая, если быть точнее (я там одну строчку выше Старта не указал)

тогда можно по индексу найти
текст - ваш текст, индекс с 3 по интересующую вас строку
СтрТекста=СтрПолучитьСтроку(Текст,Индекс);

Прикрепленные файлы:
6. Seraf1no 11.01.17 09:10 Сейчас в теме
(5) Я обрабатываю много файлов в одной папке и количество строк всегда разное.
7. olegmedvedev 11.01.17 09:42 Сейчас в теме
(6) в (4) приведен рабочий пример же. можете его скопировать и использовать на свое усмотрение. если вм результат не в строку надо а в массив, то просто добавляйте построчно в массив, а не суммируйте
4. spacecraft 11.01.17 08:57 Сейчас в теме
(1) как вариант для 8.2:
ИсходнаяСтрока = "Что-то там
	|еще есть в начале
	|Start 1
	|
	|Текст1 
	|Текст2 
	|Текст3 
	|Finish
	|еще есть
	|в конце";
			
	СтрокаРезультат = "";
	СтрокаНайдена = Ложь;
	Для НомерСтроки = 1 По СтрЧислоСтрок(ИсходнаяСтрока) Цикл
		Если Не СтрокаНайдена Тогда
			Если Найти(СтрПолучитьСтроку(ИсходнаяСтрока,НомерСтроки), "Start") > 0 Тогда
				СтрокаНайдена = Истина;
				НомерСтроки = НомерСтроки + 1;
			КонецЕсли;
			Продолжить;
		КонецЕсли;
		Если (Найти(СтрПолучитьСтроку(ИсходнаяСтрока,НомерСтроки), "Finish") > 0) Тогда
			СтрокаНайдена = Ложь;
			Прервать;
		КонецЕсли;
		СтрокаРезультат = СтрокаРезультат + СтрПолучитьСтроку(ИсходнаяСтрока,НомерСтроки);
	КонецЦикла;		
Показать


Для 8.3 было бы проще и нагляднее.
8. Seraf1no 11.01.17 10:14 Сейчас в теме
Задачу решил самостоятельно, вопрос закрыт
9. spacecraft 11.01.17 10:16 Сейчас в теме
(8) жесть.
В таких случаях обычно приводят свое решение.
10. Seraf1no 11.01.17 10:50 Сейчас в теме
(9) да, извиняюсь. Времени в обрез, вот код:
Счетчик = 1;
			Пока Стр <> Неопределено Цикл
				
				Если Счетчик < 3 Тогда
				Счетчик = Счетчик + 1;
				Стр = Файл.ПрочитатьСтроку();
					Продолжить;
				КонецЕсли;

Показать
11. necropunk 8 11.01.17 11:04 Сейчас в теме
(10) Я ничего не понял в решении. Ну, вы прочитали строку Старт и одну пустую. И?
Неполный код, видимо.
12. Seraf1no 11.01.17 12:24 Сейчас в теме
(11) у меня читает все строки, перед условием идет
стр = файл.ПрочитатьСтроку();
, далее в цикле уже идут не относящиеся к вопросу преобразования строк.
13. necropunk 8 11.01.17 12:33 Сейчас в теме
(12) А, ну так в вашем примере после условия "Если Счетчик < 3" ПрочитатьСтроку() стоит.
Оставьте свое сообщение
Вакансии
Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Программист 1С
Нижний Новгород
зарплата от 170 000 руб.
Полный день

Программист 1С
Пермь
зарплата до 120 000 руб.
Полный день

Ведущий программист 1С
Видное
зарплата от 180 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 150 000 руб.
Полный день