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

Тема в разделе "1C и всё что с ней связано", создана пользователем KiR, 13 ноя 2007.

  1. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    Есть строка типа "дата пог 12.07.07" или "дата пог 12.07.2007". Как можно из этой строки получить дату или хотябы строку сдатой типа 12.07.07 или 12.07.2007 (разницы в принцыпе нет)?
     
  2. Zab

    Zab Well-Known Member
    1C Team

    Регистрация:
    7 авг 2006
    Сообщения:
    583
    Симпатии:
    0
    Код (Text):
    ИсхСтрока = "дата пог 12.07.2007"; // или "дата пог 12.07.07"
    ДатаСтр = Прав(ИсхСтрока, СтрДлина(ИсхСтрока)-СтрДлина("дата пог "));
    // строка с датой уже есть ))
    // Терь получим дату
    т = Найти(ДатаСтр,".");
    Число = Лев(ДатаСтр,т-1);
    ДатаСтр = Прав(ДатаСтр, СтрДлина(ДатаСтр)-т);
    т = Найти(ДатаСтр,".");
    Месяц = Лев(ДатаСтр,т-1);
    Год = Прав(ДатаСтр, СтрДлина(ДатаСтр)-т);
    Дат = Дата(Год, Месц, Число);
    ЗЫЖ каждый день в восьмерке не пишу, не исключаю, что можно оптимальнее.
     
  3. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    Для: Zab
    Прошу прощения. не указал, что вместо "дата пог" - может быть любая последовательность символов, которая не факт что закончится датой
     
  4. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

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

Поделиться этой страницей