powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / DBF из foxpro 2.6 в Visual
4 сообщений из 4, страница 1 из 1
DBF из foxpro 2.6 в Visual
    #38869039
13spartak13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Нужна помощь есть программа на Visual 9.0, и есть программка на Foxpro 2.6, надо в Visual пользоваться dbf из foxpro 2.6, как организовать этот процесс с конвертацией шрифтов, или копированием при каждом запуске этой dbf
...
Рейтинг: 0 / 0
DBF из foxpro 2.6 в Visual
    #38869123
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VFP нормально открывает досовские dbf если там в заголовке правильно указана кодовая страница. Кодировка задается в 29-м байте, подробнее тут

Проблема в том что FPD не устанавливает кодовую страницу и пишет туда 0. Надо проставить.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
proc SetCP866
lpara tcFile
local lnH, llOk
lnH = FOPEN(tcFile, 2)
if lnH > 0
	FSEEK(lnH, 29)
	FWRITE(lnH, CHR(101))
	FCLOSE(lnH)
	llOk = .T.
endif
return llOk


Использовать так:
Код: sql
1.
2.
3.
4.
5.
6.
if !SetCP866('c:\MyProg\MyDbf.dbf')
  ? 'Ошибка открытия c:\MyProg\MyDbf.dbf'
else
  use c:\MyProg\MyDbf.dbf
  brow
endif


Постоянно это делать необязательно, кодовая страница обнуляется только при выполнении в FPD таких команд как PACK, ZAP.

Проверить какая кодовая страница стоит можно функцией cpdbf(), если стоит - возвращает 866, не стоит - 0.
...
Рейтинг: 0 / 0
DBF из foxpro 2.6 в Visual
    #38869305
Дед Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для того, что бы в FPD 2.6 таблицы были уже с кодовой 866, нужно в cofig.fp прописать Cdepage = 866. Тогда при создании DBF таблиц, уже будет прописана кодовая таблица. И в процессе работы она уже не потеряется. До версии FPD 2,5 операционка не имела представления о кодовых таблицах, поэтому и были нулевыми. В Клиппере они так и остались 0, а вот в FPD, начиная с 2,5 уже нормально прописывались в заголовке, и можно было спокойно переводить даные.
...
Рейтинг: 0 / 0
DBF из foxpro 2.6 в Visual
    #39029843
DenisLan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дед Евгенийнужно в cofig.fp прописать Codepage = 866
Наконец-то найдено лекарство! Спасибо огромное!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / DBF из foxpro 2.6 в Visual
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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