1c8 выделение даты из строки

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#1
Есть строка типа "дата пог 12.07.07" или "дата пог 12.07.2007". Как можно из этой строки получить дату или хотябы строку сдатой типа 12.07.07 или 12.07.2007 (разницы в принцыпе нет)?
 

Zab

Well-known member
07.08.2006
583
0
#2
Код:
ИсхСтрока = "дата пог 12.07.2007"; // или "дата пог 12.07.07"
ДатаСтр = Прав(ИсхСтрока, СтрДлина(ИсхСтрока)-СтрДлина("дата пог "));
// строка с датой уже есть ))
// Терь получим дату
т = Найти(ДатаСтр,".");
Число = Лев(ДатаСтр,т-1);
ДатаСтр = Прав(ДатаСтр, СтрДлина(ДатаСтр)-т);
т = Найти(ДатаСтр,".");
Месяц = Лев(ДатаСтр,т-1);
Год = Прав(ДатаСтр, СтрДлина(ДатаСтр)-т);
Дат = Дата(Год, Месц, Число);
ЗЫЖ каждый день в восьмерке не пишу, не исключаю, что можно оптимальнее.
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#3
Для: Zab
Прошу прощения. не указал, что вместо "дата пог" - может быть любая последовательность символов, которая не факт что закончится датой
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#4
Кому интересно - решил вопрос таким способом. Может не очень опримально правда...
Для Н=1 По СтрДлина(СтрокаТЗ.Субконто3) Цикл
Символ = Сред(СтрокаТЗ.Субконто3,Н,1);
Если Символ="0" Или Символ="1" Или Символ="2" Или Символ="3" Или Символ="4" Или Символ="5" Или Символ="6" Или Символ="7" Или Символ="8" Или Символ="9" Или Символ="." Тогда
СтрокаЧисло = СтрокаЧисло+Символ;
КонецЕсли;
КонецЦикла;