Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

ОБход особенности VarDateFromStr

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> ОБход особенности VarDateFromStr
Имя
Сообщение << Старые топики   Новые топики >>
ОБход особенности VarDateFromStr - 2007-10-15 21:48:02.643333   
mindgen

Сообщений: 12
Оценки: 0
Присоединился: 2007-09-27 09:32:38.196666
Проблема в следующем:
есть строка вида:"1,2,3"
Вызываю VarDateFromStr("1,2,3", 1049,…) // 1049-русская локаль, разделитель даты: '.' - точка
Поидее, VarDateFromStr длжна вернуль E_FAIL или что-то вроде того, но ни как S_OK.(По логике S_OK будет, если ввести "1.2.3") Такое поведение, как я считаю, является ошибочным, но в MSDN описана эта ситуация и считается нормальным поведениеи функции.

Вопрос:
Как быть? Есть какие-нибудь стандартные методы что-бы обойти эту ситуацию и определить, что "1,2,3" - не является датой с учетом локали 1049?

P.S. Конечно можно руками парсить строку, но это очень геморно…(
Post #: 1
RE: ОБход особенности VarDateFromStr - 2007-10-16 10:08:45.970000   
Inspektor

Сообщений: 143
Оценки: 0
Присоединился: 2007-08-31 11:37:20.710000
Ну эта функция вообще клёво работает, возвращает S_OK даже если ввести 310 февраля :D.
quote:

P.S. Конечно можно руками парсить строку, но это очень геморно…(

Другого выхода нет, тем более, что написать цикл можно за 1, максимум 2 минуты! Тупо ищешь запятые и всё!
Пример: bool IsDate(wchar_t* chDate) { &nbsp;&nbsp;&nbsp; DATE lDate; &nbsp;&nbsp;&nbsp; for(int i=0;i&lt;wcslen(chDate)-1;i++) &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(chDate[i]==',') &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false; &nbsp;&nbsp;&nbsp; if(VarDateFromStr(chDate,1049,VAR_DATEVALUEONLY,&amp;lDate)==S_OK) &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return true; &nbsp;&nbsp;&nbsp; return false; }Вернёт false, если встретит запятую или VarDateFromStr() вернёт не S_OK. Правда 310 февраля так и останится "корректной" датой. А вообще я бы на твоём месте потратил 20 минут на написание функции, которая абсолютно точно определяет корректная дата или нет.
Post #: 2
RE: ОБход особенности VarDateFromStr - 2007-10-16 12:22:16.266666   
mindgen

Сообщений: 12
Оценки: 0
Присоединился: 2007-09-27 09:32:38.196666
Жаль что нет другого, стандартного, механизма… :(
Придется все-таки парсер писать…
Post #: 3
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> ОБход особенности VarDateFromStr







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.