-
Как бы заставить эту функцию переварить вот такое: "Thu, 24 Apr 2008 06:48:52" ? Уже 10 часов парюсь =(
-
{RASkov} © (19.07.08 16:37) [1]Никак. Только свою писать... но тут.... многое зависит)
-
почему никак? FormatDateTime же позволяет создать точно такую же строку, Неужели не предусмотрено обратное действие :(
-
{RASkov} © (19.07.08 17:01) [3]> [2] R1ka © (19.07.08 16:52)
Потому как из единственного числа, чем и является дата, можно получить множество разных вариантов прдставления этой самой даты в строковом виде... -
{RASkov} © (19.07.08 17:03) [4]....ну и очивидно, что наоборот, из кучи разных вариантов строк, получить одно и тоже число проблематичнее...
-
понятно. спасибо
-
Renegat © (19.07.08 17:25) [6]Алгос:
0) Берём структуру st: SYSTEMTIME.
1) Приводим строку к PChar.
2) Сравниваем третий символ с массивом ['n', 'e', 'd', 'u', 'i', 't'].
3) Если подошёл символ 'n', то сравниваем второй символ. Если он равен 'u', проставляем в st.wDayOfWeek значение 0. Иначе - индекс массива, на котором сошлась третья буква.
4) Сравниваем шестой символ с пробелом.
а) Если сошлось:
Отнимаем от него 48 (48 = 30h = ord('0')) и заносим результат в st.wDay, переходим к [5].
б) Если не сошлось:MOV EDX, BYTE PTR [EAX+5];
LEA EDX, [EDX*4+EDX-48*5];
MOV ECX, BYTE PTR [EAX+6];
LEA EDX, [EDX*2+ECX-48];
, где ЕАХ - указатель на тот самый PChar, а в EDX после выполнения будет лежать результат.
Влом думать, как это будет на Дельфях.
Пусть это будет в счёт д/з ;)
Короче, значение из EDX копируем в st.wDay
5) ... ну, и далее по образцу =) -
Renegat © (19.07.08 17:27) [7]> шестой символ
*извиняюсь, седьмой. -
> Renegat © (19.07.08 17:25) [6]
Ты это о чём?