On-line: гостей 2. Всего: 2 [подробнее..]
АвторСообщение



Пост N: 3
Зарегистрирован: 31.03.07
ссылка на сообщение  Отправлено: 12.07.07 10:10. Заголовок: Кто какой редактор использует ?


Люди, подскажите какой текстовый редактор лучше использовать для программирования на Harbour или Clipper.
А то уже кучу перепробовал, ни один толком Clipper - язык не поддерживает.
Настроить конечно можно, но жалко времени.

Спасибо: 0 
Профиль
Ответов - 52 , стр: 1 2 3 All [только новые]


Администратор




Пост N: 539
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 16.07.07 10:37. Заголовок: Re:


Надо или убрать флаг компиляции -w
или (что лучше) описать private переменные командой memvar


Спасибо: 0 
Профиль



Пост N: 37
Зарегистрирован: 15.11.05
ссылка на сообщение  Отправлено: 16.07.07 14:01. Заголовок: Re:


Использую МЕ 7.0

КОНВЕРТОРЫ ГИПЕРТЕКСТОВ

CLIPPER-MACRO


А кто видел CLIPPER-MACRO 3.0?

Еще предлагали использовать notepad-plus
http://notepad-plus.sourceforge.net/ru/site.htm
Хотя нет там Клипера и KOI8 не поддерживается.




===================================
Менеджер Гипертекстов 2.03
Руководство пользователя

НАЗНАЧЕНИЕ МЕНЕДЖЕРА ГИПЕРТЕКСТОВ
---------------------------------

Менеджер Гипертекстов ориентирован прежде всего на профессиональ-
ных программистов, использующих в своей работе несколько языков и выб-
равших в качестве среды разработки редактор MULTI-EDIT American
Cybernetics Inc.

Менеджер Гипертекстов позволяет конвертировать и просматривать в
MULTI-EDIT файлы помощи для различных систем программирования. ВАМ БОЛЬ-
ШЕ НЕ НУЖНО загружать в память программы просмотра файлов помощи.

ТРЕБОВАНИЯ
----------

Менеджер Гипертекстов рассчитан на совместную работу с MULTI-EDIT
версий 6.0 и 7.0. Для нормального функционирования Менеджера необходи-
ма полная установка редактора, включающая в себя:

- исходные тексты (подкаталог SRC);
- утилиты HELPCX.EXE и HELPDX.EXE, CMAC.EXE.

КОНВЕРТОРЫ ГИПЕРТЕКСТОВ
-----------------------

Назначение конверторов - это преобразование файла к формату ACI
Hypertext, который используется в MULTI-EDIT. На данный момент Менед-
жер Гипертекстов снабжается следующими конверторами:

NG2ME.COM - Конвертор гипертекстов из формата Norton Guides.
BH2ME.COM - Конвертор файлов помощи из формата Borland C/C++, Turbo
Assembler.
IHP2ME.EXE - Конвертор файлов помощи из формата WatCom C/C++.
LST2ME.EXE - Конвертор списка прерываний IBM PC Ральфа Брауна.

Командная строка для запуска конверторов:

convert source [target], где

convert - имя конвертора,
source - имя исходного (конвертируемого файла),
target - имя выходного (ACI Hypertext файла).

Для конвертора списка прерываний IBM PC (*):

lst2me source_path [target], где

source_path - имя каталога, где расположен список прерываний,
target - имя выходного (ACI Hypertext файла).

Расширение выходного файла всегда заменяется на HLP. Если имя выход-
ного файла опускается, то он будет иметь имя, совпадающее с именем вход-
ного и расширение HLP.

Коды возврата конверторов (errorlevel):

0 - нормальное завершение.
1 - ошибка при указании аргументов или ошибка конвертации.

Пример: ng2me mouse.ng c:\me\hyper\mouse.hlp

Поиск и конвертацию гипертекстов можно произвести на стадии инстал-
ляции Менеджера Гипертекстов, включив соответствующие переключатели в
диалоге настройки инсталляции.

* Некоторые пояснения по конвертору списка прерываний IBM PC Ральфа
Брауна: в отличии от других конверторов, этот конвертор использует нес-
колько исходных файлов с различной информацией, объединяя их в один ги-
пертекст:

INTERRUP.LST - Собственно список прерываний IBM PC
CMOS.LST - Описание CMOS
FARCALL.LST - Точки входа
MEMORY.LST - Адреса памяти
PORTS.LST - Порты ввода/вывода
MSR.LST - Регистры, зависимые от модели
GLOSSARY.LST - Словарь используемых сокращений

Если какой-либо из перечисленных файлов отсутствует, он просто не
включается в результирующий гипертекст.

РАЗМЕЩЕНИЕ ГИПЕРТЕКСТОВ
-----------------------

При инсталляции Менеджера Гипертекстов в каталоге, где расположен
MULTI-EDIT, создается подкаталог HYPER, в который помещаются все найден-
ные и отконвертированные гипертексты. В дальнейшем, если Вы будете кон-
вертировать гипертексты вручную, желательно, чтобы Вы помещали выход-
ные файлы в этот каталог.

Вы можете также создать один или несколько подкаталогов любого уров-
ня вложенности в каталоге MULTI-EDIT и размещать гипертексты в них.
Это не помешает нормальному функционированию Менеджера, т.к. при обнов-
лении списка гипертекстов он производит поиск всех файлов с расширениями
HLZ и HLP, расположенных в каталоге MULTI-EDIT или его подкаталогах.

Проследите, чтобы в сканируемых подкаталогах не было файлов с расши-
рениями HLZ и HLP, не являющимися гипертекстами MULTI-EDIT. Файлы с рас-
ширением HLZ, скорее всего, являются явной принадлежностью MULTI-EDIT.
Но множество систем имеет файлы с расширением HLP, которые не совместимы
с форматом, используемым MULTI-EDIT. Попытка загрузить в MULTI-EDIT чу-
жой или испорченный файл гипертекста практически всегда приводит к зави-
санию машины.

ОБНОВЛЕНИЕ СПИСКА ГИПЕРТЕКСТОВ
------------------------------

