FoxPro Club Главная

Конференция Решения Фотоальбом Сайт М.Дроздова Статьи Файловый архив Книга Visual FoxPro 9.0 Русский Help для Visual FoxPro
Пользователей: 9207
Вход
Опыт перевода проекта из FoxPro 2.6 DOS в VFP 6.0

Опыт перевода проекта из FoxPro 2.6 DOS в VFP 6.0


 
Прислал: ГВК   Категория: Инструменты разработчика


Опыт перевода проекта из FoxPro 2.6 DOS в VFP 6.0

ОПЫТ ПЕРЕВОДА ПРОЕКТА
из FoxPro 2.6 DOS в Visual FoxPro 6.0

Для чего я это пишу?

Чтение эхо-конференций и конференции Visual FoxPro Club показал, что, несмотря на существование современного средства разработки программ Visual FoxPro 6, многие продолжают программировать на устаревшем (морально и физически) средстве FoxPro 2.6 DOS. Причины различные, углубляться не буду. Но одна из причин, как мне кажется, инерция человеческого мышления, и неохота связываться с трудностями перехода на новое средство. А также кажущиеся огромные трудности.
Да, бесспорно, трудности есть. Особенно, когда это приходится преодолевать самостоятельно. По слухам, существует кое-какая литература, посвященная этой проблеме, но я не сталкивался. Преодолел эти трудности самостоятельно, и теперь возникло желание поделиться решениями.

Замечание Игоря Шанука. В MSDN есть раздел посвященный переводу проектов разработанных на более ранних версиях FoxPro: "Converting from Other Versions of FoxPro" -> "Converting from FoxPro 2.6"

Данные записки предназначены для тех, кто уже хочет, но еще не может, или для тех, кто ну никак не созреет к переходу на VFP 6.0.

Замечание! На самом деле, переход с 2.6 на VFP 6.0 не столь уж и труден. Во всяком случае, задача вполне преодолимая. VFP 6.0 декларирует поддержку всего, созданного в ранних версиях FoxPro. Хотя это и не совсем так, но это мелочи.

Ограничения.

Проект, который я переводил из 2.6 в 6.0, содержит только процедуры и свободные таблицы. То есть, отчеты, запросы, окна и т. п. запрограммированы ручками в процедурах (в файлах PRG).
Предполагается, что VFP 6.0 проинсталлирован и имеются исходные тексты проекта, который переводится. Инсталляция FoxPro 2.6 необязательна.

Порядок перевода.

1. Создаем новую папку.
2. Требуется устранить первую проблему отображения русских букв. Связано это с тем, что в 2.6 файлы в кодовой странице 866.

Решение может быть таким: создать новый проект в VFP 6.0, включить в него все PRG файлы, и в Projekt Info -> Files проставить всем файлам Code Page = 866 (Russian MS-DOS). Однако в этом случае, текст преобразованного PRG файла оставляет желать лучшего, потому что по непонятным причинам русский текст искажается (многие буквы не воспринимаются и заменяются различными никому не нужными и всем мешающими символами).

Я рекомендую следующее решение:

- Открыть PRG файлы (можно последовательно) в WinWorde, указав кодировку – Кирилица (DOS).

- Открытые файлы сохранить в новой папке как текстовые с расширением PRG, но в другом формате (Файл -> Сохранить как –> формат файла = только текст (*.txt) –> ответить ДА на запрос о преобразовании). В этом случае, PRG файлы сразу делаются в кодировке 1251 и русский текст корректен.

Замечание! Работа довольно кропотливая, но она стоит того. В противном случае, см. решение 1, описанное выше, Вам придется просматривать тексты PRG файлов и корректировать все надписи по-русски. Это гораздо больше работы.

Замечание Игоря Шанука. Тут на мой взгляд хорошо бы было уточнить этот момент.Я провел эксперимент:
1. Создал новый файл проекта (в VFP)
2. Добавил в него (вручную) нужные файлы
3. Установил для файлов 866 кодовую страницу (до установки кодовой страницы файл не открывался)

После всех этих манипуляций русский текст в комментариях и сообщениях, которые предполагалось выдавать пользователю, нормально читался.

Замечание Игоря Шанука. Т.е. фактически подхода два:
a) предоставить FoxPro работать с файлами в исходной кодовой странице
(866),
b) либо предварительно перекодировать файлы в 1251. (В этом случае
можно написать несложную утилиту (на том же FoxPro) которая автоматизирует этот процесс).

