Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];

Вниз

String to Date   Найти похожие ветки 

 
Grihan   (2006-05-06 20:55) [40]

Мефисто!

<ешкин кот> ...

мне что, заюзать TryStrToDate и не парится???  а что делать, если юзер написал в редакторе матом??? или "ешкин кот"?
для этого и анализируется результат работы трансформаторных функций. И как вы сами понимаете, мне будет трудно компьютеру объяснить следующее: не смотря на то, что функция TryStrToDate затрудняется пропарсить строку, она справилась со своей задачей. Честь ей и хвала.


 
Grihan   (2006-05-06 21:02) [41]


> > 1. Что куда вводится "Болгаром"?
> > 2. Что там изначально (до того, как этот "Болгар" фокус
> > переведет на этот компонент) уже указано?
> > 3. Что он может и должен туда вводить?
> > 4. А что получиться должно уже ясно: TDateTime.


1) Есть TxxSuperDateEdit, лежащий на форме. туда и вводит.
2) Предположительно программист, пожелающий воспользоватся TxxSuperDateEdit может захотеть проинициализировать TxxSuperDateEdit сегодняшним числом, чтобы конечному пользователю облегчить жизнь
3) конечный пользователь может вводить все что угодно, например:
 a) 10.10.2005
 b) 10.10.2005 г.
 c) today
 d) f...k
4) в случае, если пользователю повезло, и он ввел в редактор распознаваемый текст, мы его конвертим в TDateTime иначе выдаем сообщение об ошибке.


 
mfender ©   (2006-05-06 21:09) [42]

А болгары не пишут в TMaskEdit?


 
KilkennyCat ©   (2006-05-06 21:25) [43]

Удалено модератором


 
Мефисто   (2006-05-06 21:29) [44]

Grihan    (06.05.06 20:55) [40]

>> мне что, заюзать TryStrToDate и не парится???

Заюзать или расширить функционал. На сколько она может, на столько она дату и распарсит (см. исходники). Ест-но разработчики не могут предусмотреть все варианты вывода даты по маске (кто знает кому и чего взбредет в голову). А как вы сами понимаете, за вас парсер под ваши нужды писать никто не будет.

И вообщем если честно, не совсем ясен ваш подход в данной ситуации. Пользователь вводит дату на свой манер, а программе это творчество расхлебывать? Почему бы просто не организовать давно проверенное средство - ввод данных по маске? Если создается некий SuperDateEdit - то распарсить дату вам придется... сложновато. Одно будет облегчение если вводу данных предшествовала хоть какая нибудь маска ввода, а в ином случае будет затруднительно отличить например: 10.10.2006 - на каком месте месяц, а на каком день?  Можно задать такую маску, что распарсить замучаешься: Сегодня 6 - 2006 год (май). Как анализировать? Плюс возможные опечатки пользователя.

Вобщем, сам решай, анализируй, мучайся ;)
Удачи в творческих успехах! :)


 
Virgo_Style ©   (2006-05-07 14:29) [45]

а если наш болгарин написал 02.03.17, то программа должна сама определить, где месяц, где день, и какое столетие имелось в виду? Как-то нереально это.


 
homm ©   (2006-05-07 21:30) [46]


>  [41] Grihan   (06.05.06 21:02)


> 4) в случае, если пользователю повезло, и он ввел в редактор
> распознаваемый текст, мы его конвертим в TDateTime иначе
> выдаем сообщение об ошибке.

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


 
Шутник   (2006-05-07 21:47) [47]

Гриха сутки трепался на форуме по пустяковому вопросу, вместо того, чтобы сесть, подумать и решить проблему без всяких выпендрёжей типа DecodeDate(StrToDate(DateToStr(TryStrToDate(TryDateToStr(TxxSuperDateEdit.Date)) ))).


 
TUser ©   (2006-05-08 10:26) [48]

Пользователь - существо бесправное. Он должен вводить данные в том формате, который предусмотрен в программе. А если ему вздумается написать today на китайском наречии, то программа должна сообщить об ошибке и попросить ввести дату еще раз.


 
Virgo_Style ©   (2006-05-08 13:13) [49]

Я бы сделал стандартный DateTimePicker или MonthCalendar, а уж рядом кнопочка для выбора известных дат из списка. Или ComboBox...


 
KilkennyCat ©   (2006-05-08 13:26) [50]

По поводу локализации программ написано куча статей, от теоретических до практических. Если память не изменяет, даже в стандартных делфевых примерах есть.
ИМХО, тут нужно просто четкое ТЗ.
Будет неоднозначное ТЗ - будет грамотное решение.

> TUser ©   (08.05.06 10:26)
> Пользователь - существо бесправное.

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


 
KilkennyCat ©   (2006-05-08 13:27) [51]


> [50] KilkennyCat ©   (08.05.06 13:26)


Опечатался.
Будет однозначное ТЗ - будет грамотное решение.


 
TUser ©   (2006-05-08 13:34) [52]

> Надо ему давать максимально много прав

Разрешить вводить дату по древнеегипетскому календарю?


 
KilkennyCat ©   (2006-05-08 13:42) [53]


> [52] TUser ©   (08.05.06 13:34)


Как дополнительная фишка - почему бы и нет, если не нарушает работу программы. Главное, в справке описать и оценить экономическую выгоду.



Страницы: 1 2 вся ветка

Форум: "Основная";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.54 MB
Время: 0.013 c
2-1148196813
Belorus
2006-05-21 11:33
2006.06.18
Список процедур в библиотеке


15-1148297897
begin...end
2006-05-22 15:38
2006.06.18
Как назначить пользователю права на ветку реестра в Win2k Prof?


3-1145705181
Алексей1
2006-04-22 15:26
2006.06.18
Как можно сгруппировать по месяцам


15-1148454022
Sergey13
2006-05-24 11:00
2006.06.18
Самосуд? Самозащита?


2-1149046199
D@Nger
2006-05-31 07:29
2006.06.18
BLOB not opened





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский