Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / dBaseIII+ и dBaseIV / 3 сообщений из 3, страница 1 из 1
16.12.2008, 11:57
    #35716665
vega
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dBaseIII+ и dBaseIV
Может кто сталкивался с проблемой русских букв у dbf c типами dBaseIII+ и dBaseIV ?
Delphi у таблиц dBaseIII+ распознает русские буквы, а у dBaseIV - нет.
В BDE у драйвера DBASE язык выбран "Dbase RUS cp866".
...
Рейтинг: 0 / 0
17.12.2008, 10:53
    #35719208
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dBaseIII+ и dBaseIV
Насколько помнится, в dBase IV в заголовке файла появился байт кодировки. Какой по счету - не помню, поищи в Инете, заменить можно любым HEX-editor
...
Рейтинг: 0 / 0
17.12.2008, 11:21
    #35719292
regom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dBaseIII+ и dBaseIV
vega, я сталкивалься с проблемой распознавания русских букв при работе с DBF - файлами по Windows. Дело в том, что изменения параметров BDE может быть не достаточно. В заголовке DBF файла есть специальный байт, отвечающий за кодовую страницу. Он расположен со смещением 29 (в десятичной системе) и при ненулевом значении сбивает с толку большинство программ под Windows. Для устранения этой неприятности я на старом добром CLIPPERe создал утилиту, обнуляющую этот самый байт:
parameters fn
private f,c,k
if pcount() = 0
alert('Эта программа необходима для установки русской кодовой страницы в .DBF-файлах'+;
' Вызывается из приложений PARADOX')
quit
endif
f=fopen(fn,0)
if f < 1
alert('Не могу открыть файл '+fn)
quit
endif
fseek(f,29)
c = space(1)
fread(f,@c,1)
k = asc(c)
fclose(f)
if k <> 0
fopen(fn,2)
fseek(f,29)
fwrite(f,chr(0),1)
fclose(f)
endif

Запускается либо один раз вручную с параметном <имя файла> или из приложения как EXE- файл.
Скорее всего, в формате DBASE III этот вредоносный байт не был предусмотрен.
...
Рейтинг: 0 / 0
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / dBaseIII+ и dBaseIV / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]