powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / базы из досовских версий
10 сообщений из 10, страница 1 из 1
базы из досовских версий
    #32281325
Tach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня есть базы, которые создавались в DOS-е
я их использую VFP-7.

в компилированной проге они показаны в виде страшных символов
как от этого избавиться?

за помощ буду премного бдагодарен
заранее спасибо ответившим
...
Рейтинг: 0 / 0
базы из досовских версий
    #32281327
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/topic/50130
...
Рейтинг: 0 / 0
базы из досовских версий
    #32281332
Tach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и как это все использовать где прописывать?
DO Cpzero WITH 'Material.DBF',1251
...
Рейтинг: 0 / 0
базы из досовских версий
    #32281338
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя же досовский файл, тогда:
Код: plaintext
DO Cpzero WITH 'Material.DBF', 866 

Перед тем как открывать файлы в VFP, прогони нечто подобное:
Код: plaintext
1.
2.
3.
n=ADIR(aFiles,'*.dbf')
FOR i= 1  TO n
	DO (HOME()+'tools\cpzero\cpzero.prg') with aFiles[i, 1 ],  866 
ENDFOR 
...
Рейтинг: 0 / 0
базы из досовских версий
    #32281442
sergej57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя базы данных были в версии ДОС - 866 кодовая страница.
Если в дальнейшем в среде ДОС базы обрабатываться не будут, то
пропускаешь их через CPZERO один раз прописывая 866 страницу-1251 или
открываешь в FOXe c 866 страницей, а сохраняешь в 1251 и на этом все.
Если база данных все же будет обрабатываться в ДОСе, то перед открытием
в VFP надо контролировать наличие метки о кодовой странице в заголовке
*.dbf файла, испольузя код из программы CPZERO и при необходимости ее прописывать.Версии FOX 2.5 и выше делают это автоматически при открытии таблицы и если она не прописана предлагают ее определить. Но если в ДОС таблицы обрабатываются Clipperom, 1c и т.д., то при перезаписи заголовка
они метку удаляют.
...
Рейтинг: 0 / 0
базы из досовских версий
    #32281659
Yura .
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это у меня выполняется всегда при открытии таблицы.
После того, как я стал это использовать при подключении к таблицам ДОС
я раз и навсегда забыл, что когда-то были проблемы с кодировкой.

nNum = fOpen(cName, 2)
If nNum > 0
= fseek (nNum,29)
cReal = fRead (nNum, 1)
If Asc(cReal) = 0
= fseek (nNum,29)
= fwrite(nNum,CHR(101)) && poke codepage number into byte 29
EndIf
= fclose(nNum)
EndIf
...
Рейтинг: 0 / 0
базы из досовских версий
    #32281760
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
базы из досовских версий
    #32282649
Tach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопрос к sergej57
а каким образом сохранить базу в кодировке 1251
...
Рейтинг: 0 / 0
базы из досовских версий
    #32282692
Фотография brahew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
tt=getdirr+'dbf_3\answers.dbf' 
USE &tt IN  0  EXCLUSIVE
SELECT answers
BROWSE NOWAIT 
GO TOP

меня вот это спасает при перекачке из старрых dbf clipper и fox2.6
сра сохраняет в 1251 кодировке
...
Рейтинг: 0 / 0
базы из досовских версий
    #32282773
sergej57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
открываешь допустим в ДОСе - 866
а затем -
copy to Filename as nCodePage

nCodePage - задает кодовую страницу для таблицы или файла, создаваемого командой COPY TO. Visual FoxPro копирует содержимое выбранной в данный момент таблицы и в процессе копирования автоматически преобразует данные в кодовую таблицу, указанную для новой таблицы или файла. Если это возможно, Visual FoxPro помечает вновь созданную таблицу или файл указанной кодовой страницей.
Если в качестве nCodePage вы задали кодовую страницу, которая не поддерживается, Visual FoxPro генерирует сообщение об ошибке. Вы можете с помощью функции GETCP( ) для этого значения nCodePage отобразить диалоговое окно Code Page и там задать кодовую страницу для создаваемой таблицы или файла.
Если опустить предложение AS nCodePage, вновь созданная таблица или файл преобразуется в текущую кодовую страницу Visual FoxPro.
Если значение nCodePage равно 0, никакого преобразования кодовых страниц не производится и вновь созданная таблица или файл не помечается кодовой страницей
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / базы из досовских версий
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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