Обновление списка гипертекстов всегда доступно по нажатию на клавишу
F10 из меню списка гипертекстов. Используйте сканирование в том слу-
чае, если Вы добавили в каталоги новые гипертексты.

При сканировании пропускаются файлы, представляющие собой стандарт-
ные файлы помощи MULTI-EDIT. Список этих файлов находится в
HFM_UTIL.S. Можно добавлять файлы к этому списку или удалять их.

HELPCX.EXE - индексирование и сжатие гипертекстов
-------------------------------------------------

В пакет стандартной поставки MULTI-EDIT входит утилита сжатия и ин-
дексации гипертекстов HELPCX.EXE. После обработки этой утилитой файлов
HLP Вы получите проиндексированный и сжатый файл с расширением HLZ. Пос-
ле этого Вы можете удалить оригинальный HLP файл.

Внимание: HELPCX, входящий в состав пакетов MULTI-EDIT 6.0 и 7.0 со-
держит ошибку: файл, содержащий количество страниц более, чем 2426, нап-
ример TCHELP фирмы Borland, будет откомпилирован неверно, и, в дальней-
шем, приведет к зависанию редактора. В составе Менеджера Гипертекстов
входит утилита, исправляющая данную ошибку: MEFIXCX.COM. При инсталляции
Менеджера производится попытка исправить HELPCX. Если инсталляция прошла
без сообщений об ошибке, значит Ваш HELPCX исправлен и Вам не о чем бес-
покоится.

Для того чтобы исправить HELPCX самостоятельно, cкопируйте файл
MEFIXCX.COM в тот же каталог, где находится HELPCX.EXE и запустите
его. Если Вы ранее упаковывали HELPCX чем нибудь вроде PKLITE, LZ или
DIET, обязательно распакуйте прежде, чем запускать MEFIXCX. Если MEFIXCX
выдаст сообщение: Bad or corrupt file, то возможно Вы столкнулись с не-
известной реализацией HELPCX. Свяжитесь по этому поводу с разработчи-
ком Менеджера Гипертекстов.

MEFIXCX на данный момент умеет исправлять три релиза HELPCX:

Версия 3.0 релиз от 24/09/92 в составе ME6.0
Версия 3.0 релиз от 12/08/93 в составе ME7.0
Версия 3.0 релиз от 22/10/93 в составе ME7.0e - ME7.0i

Кроме того, упаковывая файл, HELPCX использует блоки размером от 1
до 15 килобайт. По умолчанию используются 5 килобайтные блоки. Число
блоков ограничено 1000, т.о. размер исходного файла не может превышать 5
мегабайт. Такие файлы встречаются крайне редко, но для подстраховки ре-
комендуется использовать ключ /15, задающий блок в 15 килобайт, т.к.
HELPCX не предупредит Вас о превышении количества блоков, а просто соз-
даст файл с повреждениями различной степени тяжести, который в дальней-
шем может привести к нарушениям в работе ME.

HELPDX.EXE - распаковщик сжатых гипертекстов
--------------------------------------------

В пакет стандартной поставки MULTI-EDIT входит также утилита распа-
ковки сжатых гипертекстов HELPDX.EXE. После обработки этой утилитой фай-
лов HLZ Вы получите оригинальный файл с расширением HLP.

Внимание: HELPDX, входящий в состав пакетов MULTI-EDIT 6.0 и 7.0 со-
держит ошибку: файл, упакованный с размером блока более 6000 байт, будет
декомпилирован неверно. В составе Менеджера Гипертекстов входит утилита,
исправляющая данную ошибку: MEFIXDX.COM. При инсталляции Менеджера про-
изводится попытка исправить HELPDX. Если инсталляция прошла без сообще-
ний об ошибке, значит Ваш HELPDX исправлен и Вам не о чем беспокоится.

Для того чтобы исправить HELPDX самостоятельно, cкопируйте файл
MEFIXDX.COM в тот же каталог, где находится HELPDX.EXE и запустите
его. Если Вы ранее упаковывали HELPDX чем нибудь вроде PKLITE, LZ или
DIET, обязательно распакуйте прежде, чем запускать MEFIXDX. Если MEFIXDX
выдаст сообщение: Bad or corrupt file, то возможно Вы столкнулись с не-
известной реализацией HELPDX. Свяжитесь по этому поводу с разработчи-
ком Менеджера Гипертекстов.

MEFIXDX на данный момент умеет исправлять три релиза HELPDX:

Версия 3.0 релиз от 24/09/92 в составе ME6.0
Версия 3.0 релиз от 12/08/93 в составе ME7.0
Версия 3.0 релиз от 22/10/93 в составе ME7.0e - ME7.0i

КОНТЕКСТНАЯ ПОМОЩЬ
------------------

Для того чтобы использовать контекстный поиск, Вам необходимо указа-
ть список справочников в поле Default Help File в меню описания расшире-
ний файлов (Other -> Installation and Setup -> Filename
Extensions...). Файлы должны разделяться точкой с запятой, расширение
файла может не указываться (подразумевается HLP или HLZ). Пример назна-
чения файлов для расширения PRG и CH:

--------------------------EXTENSION SETUP-------------------------¬
¦Extension(s): PRG;CH Tab spacing: 2 ¦
¦Edit mode: Indent style: Right margin: 75 ¦
¦ (¦) Text ( ) Off [ ] Word wrap ¦
¦ ( ) Document (¦) Auto [ ] Auto-template expansion ¦
¦ ( ) Smart Colors: [ ] ¦
¦Tab settings mode: ¦
¦ (¦) Using tab and margin settings - ignoring format line ¦
¦ ( ) Using format line - ignoring tab and margin settings ¦
¦ [Edit format line] ¦
¦ File type: ¦
¦Language type: [DBASE ] (¦) MSDOS text ¦
¦Post-load macro: •••••••••••••••••••••••••• ( ) UNIX text ¦
¦Default directory: •••••••••••••••••••••••••• ( ) Binary ¦
¦Default Help File: design;despro;c5g01r•••••• Bin rec length ¦
¦Compiler-Program setup- 0 ¦
¦ ---------------------- ¦
¦ ¦
¦ OK<ENTER>- Cancel<ESC>- Help<F1>- ¦
¦ --------- ----------- -------- ¦
L=================================================================-

Для нормального функционирования контекстного поиска, необходимо
указание путей для поиска гипертекстов. При нормальной инсталляции Ме-
неджера, производится автоматическое изменение и перекомпиляция файла
STARTUP.S, где производится создание глобальной переменной !HELP_PATH!.

Если при инсталляции не удалось изменить файл в следствии какой-либо
ошибки или позднее Вы создали собственный каталог для размещения гипер-
текстов, Вам необходимо будет добавить в STARTUP.S новые пути для поис-
ка. Для этого найдите в файле STARTUP.S строку, содержащую фразу:
Set_Global_Str('!HELP_PATH!'). Если это строка закомментирована, удалите
символы комментария. Добавьте в строку новые пути поиска, например для
\ME\GUIDE:

Set_Global_Str('!HELP_PATH!','<ME_PATH>HELP\;<ME_PATH>;<ME_PATH>GUIDE\');

ПЕРЕИМЕНОВАНИЕ ГИПЕРТЕКСТОВ
---------------------------

К сожалению, файлы помощи Borland C/C++ и WatCom C/C++ не содержат в
своей структуре названия текста, поэтому, скорее всего, после конверта-
ции Вы увидите в окне со списком гипертекстов несколько файлов с одина-
ковыми именами, к примеру "TURBO C HELP FILE" или "Table of Contents".
Вы можете переименовать эти гипертексты. Для этого сначала просмотрите
файл, затем выберите в списке кнопку Edit и замените имя в поле Name.
Нажав Ok, Вы увидите требование подтверждения изменения имени: Change
Hypertext name in file?. Выберите Yes и гипертекст будет переименован.

ТЕХНИЧЕСКАЯ ПОДДЕРЖКА
---------------------

Автор примет любые предложения и замечания по данному программному
продукту. Вы можете отправлять их с помощью E-mail по адресу:

glassman_ru@geocities.com

В поле Subject письма обязательно сделайте пометку "HFM:". Если
письмо вызвано какими-либо техническими проблемами, постарайтесь предос-
тавить максимально полную информацию о среде, породившей проблему. (Вер-
сия и особенности ME, конфигурацию и тип машины, видеоадаптера, список и
порядок загруженных TSR программ и т.п.). Также можете заглянуть на мою
домашнюю страницу в интернет:

http://www.geocities.com/SiliconValley/Vista/7567/




=========================================
Вниманию всех, программирующих на CLIPPER!

Тем, кто уже использует CLIPPER-MACRO в работе
и трижды тем, кто впервые об это слышит!

---¬ --¬
-----¬--¬ L=¬¦ L¬¦
¦ г==-¦ ¦ --¬-----¬-----¬-----¬------¬ ---¦ ¦¦
¦ ¦ ¦ ¦ ¦ ¦¦ г¬ ¦¦ г¬ ¦¦ -==-¦ г===- ¦г=- ¦¦
¦ ¦ ¦ ¦ ¦ ¦¦ L- ¦¦ L- ¦¦ L-¬ ¦ ¦ ¦L-¬ -¬¦¦
¦ L--¬¦ L--¬¦ ¦¦ г==-¦ г==-¦ г=- ¦ ¦ L==- L-L-
L====-L====-L=-L=- L=- ¦ L--¬L=-
--------¬ L====-
¦ г¬ г¬ ¦-----¬-----¬------¬-=====¬
¦ ¦¦ ¦¦ ¦¦ г¬ ¦¦ г==-¦ г===-¦ г=¬ ¦
¦ ¦¦ ¦¦ ¦¦ L- ¦¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
¦ ¦¦ ¦¦ ¦¦ г¬ ¦¦ L--¬¦ ¦ ¦ L-- ¦
L=-L=-L=-L=-L=-L====-L=- L=====-
г==================================================================¬
¦ С и с т е м а п о д д е р ж к и я з ы к а C L I P P E R ¦
L==================================================================-
г============================¬
¦ Георгий ЖЕРДЕВ ¦
¦ 672005 Чита, Рахова, 98-49 ¦
L============================-


ЭТО - новая версия системы поддержки программирования на CLIPPER в
среде Multi-Edit 6.x. В нескольких словах, еще Вы еще не знаете о
таком, система призвана сделать жизнь малиной всем, кто связал ее с
CLIPPER и Multi-Edit. Насколько это удается - проверьте.


<!!!> NOTE для пользователей CLIPPER-MACRO 1.0 и 2.0:

Отличия и вопросы переинсталляции - на второй странице данного
файла.


<!!!> Предпосылки...

Причины, вызвавшие появление CLIPPER-MACRO, очевидно, знакомы многим
(если лично Вам они не знакомы, я Вам завидую!). В моем характере две
характерные черты: крайняя рассеянность и расхождение в скорости
процессов мыслительных и двигательных. Пока пальцы выстукивают на
клавиатуре имя очередной функции, мысли успевают убежать далеко
вперед. Пальцы безнадежно отстают, в функциях теряются буквы и
скобки, в скобках пропадают аргументы, "DO CASE" завершается
"ENDIF",- и в результате любой акт компиляции становится испытанием
личного мужества и терпения.

Когда мне все это надоело, я и взялся писать макросы.


<!!!> Не топчите попусту клавиатуру...

Вам больше не нужно выписывать мудреные имена функций, команд, методов
и т.п.: введите в текст 1-3 буквенную аббревиатуру ("tb" или "sam"),
нажмите функциональную клавишу - и в тексте появится что-нибудь типа
TBrowseDB() или, того лучше, CSetAtMUPA().

Отступление: С большим трудом сейчас набирал эти два имени.
Честно говоря, после двух лет работы с CLIPPER-MACRO
я уже разучился писать все эти импортные имена.
Иногда приходится вместо Multi-Edit использовать
какой-либо другой редактор (тот же Norton Editor),
и, следовательно, обходиться без CLIPPER-MACRO,-
это мучительно!

В макросах системы содержатся имена практически всех стандарных
команд, функций, а также переменных и методов классов CLIPPER 5.x
(поскольку никакой принципиальной разницы в синтаксисе от версии к
версии CLIIPER не происходило, Вы можете использовать эту систему и с
более ранними версиями языка). Мало того, Вы можете создать сколько
угодно дополнительных словарей (скажем по словарю на каждую
дополнительную используемую Вами библиотеку плюс словарь функций
проекта, над которым Вы работаете), назначить их хоть всем клавишам
Вашей клавиатуры,- и в любой момент иметь "под рукой" любую их нужных
Вам функций. Единственная задача - удержать в голове все существующие
аббревиатуры. Но, как я проверил на себе, это совершенно не сложно,
хотя и потребует определенного времени. Чем больше Вы программируете,-
тем, естественно, меньше времени.


<!!!> Кто-то теряет, а кто-то находит...

Наверное, и Вам это знакомо: начнешь писать какой-нибудь цикл типа
"DO WHILE" экрана на два,- и в пылу вдохновения забудешь завершить
все финальным "ENDDO". Компилятор ругается: "Unclosed control
structures", вежливо подсказывая номер последней строки файла, - а
где она на самом деле, эта "unclosed", и где же ее следует закрыть?!
Иногда поиски превращаются в захватывающий детектив.

Я Вам особенно сочуствую, если Вы любитель встроенных присваиваний и
функции If(). Не приведи, господи, потерять скобку в строке типа:

cAnswer := If( (nPos := At('рай',(cStr := 'Я крайне рад!'))) > 0,;
Substr(cStr, nPos, 3), If((nPos := At('ад',cStr)) > 0,;
Substr(cStr, nPos, 2), ''))

Честно говоря, я и сам порой грешу подобными строкомонстрами.
Понимаю, что это нехорошо,- но Клиппер слишком многословен и
медлителен, что и принуждает иногда пожертвовать красотой во имя
производительности. В подобной же ситуации может оказаться любой из
нас, сочиняя какой-нибудь особо сложный кодовый блок. И тогда поиски
утерянной скобки могут занять не один час...

Но... Теперь я Чебурашка,- то-есть пользуюсь CLIPPER-MACRO. Для того,
чтобы привести в примере абзацем выше фразу, как ругается компилятор,
мне пришлось заглянуть в документацию: сам я уже давно не получал
таких сообщений и забыл, как они выглядят! Стоит мне ввести в текст
аббревиатуру "dw", как она тут же заменяется на строку "DO WHILE"
плюс - строкой ниже - "ENDDO". Можно спокойно поместить между двумя
этими строчками хоть весь файл,- конец цикла у нас уже в тексте, и
компилятор не будет на нас в обиде. Стоит мне нажать клавишу
"(" [открывающая скобка], как тут же, следом за ней выскочит
закрывающая ")", а курсор окажется между скобками! Это относится к
любым видам скобок и любым кавычкам. Наконец, если я ввожу в текст
аббревиатуру любой из CLIPPER-функций ("ss" или "ca"), функция
выводится в текст вместе с полагающимися скобками, а позиция курсора
будет зависеть от типа функции: имеет она аргументы или нет
("SaveScreen(-)" или "DBCloseArea()-").

В таких условиях случайно потерять скобку - это уже фатальное
невезение! Но уж если Вы все-равно сомневаетесь (ну, бывают такие
неуверенные в себе люди!), в системе есть целый набор дополнительных
макросов: проверки скобок в строке, проверки завершенности всех
циклов, поиска начала или конца цикла и т.п.


<!!!> И еще, еще, еще...

Полный перечень всех макросов смотрите в CLIPPER.HLP. Там есть и еще
кое-что полезное.
Там же читайте и подробную (в меру моих сил) инструкцию по
инсталляции системы.


<!!!> О делах материальных...

Вы можете пользоваться CLIPPER-MACRO совершенно свободно и как Вам
заблагорассудится. Можете передавать друзьям и знакомым. Можете,
наконец, и вовсе ею не пользоваться. Единственная, скромная и очень
убедительная просьба: если Вы все-таки сохраните систему у себя, не
выбрасывайте макрос cmabout.mac,- поместите его со всеми остальными
макросами Multi-Edit. Он используется в Clipper.hlp и там мой адрес.
Глядишь, и черкнете пару слов. С пожеланиями, и вообще:
познакомимся,- может, найдем общие интересы.

Если же Вы пришлете перевод на (скажем округленно) 1000 рублей (что
за деньги!), будем считать это регистрационным взносом, поводом
для меня своевременно уведомлять Вас обо всех усовершенствованиях
в макросах и оплатой права на бесплатное (и в первую очередь)
получение следующей версии системы. CLIPPER-MACRO начиналась еще
с Multi-Edit 4.0. Появление новых версий Multi-Edit - это повод
для появления новых версий CLIPPER-MACRO. Плюс к тому, в двери
стучится CLIPPER 5.2,- и это тоже повод. Ну, и наконец,
CLIPPER-MACRO развивается и сама по себе. Об этом - следующий
раздел.


<!!!> О СЛЕДУЮЩЕЙ ВЕРСИИ

CLIPPER-MACRO 3.0 уже на подходе! В полном согласии со всеобщей
закономерностью, она будет не только более совершенной, более
многофункциональной (это гарантируется!), но и гораздо более
объемной. Уже сейчас, в не совсем дописанном виде, общий объем файлов
новой версии - около мегабайта. Понятно, что в СофтПанораму такой
пакет уже не возьмут (огромная благодарность редакции за публикацию
данной версии!). Поэтому - читайте предыдущий раздел...

Что будет в CLIPPER-MACRO 3.0:

- Главное: полностью стирается грань между встроенными словарями
макроподстановок (теми, что сейчас находятся в файле clipper.mac) и
пользовательскими словарями (теми, что сейчас существуют в формате
Multi-Edit-баз данных / файлы *.uf). Сейчас встроенные словари
работают гораздо быстрее, чем пользовательские (что естественно,
так как они являются макросами), зато пользовательские словари
гораздо проще пополнять и редактировать (что естественно, так как
они являются базами данных).
Словарь новой версии будет одновременно и базой данных, доступной
для модификаций, и макросом, автоматически создаваемым и
компилируемым на основе базы данных. Удобство + скорость!
Пользовательские словари в их нынешнем понимании тоже остаются - в
целях совместимости с предыдущими версиями системы. Однако при
желании их можно будет автоматически преобразовать в словари нового
типа. Наконец, в этот же новый формат переведены и все словари
стандартных CLIPPER-команд и функций. То-есть, Вы сможете без
проблем редактировать и их, если Вас там что-то не устраивает
(скажем, Вам захочется изменить аббревиатуру вызова
макроподстановки).

- При желании Вы теперь можете включить режим запроса параметров
выводимой функции. То-есть, прежде чем имя функции будет введено в
текст, перед Вами появится окошко с перечислением всех требуемых в
функции параметров и запросом каждого из них. После этого функция
будет выведена в текст вместе со всеми указанными Вами параметрами.
Очень удобный способ не забыть порядок и количество параметров в
много-параметровых функциях (AChoice() или MemoEdit(), например).
В этом окошке будут также реализованы интерфейс с Norton Guide для
получения быстрой справки по функции (если Вы пользуетесь в работе
*.ng-файлами) и возможности просмотра соответствующих
include-файлов, содержащих макроопределения для данной функции. Вся
эта система запроса параметров легко создается и модифицируется,-
так что Вы сможете снабдить ею все словари Ваших макроподстановок.

- К шести существующим типам макроподстановок (см. CLIPPER.HLP - типы
вывода мнемонических имен) прибавится седьмой - выполнение
заданного Вами макроса по выводу макроподстановки. Это еще более
расширит возможности вывода.

- Еще более расширяется контроль за синтаксической правильностью
текста: при вводе закрывающей скобки сразу проверяется наличие
парной открывающей; при вводе "EXIT" отслеживается, находитесь ли
Вы внутри цикла "DO WHILE" или "FOR-NEXT".

- Расширены возможности документирования файлов.

- Еще целый ряд макросов, облегчающих жизнь. Например, определение
"на лету" макроподстановок: Вы можете назначить на время сеанса
редактирования имя переменной какой-либо клавише,- и далее вводить
это имя в текст одним нажатием клавиши.

- Существенно расширена HELP-система. В любой момент можно получить
быструю справку по всем назначениям клавиш, всем актуальным
макроподстановкам, добавлен макрос загрузки внешних файлов
(include, prg-examples и т.п.) в HELP-окно.

- Все загружаемые системой макросы действуют только в окне загрузки!
Если CLIPPER-MACRO активируется при загрузке *.prg-файла, ее
макросы будут выполняться только в окне, где редактируется
*.prg-файл. Во всех остальных окнах будут работать макросы
стандартного KEYMAP.

- Полностью автоматизированная инсталляция / переустановка с
предыдущих версий.

- Гибкая настройка по типу "Installation and Setup" самого
Multi-Edit: в любой момент Вы можете переопределить любые параметры
системы с модификацией загрузочного файла.

Э т о т о л ь к о в к р а т ц е !

Если желаете подробностей, если есть какие-то вопросы, проблемы,
пожелания, упреки и т.д. и т.п. - п и ш и т е !
Я буду очень рад Вашим письмам!

Георгий ЖЕРДЕВ

672005. Россия, г.Чита-5,
ул. Рахова, 98, кв. 49
Жердеву Георгию
07-02-93 00:11am Владимировичу

*****************************************************************************
Для пользователей CLIPPER-MACRO 1.0 и 2.0
*****************************************************************************

------------------------------------¬
¦Что новенького в CLIPPER-MACRO 2.1?¦
L------------------------------------

Не так, чтобы много, но п р и н ц и п и а л ь н о !

Р а н ь ш е : помимо встроенных словарей стандартных CLIPPER-команд,
CLIPPER-функций и CLIPPER-методов/переменных классов, Вы могли
использовать только один дополнительный (пользовательский словарь) в
сеансе работы. Для переназначения словаря требовалось вызвать макрос
CLIP1^CLIP_USERNEW и заменить один словарь на другой.

Т е п е р ь : Вы можете не только иметь сколько угодно
дополнительных словарей функций, но и сколько угодно их одновременно
использовать, назначая разные словари разным клавишам (будь у Вас не
101-, а 1001-к ...

Спасибо: 0 
Профиль



Пост N: 37
Зарегистрирован: 15.11.05
ссылка на сообщение  Отправлено: 16.07.07 14:01. Заголовок: Re:


... нопочная клавиатура, Вы бы могли использовать 1001
словарь одновременно!). Это не роскошь, а необходимость: клипперисты
обычно используют по несколько допонительных библиотек: Clipper
Tools, Planet, Flipper и т.д. Составьте словари наиболее часто
используемых функций, по одному на бибилиотеку,- и Вам не придется
выписывать вручную что-то типа csetatmupa().

К р о м е т о г о :

а) Изменены макросы ввода "CASE", "OTHERWISE", "ELSE", "ELSEIF",
"RECOVER" и "RECOVER USING". Теперь эти слова не просто вводятся с
нужным отступом, но при этом проверяется, туда ли они попали (т.е., Вы
будете предупреждены, например, вводя "CASE" при полном отсутствие "DO
CASE" выше по тексту). Побочным следствием этого нововведения стало
более корректное выполнение отступа, вне зависимости от величины
отступа предыдущей строки:

Раньше: If lCondition
Eval( {|par1,par2| ;
If(SomeFunc(par1,par2), DoFunc1(), ;
DoFunc2()) })
!! <ElseIf> было бы здесь --> ElseIf -
EndIf

Теперь: If lCondition
Eval( {|par1,par2| ;
If(SomeFunc(par1,par2), DoFunc1(), ;
DoFunc2()) })
ElseIf - <-- <ElseIf> будет здесь !!
EndIf


б) В связи с наличием макросов ввода парных скобок-кавычек (), {}, [],
"" и '' показались необходимыми и обратные макросы. Если Вы подвязали
макрос CLIP^TWOBRANCH, как и рекомендовалось, к клавише "(" (т.е.
<Shft9>), Вы лишились возможности вводить скобку "(" индивидуально,
без ее правой напарницы. Что, хоть и изредка, но бывает необходимо. Т
е п е р ь эта возможность Вам возвращена. Макросу инициализации
системы "CLIPPER^ON" передайте параметр: "/SC=1". При этом будут
установлены все уже известные Вам макросы ввода парных скобок/кавычек
(т.е., больше нет необходимости назначать их клавишам вручную при
построении CLIPMAP.DB) и плюс у Вас появятся следующие возможности:

