On-line: Andrey, SergKis, гостей 0. Всего: 2 [подробнее..]
АвторСообщение





Пост 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)) );
}

Может как-то по другому нужно?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 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'
Подскажите, что делать?

Спасибо: 0 
ПрофильЦитата Ответить



Пост 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

Спасибо: 1 
ПрофильЦитата Ответить





Пост N: 157
Зарегистрирован: 06.06.06
ссылка на сообщение  Отправлено: 11.03.20 11:55. Заголовок: hb_fsTruncAt нельзя ..


hb_fsTruncAt нельзя вызывать как обычную функцию Харбора?
Что-то не пойму...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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 или поискать в примерах для прбы

Спасибо: 1 
ПрофильЦитата Ответить





Пост N: 158
Зарегистрирован: 06.06.06
ссылка на сообщение  Отправлено: 11.03.20 12:53. Заголовок: SergKis, спасибо, ве..


SergKis, спасибо, вечером попробую.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 227
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 11.03.20 13:35. Заголовок: Вот здесь http://ww..


Вот здесь
http://www.kresin.ru/hrbfaq_3.html#Doc7
Кресин прописал разные функции, в том числе
pHndl := hb_vfOpen (namefile)
laa := hb_vfTrunc( pHndl , nSize)
hb_vfClose (pHndl)

Спасибо: 1 
ПрофильЦитата Ответить





Пост N: 159
Зарегистрирован: 06.06.06
ссылка на сообщение  Отправлено: 11.03.20 14:04. Заголовок: nick_mi, спасибо за ..


nick_mi, спасибо за наводку!

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7172
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.03.20 23:31. Заголовок: ort пишет: На Клипп..


ort пишет:

 цитата:
На Клиппере у меня есть функция изменения размера открытого файла ChFileSize()


Не пойму а каково практическое применение такой функции , обрисуй на примере , если не сложно.
Сколько времени кодю и не помню что бы такое понадобилось.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 160
Зарегистрирован: 06.06.06
ссылка на сообщение  Отправлено: 12.03.20 01:47. Заголовок: Dima, была у меня пр..


Dima, была у меня проблема с dbf-файлами,
после аварийного завершения программы портились шапки файлов.
Отсюда два варианта - исправить количество записей в шапке или исправить размер файла на основе количества записей в шапке.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 838
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 12.03.20 11:04. Заголовок: Правильно - определи..


Правильно - определить количество записей, размер базы и все занести в шапку DBF. Когда-то давно, давно приходилось так делать. Даже какие-то утилиты были. Но сейчас на Харборе базы перестали сыпаться.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 117
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет