Форум » Clipper » Изучаю Clipper » Ответить

Изучаю Clipper

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

Ответов - 80, стр: 1 2 3 4 All

Alw Spencer: Еще очень хорошая книга есть: Сухов Н. "Практический курс программирования на CA-Clipper"

demetrius2003: clipper.exe возвращает 5,3

Dima: demetrius2003 Тогда смотри предложение EVAL команды Index


Dima: Alw Spencer пишет: Еще очень хорошая книга есть: Сухов Н. "Практический курс программирования на CA-Clipper" В электронном виде ?

Сыроежка: demetrius2003 пишет: Смысл в том, что построение индекса таблицы DT239 проходит моментально, а SC33 мягко говоря нет. Т. е. не понятно, идёл ли оно вообще, или всё повисло. Ждал более часа, менял виртуалку на qemu. Каким образом можно контролировать этот процесс? При инлексировании вызывается функция sort, для работы которой нужно много памяти и место на диске под временный набор. Попробуйте запустить индексацию автономно в простейшей программе, которая больше ничего не содержит. Кроме того у вас индекс возможно состоит из различных выражений со строками, которые постоянно требуют выделения памяти для их копирования при вычислении выражений.

Dima: Сыроежка пишет: Кроме того у вас индекс возможно состоит из различных выражений со строками Нет там ни чего похожего. demetrius2003 пишет: INDEX ON ID TO SC33

AlexMyr: У меня база весит 23 мегабайта и количество записей 420 тис. и индексируется она приблизительно минуту, может быть проблема в железе (винчестер), нужно попробовать на другом компе. Сыроежка пишет: Кроме того у вас индекс возможно состоит из различных выражений со строками, которые постоянно требуют выделения памяти для их копирования при вычислении выражений. внимательно читаем demetrius2003 пишет: Ребята! Чисто технический вопрос. Есть код: ? "Start program" USE DT239 NEW ? "Start dt239" INDEX ON IDDOC TO DT239 USE SC33 NEW ? "Start sc33" INDEX ON ID TO SC33 какие выражения?

demetrius2003: Код предельно прост. Проблема с железом исключена - программа запускалась под DosBox, QEmu и на железном компе - результаты везде одинаковы. Жаль, что нет ошибок времени исполнения, ни чего похожего. Прога всё-ж виснет. SC33.NTX создаётся 1024 байта и всё - тишина! Кстати, файл SC33.DBF взят из 1С базы. Сама 1С при тестировании говорит, что файл нормален. Это вдвойне странно, ведь DT239.DBF оттуда же и переваривается нормально. Ладно, пока отставим это на потом. Изучу Index, Eval и т. д. Там видно будет.

Dima: demetrius2003 пишет: SC33.DBF взят из 1С базы А метни этот файлик в архиве на какой нить файлообменник , проверю у себя.

Иван: Вот еще нашел http://bazila.net/index.php/home/clipper

demetrius2003: Dima - файлы Иван - эти дистрибутивы и руководство встречаются очень часто, на каждом шагу. Я это видел множество раз. Кроме этого ничего нет.

PSP: demetrius2003, сейчас проверил индексацию SC33.DBF. Только не Клиппером, а Харбором. Индекс (NTX) создался за 0.06 сек.

Dima: demetrius2003 Clipper 5.2e use sc33 new index on id to test Dbfntx - NTX cоздан успешно Sixcdx - IDX cоздан успешно

Dima: demetrius2003 Попробуй так [pre2] ? "Start program" USE DT239 NEW ? "Start dt239" INDEX ON IDDOC TO DT239 USE SC33 NEW ? "Start sc33" INDEX ON ID TO SC33 BROWSE() [/pre2] Дойдет дело до browse или нет. Кодировка в базе Ansi поэтому в browse будут крякозяблы.

demetrius2003: Подтверждаю! Harbour-2.1. Доли секунды - и два индексных файла (SC33.NTX - 414720 байт, DT239.NTX - 7168 байт) готовы. Полагаю, что проблема скорее всего в 1С, а точнее в их понимании DBF формата. Но кто бы знал! Знать бы ещё причину такого поведения! До browse не дойдет, что-то подобное пробовал. P.S.: Всё! Разобрался! Без изменения кода скомпилировал в Clipper 5.2. Прога отработала и выдала индексы. Правда размер SC33.NTX - 419840 байт.

Pasha: Дополнительные глюки может давать dosbox

Alw Spencer: Dima пишет: Alw Spencer пишет: цитата: Еще очень хорошая книга есть: Сухов Н. "Практический курс программирования на CA-Clipper" В электронном виде ? Dima, увы, только в бажном виде, как и 2. "CA-Clipper 5.2 и билиотека CA-Clipper TOOLS 3.0" Канатников А.Н., Ткачев С.Б. 3. "Clipper. Руководство по программированию. 3 издание, версия 5.01" Рик Спенс. Это единственная оригинаьная книга, которая не является простой компиляцией документации. Много раз перечитанные.

demetrius2003: Очередной вопрос - а есть ли у Клиппера механизм подобный ссылкам или указателям? Как я, к примеру, могу организовать структуру связанного списка?

Сыроежка: demetrius2003 пишет: Очередной вопрос - а есть ли у Клиппера механизм подобный ссылкам или указателям? Как я, к примеру, могу организовать структуру связанного списка? Связный список - это, по сути, некоторый определенный интерфейс, который может быть реализован разными способами. Так как в Clipper массив обладает достаточной гибкостью, позволяя вставлять элементы в любую позицию, то вы с помощью массива можете обеспечить функциональность связного списка.

Pasha: Есть передача параметров функции по ссылке - перед переменной надо указать символ @: myfunc(@par1) Есть также тип блок кода. Это что-то вроде адреса функции, только это делается намного более гибко. Для создания списка можно использовать массивы. Массив - это собственно не массив в традиционном понимании, а именно список: элементом массива может быть значение любого типа данных, в том числе массива. Таким образом, можно создавать структуры произвольной сложности.



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