Автор | Сообщение |
|
| |
Пост N: 155
Зарегистрирован: 06.06.06
|
|
Отправлено: 07.03.20 17:44. Заголовок: Изменение размера открытого файла
Всем привет! На Клиппере у меня есть функция изменения размера открытого файла ChFileSize() CLIPPER ChFileSize() { _retl( !chsize(_parni(1),_parnl(2)) ); } Ей передается дескриптор и новый размер файла. Все прекрасно работает. Переписал код для Харбора - не работает. HB_FUNC( CHFILESIZE ) { hb_retl( !chsize(hb_parni(1),hb_parnl(2)) ); } Может как-то по другому нужно?
|
|
|
Ответов - 10
[только новые]
|
|
|
| |
Пост N: 156
Зарегистрирован: 06.06.06
|
|
Отправлено: 10.03.20 21:19. Заголовок: Нашел функцию hb_fsT..
Нашел функцию hb_fsTruncAt ─ она урезает файл до нужного размера. Описана в C:\hb32\include\hbapifs.h: extern HB_EXPORT HB_BOOL hb_fsTruncAt ( HB_FHANDLE hFileHandle, HB_FOFFSET nOffset ); /* truncate file to given size */ Но никак не могу ее прилинковать. Вставил #include "hbapifs.h" Ошибка компиляции: c:\hb32\include\hbdefs.h(50) Error F0029 Can't open #include file 'stdarg.h' Подскажите, что делать?
|
|
|
|
| |
Пост N: 226
Зарегистрирован: 19.05.05
|
|
Отправлено: 11.03.20 11:41. Заголовок: ort пишет: c:\h..
ort пишет: цитата: | c:\hb32\include\hbdefs.h(50) Error F0029 Can't open #include file 'stdarg.h' |
| Так этот файл в компиляторе (BORLAND). Может пути не прописаны ??? Да и сам вызов должен быть в #pragma BEGINDUMP ...... #pragma ENDDUMP
|
|
|
|
| |
Пост N: 157
Зарегистрирован: 06.06.06
|
|
Отправлено: 11.03.20 11:55. Заголовок: hb_fsTruncAt нельзя ..
hb_fsTruncAt нельзя вызывать как обычную функцию Харбора? Что-то не пойму...
|
|
|
|
| постоянный участник
|
Пост N: 3087
Зарегистрирован: 17.02.12
|
|
Отправлено: 11.03.20 12:10. Заголовок: ort пишет Но никак н..
ort пишет цитата: | Но никак не могу ее прилинковать |
| ф-я встречается в файлах rtl\filebuf.c rtl\filesys.c вам надо сделать HB_FUNC на примере аналогично из rtl\filesys.c HB_FUNC( HB_DISABLEWAITLOCKS ) { hb_retl( hb_fsDisableWaitLocks( hb_parldef( 1, -1 ) ) ); } Если сами собираете hb, то можно в самом rtl\filesys.c, в своем проекте, как сказал nick_mi Какие #include включить не скажу, но можно выбрать из используемых в rtl\filesys.c или поискать в примерах для прбы
|
|
|
|
| |
Пост N: 158
Зарегистрирован: 06.06.06
|
|
Отправлено: 11.03.20 12:53. Заголовок: SergKis, спасибо, ве..
SergKis, спасибо, вечером попробую.
|
|
|
|
| |
Пост N: 227
Зарегистрирован: 19.05.05
|
|
Отправлено: 11.03.20 13:35. Заголовок: Вот здесь http://ww..
|
|
|
|
| |
Пост N: 159
Зарегистрирован: 06.06.06
|
|
Отправлено: 11.03.20 14:04. Заголовок: nick_mi, спасибо за ..
nick_mi, спасибо за наводку!
|
|
|
|
| |
Пост N: 7172
Зарегистрирован: 17.05.05
|
|
Отправлено: 11.03.20 23:31. Заголовок: ort пишет: На Клипп..
ort пишет: цитата: | На Клиппере у меня есть функция изменения размера открытого файла ChFileSize() |
| Не пойму а каково практическое применение такой функции , обрисуй на примере , если не сложно. Сколько времени кодю и не помню что бы такое понадобилось.
|
|
|
|
| |
Пост N: 160
Зарегистрирован: 06.06.06
|
|
Отправлено: 12.03.20 01:47. Заголовок: Dima, была у меня пр..
Dima, была у меня проблема с dbf-файлами, после аварийного завершения программы портились шапки файлов. Отсюда два варианта - исправить количество записей в шапке или исправить размер файла на основе количества записей в шапке.
|
|
|
|
| постоянный участник
|
Пост N: 838
Зарегистрирован: 13.10.05
|
|
Отправлено: 12.03.20 11:04. Заголовок: Правильно - определи..
Правильно - определить количество записей, размер базы и все занести в шапку DBF. Когда-то давно, давно приходилось так делать. Даже какие-то утилиты были. Но сейчас на Харборе базы перестали сыпаться.
|
|
|
|