4. Требуется устранить вторую проблему отображения русских букв. Связано это с тем, что в 2.6 окна отображают русские буквы шрифтом по умолчанию, и может получиться греко-арабская абракадабра при выполнении проекта.

Для этого необходимо добавить в описание окон наименование [и размер] шрифта, например:

DEFINE WINDOW okno ;
FROM INT((SROW()-19)/2),INT((SCOL()-80)/2) ;
TO INT((SROW()-19)/2)+19,INT((SCOL()-80)/2)+79 ;
TITLE "РЕДАКТИРУЕМЫЕ РЕГИСТРАЦИОННЫЕ ДАННЫЕ" ;
NOFLOAT ;
NOCLOSE ;
NOMINIMIZE ;
DOUBLE ;
COLOR w+/bg,w+/b,gr/n,gr+/w,n+/w,w+/gr,bg+/bg,n+/n,b/bg,w/bg,+ ;

FONT 'Times New Roman', 10


5. Заменить все литеральные константы дат типа {01.01.93} на {^1993-01-01}, т. е. - {^ГГГГ-ММ-ДД}.

Замечание Игоря Шанука. Этого можно не делать, если в VFP установить SET STRICTDATE TO 0. Так же думаю, что полезно привести ссылку на раздел MSDN "Year 2000 Date Support"

6. Добавить соответствующее SET CENTURE

7. Удалить из новой папки все файлы с расширением FXP. Могут случайно попасться FXP файлы для FoxPro 2.6, которые очень сильно будут мешать.

8. Создать новый файл проекта. Включить в него все необходимые PRG файлы и перекомпилировать проект (предполагается, что Вы знаете как включать файлы в проект и как перекомпилировать проект).

9. ВСЕ! Проект можно запускать на выполнение. Однако, для дальнейшей хорошей работы, проект желательно все-таки перепроектировать, а именно – добавить формы, поиграть с размерами и фонтами окон, и т.п.

Примечание! Автор будет благодарен, если кто-нибудь дополнит эти скромные записки материалами по переводу из 2.6 в VFP отчетов, запросов и т.п. прибамбасов.

 
Сделайте оценку этого решения Плохо Удовлетворительно Так себе Хорошо Отлично Текущая оценка: (4.907)
Дополнения пользователей
Опыт перевода проекта из FoxPro 2.6 DOS в VFP 6.0
[+][?]
Alex from NN
03.04.01 05:32:00

Отлично!
Очень хорошо решается с окнами.
Я переводил в 6.0 из 2.5 под Windows.
Проект был не мой, и там была универсальная функция выбора значений из справочников с помощью
DEFINE POPUP. Она в 6.0 не работала - не выходила по нажатию Enter - только по ESC. Поэтому
пришлось сделать процедуру, навешенную на ON KEY LABEL Enter, которая вызывала обработку выбора
значения.
>
11.04.01 14:55:02

Юра Г.
11.04.01 14:57:56

Я тоже пробовал переводить программы из под Fox 2.5 for Win в VFP 6.

Но когда переводил свои программы - то все ОК. А когда пришлось переводить чужие случились
некоторые непонятки например некоторые окна в новом проекте просто не открылись, но в старом
открываль нормально - в чем проблем ?!!!
Igor
07.09.01 22:44:05

Для конвертации экранов, в случае когда базы данных экранов (*.scx) имеет нулевую кодовую страницу
необходимо установить 866 при помощи cpzero.prg. По поводу неоткрытия форм обычно пишется
сообщение он неверном цвета в такой-то строке. Открыть *.Scx файл как таблицу (use *.scx), перейти
на нужную запись и в поле Propertits удалить строку ColorSource = .... или изменить значение
Alex
13.08.04 16:46:18

http://www.foxhelp.ru/PreobrazovaniePrilozhenijjFoxPro2VisualFoxPro5?v=1ebm    

Достаточно подробно описано.
Alex
13.08.04 16:46:23

http://www.foxhelp.ru/PreobrazovaniePrilozhenijjFoxPro2VisualFoxPro5?v=1ebm    

Достаточно подробно описано.
[Дополнить]



© 2000-2017 Fox Club 
При размещении любых материалов с сайта на других ресурсах- прямая ссылка на www.foxclub.ru обязательна
Яндекс.Метрика