Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Преоброзовать строку в дату

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

sldaac



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую.
Получаю из документа (счет) строку вида "от 12 июля 2022 г.", надо преобразовать в формат dd.mm.yyyy. Все-бы ничего, но нет никакой гарантии что в следующем счете строка будет иметь такой-же вид, а не что-то вида "от 20 авг. 2022 г." или "14,9,2022".
Есть какие-то подсказки, как можно решить проблему.
связка Delphi+MSSQL
спасибо

Всего записей: 721 | Зарегистр. 15-06-2005 | Отправлено: 19:23 25-07-2022 | Исправлено: sldaac, 20:33 25-07-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sldaac
есть же тема Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus) и Вопросы по Delphi (версии 2009, 2010 Weaver, 2011 Fulcrum)
 

Цитата:
Есть какие-то подсказки, как можно решить проблему.

универсальных вещей не бывает.. а если дата, например, вообще в американском формате (сначала месяц, потом число).
вам нужно будет записать все возможные, ожидаемые форматы, и определять какой больше подходит.
можно в цикле, отлавливая исключение о невозможном преобразовании.

Всего записей: 15091 | Зарегистр. 20-09-2014 | Отправлено: 03:41 26-07-2022
sldaac



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
есть же тема Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus) и Вопросы по Delphi (версии 2009, 2010 Weaver, 2011 Fulcrum)
 

извиняйте, не углядел.  

Цитата:
универсальных вещей не бывает.. а если дата, например, вообще в американском формате (сначала месяц, потом число).
вам нужно будет записать все возможные, ожидаемые форматы, и определять какой больше подходит.
можно в цикле, отлавливая исключение о невозможном преобразовании.

такого не будет, но наши менеджеры умеют удивить написанием.  Это понятно что нужно с десяток вариантов проверить и принимать решение.
Спсб.

Всего записей: 721 | Зарегистр. 15-06-2005 | Отправлено: 09:59 26-07-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sldaac

Цитата:
но наши менеджеры умеют удивить написанием

в первую очередь убрать все, что не относится к буквами или цифрам, заменить пробелами, потом оставить один проблем если несколько подряд и уже с этим вариантом работать.

Всего записей: 15091 | Зарегистр. 20-09-2014 | Отправлено: 10:11 26-07-2022
Rock

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sldaac

Цитата:
Получаю из документа (счет) строку вида "от 12 июля 2022 г.", надо преобразовать в формат dd.mm.yyyy. Все-бы ничего, но нет никакой гарантии что в следующем счете строка будет иметь такой-же вид, а не что-то вида "от 20 авг. 2022 г." или "14,9,2022".
Есть какие-то подсказки, как можно решить проблему.
связка Delphi+MSSQL

В подобной постановке -- это классическая задача лексического анализа. Для автоматизации написания подобных разборщиков используются генераторы лексических анализаторов. Для С это классика lex/flex, но есть огромное количество других, построенных на совершенно разных принципах. Раньше подобные решения были в стандартных курсах программирования в ВУЗах и по ним нужно было сдавать зачеты. Такие же инструменты должны быть и для Паскаля.
В общем, это классика, буквально предназначенная для решения подобных задач. Вложиться в это направление стоит еще хотя бы потому, что при добавлении стека такой анализатор-разборщик регулярных языков (а Ваши примеры относятся именно к этому классу грамматик) легким движением превращается в парсер довольно большого подмножества контекстно-свободных языков и этого за глаза хватает для разбора тех же html и json. Кстати, во flex такой стек встроен из коробки.

Всего записей: 1256 | Зарегистр. 10-04-2003 | Отправлено: 02:08 01-08-2022
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Преоброзовать строку в дату


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru