Форум » [x]Harbour » Перевожу Clipper на консольный Харбор » Ответить

Перевожу Clipper на консольный Харбор

MIKHAIL: Добрый день, уважаемое сообщество! Перехожу на Харбор, собрал программу, начинаю бороть ошибки несовместимости кода, по мере появления вопросов надеюсь на скорую помощь. Заранее всем участникам огромное спасибо!

Ответов - 245, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 All

Sergy: Andrey пишет: Скорее всего под NTX не заработает - это чисто MSFOX примочка, для Клипера и Харбора нужно переходить на CDX-драйвер ! C точки зрения собственно DBF разницы между NTX и CDX нет никакой. Таблица вообще может быть одна, без соотв. индексного файла. Поэтому "специфические" типы данных ("^", "@", "+", "=", "I:+" и тп) работают без проблем. Проверено. И в целом, Viktor (или Przemek ) писал, что NTX/CDX - изнутри - одно и то-же. NTX занимает больше места на диске, но меньше в памяти. И наоборот - за счет того, что в ветвях дерева CDX используется компрессия, соотв. требуется чуть больше RAM и тактов процессора для декомпрессии сжатых данных.

MIKHAIL: Петр пишет: См. extras\dbu нету там DBU53.RTP D:\HB\EXTRAS\DBU>patch -lNi dbu53.dif ──────────────────────────────────────────────────────────────────────── PATCH Version 2.03 - .RTPatch(R) - Software Update System DOS and Windows Edition (C) Copyright Pocket Soft, Inc., 1991-1994. All Rights Reserved. ──────────────────────────────────────────────────────────────────────── Could not find the Patch File 'DBU53.RTP' Enter a New Name & Directory for the Patch File or Press Enter to Quit ===> Andrey пишет: Скорее всего под NTX не заработает - это чисто MSFOX примочка, для Клипера и Харбора нужно переходить на CDX-драйвер ! работает DBFNX под Харбором, не работает под Clipper и под ADSNTX

Петр: MIKHAIL пишет: нету там DBU53.RTP Вот и я говорю, что нет никакого DBU53.RTP для [x]Harbour (так по моему раздел называется).


MIKHAIL: Петр пишет: Вот и я говорю, что нет никакого DBU53.RTP для [x]Harbour (так по моему раздел называется). Так как пропатчить файлы? Без патча у меня не собирается

Петр: Там описано (readme.txt) Gnu Path (binaries) найдете здесь Затем выполните команду patch -lNi dbu53.dif и дальше hbmk2 dbu.hbp Все.

MIKHAIL: Петр пишет: Затем выполните команду patch -lNi dbu53.dif и дальше hbmk2 dbu.hbp То ли я не понимаю вас, то ли вы не внимательно прочитали мой пост от 11.05 Я делаю по инструкции: D:\HB\EXTRAS\DBU>patch -lNi dbu53.dif ──────────────────────────────────────────────────────────────────────── PATCH Version 2.03 - .RTPatch(R) - Software Update System DOS and Windows Edition (C) Copyright Pocket Soft, Inc., 1991-1994. All Rights Reserved. ──────────────────────────────────────────────────────────────────────── Could not find the Patch File 'DBU53.RTP' Enter a New Name & Directory for the Patch File or Press Enter to Quit ===>

Петр: MIKHAIL пишет: Я делаю по инструкции: D:\HB\EXTRAS\DBU>patch -lNi dbu53.dif ──────────────────────────────────────────────────────────────────────── PATCH Version 2.03 - .RTPatch(R) - Software Update System DOS and Windows Edition (C) Copyright Pocket Soft, Inc., 1991-1994. All Rights Reserved. ──────────────────────────────────────────────────────────────────────── Could not find the Patch File 'DBU53.RTP' Enter a New Name & Directory for the Patch File or Press Enter to Quit ===> Согласно инструкции 3 шаг выглядит так 3.) Apply supplied patch to the source using GNU Patch GNU Patch, а не PATCH от (C) Copyright Pocket Soft

MIKHAIL: Как можно установить ограничение времени на простой в командах ожидания ввода данных такие как prompt, achoice, get... ? Многие пользователи не завершают работу с программой, что приводит к затруднениям при обновлении, а с другой стороны, бывают технические работы по проверке данных, которые могут длительное время выполняться и должны быть завершены.

Петр: MIKHAIL пишет: Как можно установить ограничение времени на простой в командах ожидания ввода данных такие как prompt, achoice, get... ? В Harbour, как и в Clipper, стандартные обработчики не предусматривают ограничения времени. Многие пользователи не завершают работу с программой, что приводит к затруднениям при обновлении Проводите обновление при запуске программы или выходе из нее; реализуйте модуль обновления в виде отдельного приложения, реализуйте модуль обновления в виде отдельного потока - это все организационные мероприятия, выберите желаемую модель (f.e. обновление Opera, работа ccleaner с кэшем при запущенном браузере и т.п.), внесите изменения в ТЗ, утвердите у руководства/заказчика, реализуйте, внесите изменения в инструкцию пользователя и все будет Ок. MIKHAIL пишет: а с другой стороны, бывают технические работы по проверке данных, которые могут длительное время выполняться и должны быть завершены. само собой и такое бывает. Мой любимый вопрос - и что? P.S. и что? уточняю, каким образом реализация подобной функциональности зависит от того Clipper или Harbour используется?

Sergy: MIKHAIL пишет: Как можно установить ограничение времени на простой в командах ожидания ввода данных такие как prompt, achoice, get... ? Многие пользователи не завершают работу с программой, что приводит к затруднениям при обновлении, а с другой стороны, бывают технические работы по проверке данных, которые могут длительное время выполняться и должны быть завершены. Есть несколько вариантов: 1) Функция KeySec([<nKeyValue>,<nTime>, [<nCounter>], [<lMode>]]) → lActivated) - засовывает в буфер клавиатуры нужный код по истечении определенного времени. Например, K_ESC. Останется в программе организовать грамотную обработку, чтобы не задавала лишних вопросов юзеру. 2) hb_idleAdd( <bAction> ) → nHandle. Можно добавить любой блок кода, который будет вызван в ближайших циклах IdleState (например, ожидание ввода с клавиатуры). 3) ft_OnTick( bCode, nInterval ) - выполняет блок кода каждый указанный интервал времени. 4) Можно использовать многопоточность. Для этого нужно собрать проограмму с ключом -mt и предусмотреть соотв. обработку.

MIKHAIL: При объявлении переменной GLOBAL компилятор выдает ошибку синтаксиса. Нужно добавить какие то ключи или как объявлять ее ?

PSP: MIKHAIL пишет: При объявлении переменной GLOBAL компилятор выдает ошибку синтаксиса. Нужно добавить какие то ключи или как объявлять ее ? PUBLIC

MIKHAIL: PSP пишет: PUBLIC т.е. не реализовано GLOBAL ?

PSP: А где было реализовано GLOBAL? В Клиппере не было.

Pasha: Есть в xHarbour. Это аналог static, только переменные видно во всех модулях. В harbour этого расширения нет.

PSP: Pasha пишет: Есть в xHarbour. Это аналог static, только переменные видно во всех модулях. В harbour этого расширения нет. Понятно.

alexmar: Перевожу на консольный Harbour большое приложение из Clipper 5.2. В связи с этим пока 2 вопроса 1 Посоветуйте отладчик. Какой лучше? 2 В приложении на Clipper было реализовано что-то типа MsgBox (с различным количеством кнопок). Реализовано было через создание объектов для отображения кнопок с использованием малодокументированных функций Clipper. При запуске скомпилированного приложения выбивает ошибку. Подозреваю, что исполнение пошло по той ветке, которая и под клиппером не использовалась и не была отлажена. Не сильно хочется копаться в старом коде. Есть ли готовое решение аля MsgMox() для консольного варианта Harbour?

alexmar: и чтобы 2 раза не вставать. Как обстоит дело с IDE для харбор? В версии 3 он был, а в версии 3.2 я его не нашел. Вопрос: 1 IDE для 3.2 существует или можно настроить и использовать тот, который шел с 3.0 2 И в качестве оценки перспектив дальнейшего развития. Насколько трудоемок процесс перевода консольной версии приложения под GUI. Насколько я понял, есть несколько вариантов GUI. Какой вариант перспективнее с точки зрения поддержки со стороны разработчиков.

LYSK: alexmar пишет: 2 В приложении на Clipper было реализовано что-то типа MsgBox ALERT ALERT( <xMessage>, [<aOptions>], [<cColorPairs>], [<nDelay>] ) --> nChoice or NIL Было в Клиппере, есть и в Харборе.

alexmar: Спасибо, совсем вылетело из головы. Очень редко пользовался.



полная версия страницы