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



Пост N: 1
Зарегистрирован: 07.02.12
ссылка на сообщение  Отправлено: 07.02.12 11:34. Заголовок: Изучаю Clipper


Доброго всем времени суток!
Решил немного подучить Clipper. Это не для учёбы, не для работы. Так для себя. С удивлением обнаружил, что в сети нет нормальных учебников по Clipper. Есть Norton guides с описанием функций, но мне необходим имеено учебник с примерами и описанием происходящего. Для чайников. Что именно интересует:
1. Структура программы (если он есть, как в Паскале?)
2. Типы данных
3. Ввод-вывод
4. Операторы цикла, ветвления и т. д.
5. Желательны примеры работы с dbf-файлами. Открытие, выборка записей, изменение их, удаление, и т. д.
Что сделал самостоятельно:
Скачал Clipper 5.3. Установил его в DosBox. Создал программу hello.prg с содержимым:
? "Hello world"
Скомпилировал его и слинковал blinker'ом. В результате всё работает. Мне бы двинуться дальше, но не могу - инфы для изучения нет!

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


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




Пост N: 2274
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 07.02.12 12:15. Заголовок: Держал в руках такой..


Держал в руках такой учебник очень давно (когда Clipper 5.01 покупали)
Скана в сети не видел.........

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 136
Зарегистрирован: 11.10.11
ссылка на сообщение  Отправлено: 07.02.12 12:24. Заголовок: У меня из книг по Cl..


У меня из книг по Clipper имелись и имеются следующие книги:

1. "Руководство по применению Cliipper 5.0 на ПЭВМ" под общей редакцией Барранова и Воробьева. Фактически . это перевод документации.

2. "CA-Clipper 5.2 и билиотека CA-Clipper TOOLS 3.0" Канатников А.Н., Ткачев С.Б.

3. "Clipper. Руководство по программированию. 3 издание, версия 5.01" Рик Спенс. Это единственная оригинаьная книга, которая не является простой компиляцией документации.

Самое смешное, что я даже по памяти уже не помню, как выглядит оператор цикла в Clipper! Так как поглащен изцчением С++.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2
Зарегистрирован: 07.02.12
ссылка на сообщение  Отправлено: 07.02.12 12:28. Заголовок: О! Спасибо за операт..


О! Спасибо за оперативность. Попробую Рика Спенса найти. Хоть фамилия с названием известны. Уже кое что.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 3
Зарегистрирован: 07.02.12
ссылка на сообщение  Отправлено: 07.02.12 14:00. Заголовок: А вот и нет... :sm4..


А вот и нет... Видимо не сильно популярен Клиппер в данный момент. Хотя даже по ZX спектруму инфы можно выкачать гигабайты. А по Клипперу - пустота. Хотя есть несколько документов. Что ж, будем играться!

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2275
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 07.02.12 14:42. Заголовок: demetrius2003 Чуть ..

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 4
Зарегистрирован: 07.02.12
ссылка на сообщение  Отправлено: 07.02.12 15:41. Заголовок: Да! Спасибо за ссылк..


Да! Спасибо за ссылку. Один из присутствующих документов я и скачал в виде архива.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 5
Зарегистрирован: 07.02.12
ссылка на сообщение  Отправлено: 08.02.12 16:49. Заголовок: Продолжаю задавать г..


Продолжаю задавать глупые вопросы.
1. Клиппер изначально затачивался под применение DBF-файлов? Т. е. это его родной формат? Есть ли в нём встроенные функции для работы скажем с Paradox DB?
2. Взял data.dbf из какой-то базы. Набросал простецкую программу:
? "Start program"
USE data NEW
FOR i=1 TO LASTREC()
GO i
A = PDATE
B = SUMMA
C = ADDR
? A, B, C, RECNO()
NEXT
? "End program, press a key"
INKEY(0)
CLOSE data
(Кстати! Как в форум код правильно вставлять? Есть ли теги CODE /CODE или наподобие?)
Вопрос по программе - USE открывает базу data. Так? А если мне надо сразу несколько баз открытыми держать, то как система узнает, к примеру, чей LASTREC() использовать?
3. Как менять значения полей в произвольной записи, выбранной скажем по номеру?


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 398
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 08.02.12 16:56. Заголовок: Может лучше Harbour ..


Может лучше Harbour изучать?

demetrius2003 пишет:

 цитата:
Вопрос по программе - USE открывает базу data. Так? А если мне надо сразу несколько баз открытыми держать, то как система узнает, к примеру, чей LASTREC() использовать?


use db1 new
use db2 new
?db1->(lastrec())
?db2->(lastrec())
demetrius2003 пишет:

 цитата:
3. Как менять значения полей в произвольной записи, выбранной скажем по номеру?


field->name_field1 := value
replace name_field2 with value

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


Пост N: 721
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 08.02.12 17:00. Заголовок: 1. Да, только DBF. 2..


1. Имхо, только DBF.
2. Нужно так: USE Data ALIAS Base1 NEW. Далее BASE1->( LastRec() )
   Чтобы форматировать текст, 
есть тег моноширинный шрифт
(кнопка с цифрами 123)

