Форум: "KOL";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
ВнизПроблемы с конвертацией дат и 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 вся ветка
Форум: "KOL";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.033 c