Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

Проблемы с конвертацией дат и NewFileStream   Найти похожие ветки 

 
Maxim Pushkar   (2003-02-13 01:00) [0]

Проблема 1:
Пытаюсь пользовать процедуры DateTime2SystemTime и SystemTime2DateTime. Все бы хорошо, но тип TDateTime по стандарту ведет отсчет не с 0001 года (как было в Delphi 1), а с 1899 и при конвертации получается не 2000 год а 101. Стоило бы подкорректировать.

Проблема 2:
Работаю с файлом на чтение/запись. Использую для этого PFileStream, который создаю с помощью NewFileStream. Проблема возникает, когда я начинаю гулять по файлу (Seek) и писать блоки данных. После каждой записи файл "режется" на конце блока, что есть неправильно. Функция NewReadWriteFileStream не подходит, так как не дает задать дополнительные атрибуты (например DenyWrite и т. д.)

З. Ы. У себя я это подправил, но нехотелось бы править исходники после каждого апдейта.

Спасибо за внимание.


 
SPeller   (2003-02-13 04:35) [1]

А у меня не работал ReadFileStream. Не помню читал он или нет, или только пытался, но вобщем ничего хорошего у него не получалось и прога вылетала.


 
Maxim Pushkar   (2003-02-14 03:13) [2]

У меня все функции с файлами работают нормально. Может ты просто не проверяешь состояние потока? ( FILE_INVALID_HANDLE или что-то подобное)


 
SPeller   (2003-02-14 10:32) [3]

Не знаю как и чего, но FileStream использует для работы АПИ-функции для чтения/записи. Так вот, когда я использую поток, то НЕ читается, а если открываю тот же файл непосредственно АПИ-шной функцией, то всё читается нормально. И проверяю всё на PAS-версии, потому как ASM-версию и без меня проверят :-))


 
Kladov   (2003-02-14 15:47) [4]

В KOL тип TDateTime ведет отсчет от 1-го г. нашей эры. Такое значение возвращает Now в KOL. Есть константа для перехода к дате в формате VCL и SQL: VCLDate0. Вычтете ее из даты KOL, получите дату VCL.


> NewFileStream. Проблема

А почему не используете NewReadWriteFileStream ? Будет подправлено, но тогда сами EOF ставьте.


 
SPeller   (2003-02-15 23:44) [5]


> А почему не используете NewReadWriteFileStream ?

Я использую именно так созданный поток и ничего у меня не читается.


 
Kladov   (2003-02-16 00:19) [6]

А может, файл защищен от записи?


 
SPeller   (2003-02-16 04:42) [7]

Нет. Я ж говорю, что CreateFile открывает запросто. Я проверял при использовании потока атрибуты - стояла галочка только на "Архивный". Да и причём защита от записи, если открываю на чтение?


 
Kladov   (2003-02-16 09:06) [8]

и на запись. У меня таких проблем не было. Смотрите, чему равен Strm.Handle. Если INVALID_HANDLE_VALUE, то можно сделать ShowMessage( SysErrorMessage( GetLastError ) ), и посмотреть, что не так.



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

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.035 c
14-41901
Igor_2k
2003-10-21 14:47
2003.11.13
http://delphi.esmartweb.com


7-42143
webPauk
2003-09-03 14:20
2003.11.13
Блокировка клавы


8-41758
Andrew S
2003-07-08 17:11
2003.11.13
Копирование в TBitmap с применением своей палитры


1-41484
Dark Elf
2003-10-28 18:02
2003.11.13
Подключение dll в проект


6-41862
romychk
2003-09-09 16:04
2003.11.13
Файлы идут очень долго.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский