Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Работа с файлами на низком уровне
|
|||
|---|---|---|---|
|
#18+
Есть програмка такого содержания PARAMETER filename IF ![.DBF]$filename filename = filename+[.DBF] ENDIF fh = FOPEN(filename,2) a = FREAD(fh,29) a = LEFT(a,28)+CHR(0) = FSEEK(fh,0,0) = FWRITE(fh,a) = FCLOSE(fh) Она обнуляет ссылку на cdx - в файле DBF Но вот в чем проблемма, если запустить из командного окошка все хорошо, а если из программы то "сдыхают" MEMO - поля. В чем дело не могу разобраться, помогите!!!!!!!!!!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2003, 12:18 |
|
||
|
Работа с файлами на низком уровне
|
|||
|---|---|---|---|
|
#18+
Значения, которые может принимать 28 байт заголовка таблицы: 0x01file has a structural .cdx 0x02file has a Memo field 0x04file is a database (.dbc) Note that this byte can contain the sum of any of the above values. For example, 0x03 indicates the table has a structural .cdx and a Memo field. Т.е. в 28 байте, кроме ссылки на структурный индексный файл есть еще ссылка на мемо-поля. А если речь идет о файле базы данных (DBC), то еще и признак того, что данная таблица - это именно база данных. Следовательно, просто обнулять этот байт нельзя. Необходимо вычесть 1 из его значения. Примерно так: LOCAL lnFD lnFD=FOPEN(FielName,2) LOCAL lnByte =FSEEK(m.tnFD,28,0) lnByte=ASC(FREAD(m.tnFD,1)) =FSEEK(m.lnFD,28,0) =FWRITE(m.lnFD,CHR(m.lnByte-1)) =FCLOSE(m.lnFD) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2003, 12:43 |
|
||
|
Работа с файлами на низком уровне
|
|||
|---|---|---|---|
|
#18+
Да, забыл добавить, что перед вычитанием, следует убедится, что есть, что вычитать. В данном случае значение lnByte должно быть нечетным, т.е. IF MOD(m.lnByte,2)=1 * Есть признак индексного файла. Вычитаем 1 ENDIF ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2003, 12:45 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=405&tid=1597589]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 269ms |
| total: | 410ms |

| 0 / 0 |