<Alt9> или <AltShft9> Ввод одиночной (
<Alt[> Ввод одиночной [
<Alt'> Ввод одиночной '
<AltShft[> Ввод одиночной {
<AltShft'> Ввод одиночной "

Обратите внимание: эти установки действуют только в окнах с
*.PRG-файлами (и с *.CH, если Вы определили CLIPPER^ON для этого
расширения)! Если Вы находитесь в ином окне эти клавиши будут
выполнять свои стандартные функции.

в) Помимо перечисленных выше добавился еще ряд макросов:

CLIP1^CLIP_NEWWORD Добавление нового определения в
словарь пользовательских функций
"на лету", используя слово под
курсором.
CLIP2^CLIP_FIND Макрос поиска начала / конца
текущей структуры, процедуры или
функции.
CLIP2^CLIP_CHMAKE Теперь макрос CLIP2^CLIP_RMAKE
выводит список доступных
*.RMK-файлов для выбора только
при первом вызове и использует
однажды выбранный файл при всех
последующих вызовах (если Вы раз
по двадцать за сеанс
компилируете файлы, это
существенно). Для смены
*.RMK-файла, используемого по
умолчанию и добавлен макрос
CLIP2^CLIP_CHMAKE.

г) Существенно изменен макрос CLIP2^CLIP_BATCOMPILE: добавлены новые
параметры. Подробности - в CLIPPER.HLP.

д) Устранены некоторые досадные мелочи, ранее присутствовавшие в
версиях 1 и 2.0. Вроде отсутствия автоотступа после "elseif" и
"recover", знака присвоения "=" вместо ":=" в "FOR = TO ... NEXT"
(чистая "косметика",- но красивее же!). Более грамотно работает макрос
вызова пользовательского словаря,- не пишет на экран первую попавшуюся
функцию, если Вы нажали <ESC> или <F10>, отказавшись от ввода
Template. Возможно, Вы этих оплошностей и не заметили или не обратили
внимания, но я, заметив, разумеется, не мог их не исправить.

В целом большинство наиболее употребимых макросов переработаны в плане
повышения скорости, расширения возможностей, отработки нестандартных
ситуаций и устранения погрешностей.

-------------------------------------------------------------------------¬
¦Что сделать, чтобы перейти из CLIPPER-MACRO 1.0/2.0 в CLIPPER-MACRO 2.1?¦
L-------------------------------------------------------------------------

1. Разместите файлы согласно указаниям файла FILES.DOC. Используя
CMAC.EXE, откомпилируйте макросы и перенесите их в тот каталог, где
у Вас расположены все макросы Multi-Edit. Если Вы использовали
CLIPPER-MACRO версии 1, где-то в каталоге Multi-Edit должен
располагаться файл USERFUNC.CLP. Удалите его,- он больше не нужен.

2. В EXTENSION SETUP меню INSTALL для файлов *.PRG в строке Post-Load
Macro у Вас указан вызов макроса инициализации системы
"CLIPPER^ON". Если Вы передавали ему в качестве параметра имя
Вашего пользовательского словаря функций ("/UL="), можете этот
параметр убрать, он больше не нужен. (Хотя можете и оставить, если
лень перекомпилиро- вать после этого INIT.MAC,- никакого вреда этот
параметр не принесет).

3. Все Ваши пользовательские словари теперь можете привязывать
непосредственно к клавишам (см. подробнее CLIPPER.HLP -
"ПОЛЬЗОВАТЕЛЬСКИЕ ФУНКЦИИ") либо в CLIPMAP.MAC (меню Multi-Edit
"Installation and Setup" / "Key mapping"), либо оперативно путем
вызова макроса CLIP1^CLIP_USERNEW. Таким образом, сколько клавиш на
Вашей клавиатуре, столько словарей одновременно Вы можете
использовать.

4. Для нормального функционирования макросов CLIP1^CLIP_USERNEW и
CLIP1^CLIP_USERWORK зарегистрируйте все Ваши пользовательские
словари. Для этого вызовите макрос CLIP1^CLIP_USERWORK - появится
окошко "Выберите словарь". Пользуясь клавишей <INS> (Create),
добавьте в окошко имена файлов Ваших словарей с указанием
каталогов, где они хранятся (см. более подробное описание работы с
макросом в CLIPPER.HLP - "ПОЛЬЗОВАТЕЛЬСКИЕ ФУНКЦИИ"). Кстати, с
этим Вы тоже можете не спешить. Если Вы будете использовать свои
словари, рано или поздно, по мере использования, Вы все равно их
все зарегистрируете.


И В С Ё ? !
ВСЁ!
В С Ё ! ! !

07-02-93 00:15am Георгий ЖЕРДЕВ


Спасибо: 0 
Профиль



Пост N: 12
Зарегистрирован: 31.03.07
ссылка на сообщение  Отправлено: 17.07.07 02:29. Заголовок: Re:


Pasha пишет:

 цитата:
Надо или убрать флаг компиляции -w



Спасибо, помогло.

Теперь только осталось нереализованные функции заменить чем-нибудь.



Спасибо: 0 
Профиль
Администратор




Пост N: 540
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 17.07.07 07:11. Заголовок: Re:


А что за функции ?

Спасибо: 0 
Профиль



Пост N: 13
Зарегистрирован: 31.03.07
ссылка на сообщение  Отправлено: 17.07.07 10:09. Заголовок: Re:


inkeytrap, tempfile - где-то на форуме уже встречал им замену
fontselect, random...

Но самое сложное найти замену функциям которые были в левых библиотеках.
Свои библиотеки я конечно переделаю.
А вот у меня еще есть библиотека, которая работает с графикой PCX - думаю придется c помощью GUI рисовать.

И библиотека Тимы Митина. Нет случайно такого на нашем форуме ?
Думаю, что скорее всего, придется его функции самому писать заново.


Спасибо: 0 
Профиль
Администратор




Пост N: 541
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 17.07.07 10:30. Заголовок: Re:


#include "common.ch"

Function Random(lMode)
DEFAULT lMode TO .T.
Return if( lMode, HB_RandomInt( 0, 65535 ), HB_RandomInt( -32768, 32767 ) )

function TempFile(cDir, cExt) // returns a temporary filename

local cFileName

static cOldName

while File( ( cFileName := StrTran( Time(), ":", "" ) ) ) .or. ;
cFileName == cOldName
end

cOldName = cFileName

return cFileName + if(Empty(cExt), '', '.' + cExt)


Спасибо: 0 
Профиль
Администратор




Пост N: 542
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 17.07.07 10:35. Заголовок: Re:


inkeytrap когда-то делал, пошукаю

консоль windows/gtwvt аналога blink-атрибута не имеет, так что прийдется обходиться без этих красивостей типа fontselect

Спасибо: 0 
Профиль



Пост N: 15
Зарегистрирован: 31.03.07
ссылка на сообщение  Отправлено: 17.07.07 11:51. Заголовок: Re:


Спасибо огромное !
Только xHB ругается на строку - DEFAULT lMode TO .T.

Оказывается есть функция HB_FTEMPCREATE(). Чем она от старой TEMPFILE() отличается ?

Спасибо: 0 
Профиль
Администратор




Пост N: 543
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 17.07.07 13:54. Заголовок: Re:


Надо указать

#include "common.ch"

FTempCreate создает вр.файл и возвращает хэндл, а TempFile формирует имя и создавать файл затем надо самому


Спасибо: 0 
Профиль



Пост N: 17
Зарегистрирован: 31.03.07
ссылка на сообщение  Отправлено: 18.07.07 06:07. Заголовок: Re:


Спасибо большое !
Все функции нашел, которые не нашел - декомпилировал.

Осталась проблемка с функцией INKEYTRAP()

Кто подскажет, случаем INKEY() теперь не выполняет обязанности INKEYTRAP() ?

Спасибо: 0 
Профиль
Администратор




Пост N: 546
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 18.07.07 07:44. Заголовок: Re:



#include "common.ch"

Static s_Proc1, s_Param
Static s_Proc2, s_Bitmap
Static bTrap := {|| Trap()}

Function TrapInput(cProc, lParam)
DEFAULT lParam TO .F.

s_Proc1 := cProc
s_Param := lParam

SetInkeyAfterBlock(if(! Empty(s_Proc1) .or. ! Empty(s_Proc2), bTrap, nil)
Return nil


Function TrapShift(cProc, nBitmap)
s_Proc2 := cProc
s_Bitmap := nBitmap

SetInkeyAfterBlock(if(! Empty(s_Proc1) .or. ! Empty(s_Proc2), bTrap, nil)
Return nil


Static function Trap
Local nKbdStat

if ! Empty(s_Proc1)
if lParam
Do( s_Proc1, ProcName(1), ProcLine(1), "" )
else
Do( s_Proc1)
endif
endif

if ! Empty(s_Proc2)
nKbdStat := KbdStat()
if ((nKbdStat & 1) .and. (s_Bitmap & 3)) .or. // Shift
((nKbdStat & 4) .and. (s_Bitmap & 8)) .or. // Control
((nKbdStat & 8) .and. (s_Bitmap & 8)) .or. // Alt

if ( iState & GTI_KBD_CTRL ) iRet += 4;
if ( iState & GTI_KBD_ALT ) iRet += 8;
if ( iState & GTI_KBD_SCROLOCK ) iRet += 0x10;
if ( iState & GTI_KBD_NUMLOCK ) iRet += 0x20;
if ( iState & GTI_KBD_CAPSLOCK ) iRet += 0x40;
if ( hb_set.HB_SET_INSERT ) iRet += 0x80;

endif
Return nil


Function InkeyTrap( nDelay )
Local nKey := INKEY( 0 )
Local bKeyBlock

IF nKey # 0 .and. ( bKeyBlock := SETKEY( nKey ) ) <> NIL
EVAL( bKeyBlock, PROCNAME(1), PROCLINE(1), "" )
ENDIF
Return nKey


Спасибо: 0 
Профиль



Пост N: 18
Зарегистрирован: 31.03.07
ссылка на сообщение  Отправлено: 18.07.07 10:25. Заголовок: Re:


Pasha пишет:

 цитата:
if ! Empty(s_Proc2)
nKbdStat := KbdStat()
if ((nKbdStat & 1) .and. (s_Bitmap & 3)) .or. // Shift
((nKbdStat & 4) .and. (s_Bitmap & 8)) .or. // Control
((nKbdStat & 8) .and. (s_Bitmap & 8)) .or. // Alt

if ( iState & GTI_KBD_CTRL ) iRet += 4;
if ( iState & GTI_KBD_ALT ) iRet += 8;
if ( iState & GTI_KBD_SCROLOCK ) iRet += 0x10;
if ( iState & GTI_KBD_NUMLOCK ) iRet += 0x20;
if ( iState & GTI_KBD_CAPSLOCK ) iRet += 0x40;
if ( hb_set.HB_SET_INSERT ) iRet += 0x80;

endif



Что, то здесь со скобками не в порядке.
Наверное из-за ремарок не срабатывает или нужно где-то поставить - ; ?
Что-то я запутался

Static переменные я где должен объявить , в главной функции ?

Спасибо: 0 
Профиль
Администратор




Пост N: 549
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 18.07.07 11:09. Заголовок: Re:


Пардон, там у меня кажется недописанный фрагмент (на С)
Еще в прошлом году не доделал. Надо довести

Спасибо: 0 
Профиль



Пост N: 26
Зарегистрирован: 31.03.07
ссылка на сообщение  Отправлено: 20.07.07 11:34. Заголовок: Re:


Все таки Inkey() в Harbour работает как Inkeytrap() и отрабатывает процедуры заданные по SET KEY

Спасибо: 0 
Профиль
постоянный участник




Пост N: 293
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.07.07 22:30. Заголовок: Re:


Народ, подскажите как подстроить компиляцию хХарбора в МЕ,
т.е. как сделать чтоб на ошибках компиляции не вызывался Microsoft Edit с листингом ошибок, а как положено,
курсор в ME на ошибке.


Спасибо: 0 
Профиль
постоянный участник


Пост N: 189
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 26.07.07 23:18. Заголовок: Re:


Uncle_ed пишет:

 цитата:
Я имею ввиду какой-нибудь бесплатный редактор для программистов под Windows с цветовым выделением функций, отслеживающий конструкции типа IF-ELSE-ENDIF, DO WHILE-ENDDO, CASE-ENDCASE, позволяющий сворачивать функции, вставлять готовые конструкции и т.п.



Посмотри PSPad. Не уверен, что 100% то, что хочется, но может много:

PSPad editor (ПСПад редактор) - бесплатный текстовый редактор для программистов. Рекомендуется к употреблению :) людям, которые:
работают одновременно с разными языками программирования;
предпочитают подсвеченный исходный код;
умеют и любят пользоваться клавиатурой;
мечтают о маленьком инструменте с простым управлением и мощными возможностями редактора кода;
подыскивают инструмент для работы с тестом plain text;
хотят пользоваться профессиональным инструментом, не платить денег, и при этом не воровать!


Что может

работа с проектами
работа над несколькими документами одновременно (MDI)
Сохранение экранной сессии. При следующем входе PSPad автоматически откроет все открытые на момент закрытия файлы
FTP клиент - вы можете редактировать файлы прямо с web-сервера
поддержка макросов записывать, сохранять и загружать макросы
поиск и замена в файлах
сравнение текстов с разноцветной подсветкой различий
шаблоны (HTML-теги, скрипты, шаблоны кода...)
инсталляция содержит шаблоны для HTML, PHP, Pascal, JScript, VBScript, MySQL, MS-Dos, Perl,...
подсветка синтаксиса применяется автоматически согласно типа файла
Определяемые пользователем стили подсветки для экзотических синтаксисов
автокоррекция
интеллектуальный встроенный HTML-предпросмотр используя IE и Mozilla
полноценный HEX редактор
вызов внешних программ, отдельно для каждой среды разработки
внешний компилятор с перехватом вывода, окном лога и парсер логов для каждой среды создают эффект "IDE"
цветная подсветка синтаксиса для печати и допечатный предпросмотр
интегрирована TiDy-библиотека для форматирования и проверки HTML-кода, конверсии в CSS, XML, XHTML
встроенная свободная версия CSS-редактора TopStyle Lite
экспорт кода с подсветкой в форматах RTF, HTML, TeX в файл или буфер обмена
вертикальное выделение, закладки, метки, нумерация строк ...
переформатирование и сжатие HTML-кода, изменения регистра слов, тэгов, букв
сортировка строк с возможностью сортировать по заданному столбцу, с параметром удаления дубликатов
Таблица ASCII-символов с приведением соответствия HTML-мнемоник
Навигатор кода для Pascal, INI, HTML, XML, PHP, и многих других в будущем
проверка правописания
встроенный веб-браузер с поддержкой APACHE
подсветка парных скобок
...


Имеется форум http://forum.pspad.com/ , в т.ч. и in Russian language.
Правда - This forum has no support from author. Use English forum if you want to communicate with author.

Что особенно приятно - есть поддержка Harbour .
Насколько мне известно - есть поддержка Harbour/xHb и в пакете uestudio (вещь платная, хорошая ).







Спасибо: 0 
Профиль



Пост N: 34
Зарегистрирован: 31.03.07
ссылка на сообщение  Отправлено: 27.07.07 08:21. Заголовок: Re:


Ну что же, звучит многообещающе - будем изучать.

Первое беглое впечатление:
- вроде наворотов много, но их смысла пока не уловил.
- поддержка Harbour вроде есть, но при попытке настроить ее из других пунктов меню или кнопочек выдает список без Harbour.
- нет возможности сворачивать конструкции и функции.
- не нашел как вставлять готовые конструкции
- не нашел как настроить свой Help по функциям

Вобщем, нужно внимательно изучать документацию и форум.

Спасибо: 0 
Профиль
постоянный участник


Пост N: 192
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 27.07.07 10:22. Заголовок: Re:


Поддержка Harbour есть точно

Настройка\Параметры подсветки\

Для одного из пунктов <not assigned> устанавливаешь Harbour ( закладка Описание - Пользовательские подсветки ). Дальше сам разберешся.

По поводу сворачивания: сворачивать конструкций и функций обещают в сл.релизах.
Все остальное - спрашивай на форуме, многое там уже и так описано, стоит только внимательно прочитать.









Спасибо: 0 
Профиль



Пост N: 35
Зарегистрирован: 31.03.07
ссылка на сообщение  Отправлено: 27.07.07 10:36. Заголовок: Re:


А вот этот редактор ни кто не расматривал ?
http://scite.ruteam.ru/

К сожалению на Harbour его придется настраивать самостоятельно или коллективно , но возможности у него обалденные.
Можно включить подсветку для Basic и получается очень похоже на Harbour. Список функций подправить, Help настроить и можно пользоваться.
Только вот не знаю как chm в hlp перевести.
К сожалению я не могу полноценно их форум использовать - есть какие-то ограничения в нашей сети.

Спасибо: 0 
Профиль
Ответов - 52 , стр: 1 2 3 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 78
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет