Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

StrToDateTime vs Я [D7, WinXP]


Страницы:   1 2

R1ka ©   (2008-07-19 16:33:00) 

Как бы заставить эту функцию переварить вот такое: "Thu, 24 Apr 2008 06:48:52" ? Уже 10 часов парюсь =(


Johnmen   (2008-07-19 19:30:00) [21]


> Renegat ©   (19.07.08 17:25) [6]

Ты это о чём?


Renegat   (2008-07-19 17:27:00) [22]

> шестой символ

*извиняюсь, седьмой.


Renegat   (2008-07-19 17:25:00) [23]

Алгос:

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) ... ну, и далее по образцу =)


R1ka   (2008-07-19 17:06:00) [24]

понятно. спасибо


{RASkov}   (2008-07-19 17:03:00) [25]

....ну и очивидно, что наоборот, из кучи разных вариантов строк, получить одно и тоже число проблематичнее...


{RASkov}   (2008-07-19 17:01:00) [26]

> [2] R1ka ©   (19.07.08 16:52)

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


R1ka   (2008-07-19 16:52:00) [27]

почему никак? FormatDateTime же позволяет создать точно такую же строку, Неужели не предусмотрено обратное действие :(


{RASkov}   (2008-07-19 16:37:00) [28]

Никак. Только свою писать... но тут.... многое зависит)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо