Clipper, определение размеров терминала

Модератор: Модераторы разделов

Serik
Сообщения: 149
ОС: SuSE Linux

Clipper, определение размеров терминала

Сообщение Serik »

Как определить размер терминала в программе на clipper (CLIP) ?
Подскажите ключевое слово для поиска в справочнике.
Спасибо сказали:
Serik
Сообщения: 149
ОС: SuSE Linux

Re: Clipper, определение размеров терминала

Сообщение Serik »

Подскажите живой русскоязычный форум по Clip/Clipper.
Спасибо сказали:
Аватара пользователя
Skull
Модератор
Сообщения: 2089
ОС: ALT Linux

Re: Clipper, определение размеров терминала

Сообщение Skull »

Serik писал(а):
13.09.2006 08:52
Как определить размер терминала в программе на clipper (CLIP) ?

? maxrow(), maxcol()
Подскажите живой русскоязычный форум по Clip/Clipper.
Был такой, но закрылся. Лучше воспользоваться списком рассылки (англо- и русскоязычной): пошлите письмо на majordomo@web.izhcom.ru с темой "subscribe clip_devel".
Skull
Спасибо сказали:
Serik
Сообщения: 149
ОС: SuSE Linux

Re: Clipper, определение размеров терминала

Сообщение Serik »

из документации clip
Построение приложения из трех исходных файлов. Результатом является исполняемый файл небольшого размера, динамически скомпонованный с RTL. app.prg содержит процедуру MAIN.

clip funcs1.prg
clip funcs2.prg
clip -es app.prg funcs1.o funcs2.o

разделил файл на несколько, теперь функции из funcs1.prg не доступны в основном модуле app.prg, как правильно их объявить ?
Как объявить глобальную переменную, доступную из везде ?
Спасибо сказали:
Аватара пользователя
Skull
Модератор
Сообщения: 2089
ОС: ALT Linux

Re: Clipper, определение размеров терминала

Сообщение Skull »

Serik писал(а):
13.09.2006 11:59
из документации clip
Построение приложения из трех исходных файлов. Результатом является исполняемый файл небольшого размера, динамически скомпонованный с RTL. app.prg содержит процедуру MAIN.
clip funcs1.prg
clip funcs2.prg
clip -es app.prg funcs1.o funcs2.o
разделил файл на несколько, теперь функции из funcs1.prg не доступны в основном модуле app.prg, как правильно их объявить ?
1. Можно включить через

Код: Выделить всё

#include "funcs1.prg"
#include "funcs2.prg"
2. Оставить как у тебя. Не знаю, как ты определял функции (скорее всего, использовал static, тогда функции извне файла не видны), у меня всё собралось и заработало.
Как объявить глобальную переменную, доступную из везде ?
Вне функций в начале любого файла:

Код: Выделить всё

static sVar
Правда, область видимости переменной будет в этом файле и в тех файлах, куда этот файл включен. Правилом хорошего тона в программировании считается определение таких переменных и методов доступа к ним, а не просто свалку глобальных переменных. Кроме того, вы можете определить переменную-хэш и в качестве его ключей использовать любое количество аргументов. У меня так сделано для драйверов clip-ui. :)
Skull
Спасибо сказали:
Serik
Сообщения: 149
ОС: SuSE Linux

Re: Clipper, определение размеров терминала

Сообщение Serik »

2. Оставить как у тебя

точно, Makefile кривой был...
Спасибо сказали:
Serik
Сообщения: 149
ОС: SuSE Linux

Re: Clipper, определение размеров терминала

Сообщение Serik »

■ Следующий пpимеp иллюстpиpует, как открыть pазделенную базу данных
с соответствующими индексными файлами в сетевой сpеде. Если NETERR()
возвpащает значение "ложь" (.F.), это означает, что USE было успешно и
индексные файлы откpыты:

USE Accounts SHARED NEW
IF !NETERR()
SET INDEX TO AcctNames, Acctzip
ELSE
? "File open failed"
BREAK
ENDIF


Как в общем виде проверить, успешно ли открыт файл ?
т.е. нужно открыть локальный файл dbf, если его нет, то создать, если он не открылся по какой-то другой причине, то узнать причину и вывести пользователю.
Спасибо сказали:
Аватара пользователя
Skull
Модератор
Сообщения: 2089
ОС: ALT Linux

Re: Clipper, определение размеров терминала

Сообщение Skull »

Правильно нужно делать через исключения:

Код: Выделить всё

    oErr := ErrorBlock({|e| break(e) })
    begin sequence
        USE Accounts SHARED NEW
        // Ok
        ...
    recover using oErr
        // Error open
        ... // создаём файл и открываем его
        ?? oErr,chr(10)
    end sequence
Skull
Спасибо сказали: