Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / базы из досовских версий / 10 сообщений из 10, страница 1 из 1
02.10.2003, 00:18
    #32281325
Tach
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
базы из досовских версий
у меня есть базы, которые создавались в DOS-е
я их использую VFP-7.

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

за помощ буду премного бдагодарен
заранее спасибо ответившим
...
Рейтинг: 0 / 0
02.10.2003, 00:31
    #32281327
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
базы из досовских версий
/topic/50130
...
Рейтинг: 0 / 0
02.10.2003, 00:46
    #32281332
Tach
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
базы из досовских версий
и как это все использовать где прописывать?
DO Cpzero WITH 'Material.DBF',1251
...
Рейтинг: 0 / 0
02.10.2003, 01:00
    #32281338
NNN
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
02.10.2003, 09:32
    #32281442
sergej57
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
базы из досовских версий
У тебя базы данных были в версии ДОС - 866 кодовая страница.
Если в дальнейшем в среде ДОС базы обрабатываться не будут, то
пропускаешь их через CPZERO один раз прописывая 866 страницу-1251 или
открываешь в FOXe c 866 страницей, а сохраняешь в 1251 и на этом все.
Если база данных все же будет обрабатываться в ДОСе, то перед открытием
в VFP надо контролировать наличие метки о кодовой странице в заголовке
*.dbf файла, испольузя код из программы CPZERO и при необходимости ее прописывать.Версии FOX 2.5 и выше делают это автоматически при открытии таблицы и если она не прописана предлагают ее определить. Но если в ДОС таблицы обрабатываются Clipperom, 1c и т.д., то при перезаписи заголовка
они метку удаляют.
...
Рейтинг: 0 / 0
02.10.2003, 11:30
    #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
02.10.2003, 12:12
    #32281760
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
базы из досовских версий
...
Рейтинг: 0 / 0
02.10.2003, 23:44
    #32282649
Tach
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
базы из досовских версий
вопрос к sergej57
а каким образом сохранить базу в кодировке 1251
...
Рейтинг: 0 / 0
03.10.2003, 04:42
    #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
03.10.2003, 09:10
    #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
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / базы из досовских версий / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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