Главная страница
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.48 MB
Время: 0.03 c
11-41121
LITTEL[MF]
2003-02-16 05:00
2003.11.13
PStrList >Помоему он не доработан или там ошибка.


1-41729
Saturn
2003-11-03 15:45
2003.11.13
Хитрый вопрос. :)


8-41763
nice
2003-07-05 20:18
2003.11.13
Midi из файла ресурсов?


4-42259
Dimich1978
2003-09-05 09:54
2003.11.13
Помогите скрыть меню при нажатии на кнопку ПУСК


14-42061
Knight
2003-10-23 22:13
2003.11.13
Почему не работает?