3.
BASE1->Summa := nSumma
записывает в поле Summa текущей записи значение переменной nSumma.


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 6
Зарегистрирован: 07.02.12
ссылка на сообщение  Отправлено: 08.02.12 17:45. Заголовок: Понятно. Изменил про..


Понятно. Изменил программу:
 
? "Start program"
USE data NEW
USE data2 NEW
FOR i=1 TO data->(LASTREC())
GO i
A = data->(PDATE)
B = data->(SUMMA)
C = data->(ADDR)
? A, B, C, data->(RECNO())
NEXT
? "End program, press a key"
INKEY(0)
CLOSE data

Теперь проблема в операторе GO. Фишка со стрелками -> уже не прокатывает. В справочнике написано, что команда перемещает указатель записи на заданную запись текущей рабочей области. Т. е. прежде чем её использовать надо сменить рабочую область? Или использовать другую команду позиционирования? А какую?
Кстати, к Харбору присматриваюсь. Но пока не вижу надобности в его изучении. Клиппер прост. Похож на MSX-Basic. Если одолею его в краткий срок можно будет и в работе применить. Частенько с DBF сталкиваюсь. Но пока так, чисто академический интерес.
И да! Кстати! Текущая рабочая область - это то, что открыто в последней USE?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2277
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.02.12 17:55. Заголовок: data->(dbgoto( i..


data->(dbgoto( i ))


demetrius2003 пишет:

 цитата:
Текущая рабочая область - это то, что открыто в последней USE


В данном примере да.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2278
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.02.12 17:59. Заголовок: demetrius2003 пишет:..


demetrius2003 пишет:

 цитата:
FOR i=1 TO data->(LASTREC())
GO i
A = data->(PDATE)
B = data->(SUMMA)
C = data->(ADDR)
? A, B, C, data->(RECNO())
NEXT



Можно так
 
do while !data->(eof())
A = data->PDATE
B = data->SUMMA
C = data->ADDR
? A, B, C, data->(RECNO())

data->(dbskip())
enddo



Спасибо: 1 
ПрофильЦитата Ответить



Пост N: 7
Зарегистрирован: 07.02.12
ссылка на сообщение  Отправлено: 08.02.12 18:02. Заголовок: Ребята, спасибо, что..


Ребята, спасибо, что уделяете мне время!
Кажется начинаю въезжать в Клиппер. Вот, только что сам дошёл:
 
? "Start program"
USE data NEW
USE data2 NEW
FOR i=1 TO data->(LASTREC())
A = data->(PDATE)
B = data->(SUMMA)
C = data->(ADDR)
? A, B, C, data->(RECNO())
SKIP 1 ALIAS data
NEXT
? "End program, press a key"
INKEY(0)
CLOSE data, data2


Хм. dbgoto(i) - нет такой функции в справочнике (и dbskip() тоже нет). Видимо секретная функция. Вобщем, плюс ко всему, одну и ту же проблему можно решить множеством способов.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2279
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.02.12 18:04. Заголовок: demetrius2003 пишет:..


demetrius2003 пишет:

 цитата:
Хм. dbgoto(i) - нет такой функции в справочнике


Смотри dbgoto

а так же
dbgotop()
dbgobottom()

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 400
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 08.02.12 18:05. Заголовок: demetrius2003 пишет:..


demetrius2003 пишет:

 цитата:
Кстати, к Харбору присматриваюсь. Но пока не вижу надобности в его изучении. Клиппер прост.


Harbour такой же простой как и clipper

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 8
Зарегистрирован: 07.02.12
ссылка на сообщение  Отправлено: 08.02.12 18:12. Заголовок: Нашёл! Более подробн..


Нашёл! Более подробно функции описаны в Norton guides. Там оказывается всё есть! Теперь начинаю понимать, почему в своё время Клиппер был так популярен.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 401
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 08.02.12 18:18. Заголовок: Dima пишет: Можно т..


Dima пишет:

 цитата:
Можно так


do while !data->(eof())
A = data->PDATE
B = data->SUMMA
C = data->ADDR
? A, B, C, data->(RECNO())

data->(dbskip())
enddo



Или так

data->(dbeval({||qout( pdate,summa,addr,recno() )}))

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2280
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.02.12 18:24. Заголовок: AlexMyr пишет: Или ..


AlexMyr пишет:

 цитата:
Или так


Опередил

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 9
Зарегистрирован: 07.02.12
ссылка на сообщение  Отправлено: 08.02.12 18:33. Заголовок: data->(dbeval({&..


data->(dbeval({||qout( pdate,summa,addr,recno() )}))

Жесть. Как в том анекдоте. Я то думал, что Perl - единственный язык, программы на котором одинаково выглядят до и после обфускации...
Утянул Harbour и xHarbour. Попробовал им обоим скормить свою прожку. Всё конвертится ОК. Только что мне делать с получившимися сишниками? Если просто перетяну в MinGW ведь не скомпилится с первого раза? И в Борланде не скомпилится просто так. Т. е. быстрого старта, как с Клиппером не будет явно. Хотя, возможно, необходимо всего лишь один раз всё настроить?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2281
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.02.12 18:37. Заголовок: demetrius2003 пишет:..


demetrius2003 пишет:

 цитата:
Утянул Harbour и xHarbour.


Создавай тему Изучаю (X)Harbour

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 80 , стр: 1 2 3 4 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 195
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет