Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
14-41902
Behemoth
2003-10-13 09:45
2003.11.13
Какой язык программирования под WEB выбрать?


4-42319
Евгений Веприков
2003-09-05 14:08
2003.11.13
Data Protection API


7-42186
Василий
2003-08-28 14:16
2003.11.13
Как получить данные через USB порт


6-41799
Artem
2003-09-17 11:29
2003.11.13
Имя компьютера по его IP-адресу


1-41717
willys
2003-11-03 16:58
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский