Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Левая дата в dbf / 12 сообщений из 12, страница 1 из 1
17.05.2007, 12:46
    #34532108
Гурант
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Левая дата в dbf
всем HI!
Вопрос. Ни у кого небыло такой ситуации:
Есть dbf с полем date. Там стоит "20.02.2007". По независящим от нас причинам (не из фокса) файл бъется и в поле теперь там "30.02.2007".

Как отреагирует фокс если попытаться открыть этот файл? Откажется вообще или в поле покажет звездочки (как в случае числового поля в аналогичной ситуации)?

Сейчас разбираюсь с таким случаем, но там битых дат нет вроде. А надо на перспективу...
...
Рейтинг: 0 / 0
17.05.2007, 12:56
    #34532177
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Левая дата в dbf
Ну так открой dbf любым текстовым редактором и исправь дату.
Лично у меня после таких издевательств - показывает пустую дату
...
Рейтинг: 0 / 0
17.05.2007, 13:01
    #34532207
Гурант
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Левая дата в dbf
залезть то можно, но интересно найти программно и обезвредить :)
...
Рейтинг: 0 / 0
17.05.2007, 13:32
    #34532359
Burn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Левая дата в dbf
Интересно как такое могло получится - насколько я помню поле типа Date содержит количесво секунд с какого начального момента. Так что в нем по определению неправильной даты быть не может. А если поле символьное то можно писать и править как захочется Фокс и слова не скажет
...
Рейтинг: 0 / 0
17.05.2007, 13:49
    #34532438
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Левая дата в dbf
Количество секунд хранится для поля типа DateTime, а для поля типа Date хранится строка в формате YYYYMMDD.
...
Рейтинг: 0 / 0
17.05.2007, 13:57
    #34532471
Левая дата в dbf
BurnИнтересно как такое могло получится - насколько я помню поле типа Date содержит количесво секунд с какого начального момента. Так что в нем по определению неправильной даты быть не может. А если поле символьное то можно писать и править как захочется Фокс и слова не скажет
Неправильно помните... То, что Вы сказали - справедливо для DateTime поля.
Стандартное же поле Data в DBF-файле содержит символьные данные в виде строки вида YYYYMMDD. Так что, можно (при соответствующем желании) подправить дату и в текстовом редакторе... Только надо быть осторожным, чтобы лишним символом не произвести смещение остальных данных, так как данные различных полей следуют друг за другом без разделителей...
...
Рейтинг: 0 / 0
17.05.2007, 13:58
    #34532479
Burn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Левая дата в dbf
Точно. Запамятовал:(
...
Рейтинг: 0 / 0
17.05.2007, 14:12
    #34532551
Гурант
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Левая дата в dbf
Как-бы там данные не хранились, вирь или еще что может их запортить...
Так как програмно отловить невалидную дату?
...
Рейтинг: 0 / 0
17.05.2007, 14:26
    #34532633
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Левая дата в dbf
стандартными средствами - думаю никак
можно конечно написать свою прогу для разбора "внутренностей" и сравнивать данные полученные 2 способами.
Кстати - случай замены на "левую" дату не так страшен , как вариант замены например "20.02.2007" на "21.02.2007" - тут уже никак не выловить ...
...
Рейтинг: 0 / 0
17.05.2007, 17:39
    #34533515
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Левая дата в dbf
Гурантзалезть то можно, но интересно найти программно и обезвредить :)
Дак уже обезврежено. фокс такую дату пустой показывает и обрабатывает как пустую
А если тебе для другого софта надо пустую, то
Код: plaintext
repl for empty(dDate) dDate with {}
...
Рейтинг: 0 / 0
17.05.2007, 17:45
    #34533542
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Левая дата в dbf
Проскочил этот пост
ГурантКак-бы там данные не хранились, вирь или еще что может их запортить...
Так как програмно отловить невалидную дату?
Структура DBF ( тынц ) довольно простая, читай DBF как файл и если прочитанное в число через CTOD() не преобразуется в дату, то значит дата "нереальная"
...
Рейтинг: 0 / 0
18.05.2007, 10:08
    #34534614
Гурант
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Левая дата в dbf
Всем спасибо за ответы
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Левая дата в dbf / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]