Главная страница
    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.036 c
14-42064
zzet
2003-10-21 14:20
2003.11.13
Задача про 12 монет. Возвращение.


1-41201
yozhik
2003-11-04 19:26
2003.11.13
Картинка на fsMDIForm


3-40958
GSV_
2003-10-17 08:31
2003.11.13
Специалистам по Oacle. Вопрос про snapshot


3-40956
kosm
2003-10-09 10:00
2003.11.13
Предок для класса с записью в БД


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