Clipper

10
Linguagem e Técnicas de Programação VI – Clipper Aula – 1 Fatec – Jahu Pag: 1 O QUE É O CLIPPER Uma das aplicações mais freqüentes e úteis para os computadores é a organização de coleções de dados (ou arquivos), com a finalidade de se elaborar consultas, efetuar cálculos, gerar listagens e relatórios, análises estatísticas etc. Muitas aplicações em Processamento de Dados têm essas características em comum, sendo por isso chamadas de aplicações de Base de Dados (ou Banco de Dados), pois baseiam-se em coleções ou arquivos de dados. Por outro lado, as Base de Dados constituem o ingrediente fundamental dos Sistemas de Informação, cujo objetivo principal é gera informações para a tomada de decisões. O Clipper é um completo Sistema Gerenciador de Banco de Dados, tendo originado-se de um dos softwares de maior sucesso para microcomputadores, o dBase III. Com o Clipper é possível: Criar, organizar, classificar, copiar, selecionar e relacionar conjuntos de arquivos que formam o Banco de Dados; Adicionar, alterar, eliminar, exibir e listar global ou seletivamente as informações contidas nos arquivos de dados; Gerar relatórios padronizados, efetuar automaticamente somas, agregações, contagens e operações aritméticas sobre os valores dos dados armazenados nos arquivos; Formatar telas de entrada de dados no vídeo e gerar relatórios, tabelas e listagens complexas na impressora, de acordo com as necessidades do usuário; Produzir Sistemas de Informação completos e integrados, com recursos e sofisticações encontrados apenas nos mais modernos softwares que hoje disputam o fabuloso mercado da microinformática. Em resumo, o Clipper 1 permite a dinamização de aplicações com arquivos de dados, tornando-as mais fáceis e rápidas que as desenvolvidas em uma linguagem de programação tradicional, como Cobol, Basic ou Pascal. Com uma simples, moderna e eficiente linguagem de programação, permite o encadeamento ordenado e lógico de seus comandos possibilitando rapidamente a definição de programas com alto grau de complexidade e sofisticação, permitindo inclusive interações com outras linguagens como “C” e Assembler, que lhe confere a flexibilidade necessária para a utilização profissional. VERSÕES DO CLIPPER O CLIPPER foi lançado no ano de 1985, no mercado americano, logo após a Ashton-Tate ter lançado o Gerenciador de Banco de Dados, o poderoso DBASE III, em meados de 1984. No decorrer desse tempo, ambos sofreram modificações e implementações que resultaram em novas e mais poderosas versões. SUMMER 85 - nesta versão, o CLIPPER era totalmente compatível com a versão 1.0 do DBASE III, chegando a ser bem próximo dele, porém, apresentando alguns recursos adicionais como: - Maior capacidade de manipulação de arquivos e variáveis; - Construção de "HELP" ao usuário; - Múltiplo relacionamento entre arquivos; - Criação de funções-de-usuário (UDF's); 1 Clipper em inglês significa “cortador veloz”. Na verdade Clipper é uma alusão aos grandes navios à vela denominados “Clipper’s”, que eram construídos para cortarem as águas a grade velocidade. Na gíria atual, Clipper significa aquele que é veloz; no nosso caso, Clipper é o compilador que torna as aplicações desenvolvidas em dBase mais velozes.

description

Clipper

Transcript of Clipper

Page 1: Clipper

Linguagem e Técnicas de Programação VI – Clipper Aula – 1

Fatec – Jahu Pag: 1

O QUE É O CLIPPER

Uma das aplicações mais freqüentes e úteis para os computadores é a organização decoleções de dados (ou arquivos), com a finalidade de se elaborar consultas, efetuar cálculos, gerarlistagens e relatórios, análises estatísticas etc. Muitas aplicações em Processamento de Dadostêm essas características em comum, sendo por isso chamadas de aplicações de Base de Dados(ou Banco de Dados), pois baseiam-se em coleções ou arquivos de dados. Por outro lado, as Basede Dados constituem o ingrediente fundamental dos Sistemas de Informação, cujo objetivoprincipal é gera informações para a tomada de decisões.

O Clipper é um completo Sistema Gerenciador de Banco de Dados, tendo originado-sede um dos softwares de maior sucesso para microcomputadores, o dBase III.

Com o Clipper é possível:

• Criar, organizar, classificar, copiar, selecionar e relacionar conjuntos de arquivos queformam o Banco de Dados;

• Adicionar, alterar, eliminar, exibir e listar global ou seletivamente as informaçõescontidas nos arquivos de dados;

• Gerar relatórios padronizados, efetuar automaticamente somas, agregações, contagense operações aritméticas sobre os valores dos dados armazenados nos arquivos;

• Formatar telas de entrada de dados no vídeo e gerar relatórios, tabelas e listagenscomplexas na impressora, de acordo com as necessidades do usuário;

• Produzir Sistemas de Informação completos e integrados, com recursos e sofisticaçõesencontrados apenas nos mais modernos softwares que hoje disputam o fabuloso mercado damicroinformática.

Em resumo, o Clipper 1 permite a dinamização de aplicações com arquivos de dados,tornando-as mais fáceis e rápidas que as desenvolvidas em uma linguagem de programaçãotradicional, como Cobol, Basic ou Pascal. Com uma simples, moderna e eficiente linguagem deprogramação, permite o encadeamento ordenado e lógico de seus comandos possibilitandorapidamente a definição de programas com alto grau de complexidade e sofisticação, permitindoinclusive interações com outras linguagens como “C” e Assembler, que lhe confere a flexibilidadenecessária para a utilização profissional.

VERSÕES DO CLIPPER

O CLIPPER foi lançado no ano de 1985, no mercado americano, logo após a Ashton-Tateter lançado o Gerenciador de Banco de Dados, o poderoso DBASE III, em meados de 1984. Nodecorrer desse tempo, ambos sofreram modificações e implementações que resultaram em novase mais poderosas versões.

SUMMER 85 - nesta versão, o CLIPPER era totalmente compatível com a versão 1.0 doDBASE III, chegando a ser bem próximo dele, porém, apresentando alguns recursos adicionaiscomo:

- Maior capacidade de manipulação de arquivos e variáveis;- Construção de "HELP" ao usuário;- Múltiplo relacionamento entre arquivos;- Criação de funções-de-usuário (UDF's);

1 Clipper em inglês significa “cortador veloz”. Na verdade Clipper é uma alusão aos grandes navios à veladenominados “Clipper’s”, que eram construídos para cortarem as águas a grade velocidade. Na gíria atual,Clipper significa aquele que é veloz; no nosso caso, Clipper é o compilador que torna as aplicaçõesdesenvolvidas em dBase mais velozes.

Page 2: Clipper

Linguagem e Técnicas de Programação VI – Clipper Aula – 1

Fatec – Jahu Pag: 2

- Novos comandos e funções que não existiam no DBASE III.WINTER 85 - ainda permanecia a compatibilidade com o DBASE III entretanto surgiram

algumas implementações, dentre elas, as principais são:- Variáveis indexadas: vetores;- Surgimento do comando @...PROMPT ( menu de barras );- Novas funções para manipulação de campos MEMO.Logo após a versão WINTER 85 do CLIPPER foi lançado em contra-ataque, o DBASE III

PLUS que incluía os vários comandos e funções que o CLIPPER já possuía só que com a principalnovidade, que era a possibilidade de trabalho em ambiente de rede local.

Para acompanhar a versão do DBASE, foi lançada a versão:AUTUMN 86 - nesta versão, o CLIPPER também passou a trabalhar em ambiente de rede

local, ganhou novos comandos e funções, mas muitos dos novos recursos do DBASE III PLUSforam implementados de forma provisória, através de rotinas auxiliares, escritas em linguagem C eAssembler. A compatibilidade com o DBASE III PLUS ainda existia.

SUMMER 87 - nesta versão ocorre dois fatores importantes para o estágio dedesenvolvimento do CLIPPER, são eles:

- Mudança do compilador C, através do qual era construído.- Decisão de se separar de uma vez do DBASE.Com isso o CLIPPER se transformou numa ferramenta realmente destinada à construção

de sistemas profissionais. Além de uma quantidade considerável de novos comandos e funções, aarquitetura do CLIPPER foi praticamente aberta. Tornou-se possível escrever uma função qualquerutilizando o Microsoft C e linkeditá-la diretamente com as bibliotecas e módulos objeto geradospelo CLIPPER.

VERSÃO 5.0 - a tendência já observada na versão SUMMER 87 confirmou-se. Acompatibilidade com a linguagem DBASE, apesar de mantida, tornou-se apenas uma circunstânciahistórica. A nova estrutura de programação do CLIPPER e os novos e sofisticados recursosbaseados na estrutura de programação da linguagem C e tendências de programação orientada aobjetos, indicam um afastamento definitivo do padrão DBASE.

NOVIDADES DA VERSÃO 5.0 - Dentre as várias novidades que a versão 5.0 do CLIPPERnos trouxe, destacamos algumas logo abaixo:

- Acesso ao pré-processador do compilador (diretivas);- Novo compilador com recursos e opções mais otimizadas;- Novo linkeditor (RTlink), que permite a criação de overlays dinâmicos;- Help "on-line" para programador (Norton Guide);- Novos operadores;- Definições de funções-de-usuário (UDF's);- Debugador mais eficiente;- Novos tipos e classes de variáveis;- Matrizes multidimensionais, etc.

VANTAGENS E DESVANTAGENS DE UM COMPILADOR

VANTAGENS

• Maior velocidade e eficiência na execução dos programas;• código executável é literalmente livre de erros de sintaxe, pois já foi verificado durante a

compilação;• Proteção ao código-fonte ( dependendo da engenharia reversa é capaz de descompilar um

executável )• Possibilidade de utilização de vários recursos de programação avançados, normalmente não

disponíveis nos interpretadores;• Possibilidade de distribuição ou comercialização de um número ilimitado de cópias do módulo

executável das aplicações desenvolvidas;

Page 3: Clipper

Linguagem e Técnicas de Programação VI – Clipper Aula – 1

Fatec – Jahu Pag: 3

• Possibilidade de integração direta com outras linguagens também compiladas, possibilitandototal flexibilidade no desenvolvimento de aplicações e garantindo um nível altamenteprofissional;

• Possibilidade de executar programas e acessar arquivos em ambiente compartilhado de redelocal de microcomputadores, sem licença adicional.

DESVANTAGENS

• A programação torna-se mais sofisticada e difícil , tendendo a profissionalizar o programador;• Maior dificuldade e demora na correção de erros;• Exigência de maior conhecimento técnico e experiência do programador, ou seja, aumenta o

tempo necessário ao aprendizado.

EXTENSÃO DOS ARQUIVOS MANIPULADOS PELO CLIPPER

O CLIPPER como qualquer outra linguagem de programação possui os seus própriosarquivos e extensões para que sejam facilmente reconhecidos por um programador. Logo abaixo,será descriminados os vários arquivos manipulados pelo CLIPPER.

.PRG = arquivos de programa-fonte

.CH = arquivos-cabeçalho ou arquivos include

.OBJ = arquivos-objeto

.LIB = arquivos de bibliotecas

.TMP = arquivos temporários

.PPO = arquivos do pré-processador

.EXE = arquivos auto-executáveis

.DBF = arquivos de dados

.DBT = arquivos de campo memo

.NTX = arquivos de índices

.MEM = arquivos de variáveis de memória

.LBL = arquivos de definição de etiquetas

.FRM = arquivos de definição de relatórios

.FMT = arquivos de formatação

.CLP = arquivos script ou lista de clippagem

.LNK = arquivos de linkedição

.PLL e PLT = arquivos de biblioteca pré-linkadas

.OVL = arquivos de overlay

.MAP = arquivos de alocação de memória

INTERPRETADOR E COMPILADOR

INTERPRETADOR

É um conjunto de operações que tem por finalidade, traduzir o programa-fonte linha alinha, permitindo a execução paralela.

Ele acessa o arquivo que contém o programa-fonte e "interpreta" linha por linha, isto é,converte a linha de programa escrita em linguagem de alto-nível, parecida com a linguagemhumana, para linguagem de máquina. Se for encontrado algum erro durante a conversão, ointerpretador interrompe a sua atividade e indica a linha na qual foi detectado o erro. Se não háerros, a linha convertida é executada e o interpretador passa para a linha seguinte. Assim oprograma-fonte vai sendo executado linha por linha na medida em que o interpretador vai asanalisando.

Toda vez que um erro é encontrado devemos voltar ao editor de textos e eliminar o erro etornar a executar o interpretador até que nosso programa fique sintaticamente correto.

Page 4: Clipper

Linguagem e Técnicas de Programação VI – Clipper Aula – 1

Fatec – Jahu Pag: 4

Na verdade, o programa-fonte somente é verificado e convertido após uma certa porção docódigo já ter sido executada. Em qualquer caso, sempre que um programa é escrito numalinguagem interpretada de alto nível, como o DBASE III ou o BASIC, o programa-fonte precisa seranalisado e convertido para a linguagem de máquina antes que cada instrução possa serexecutada.

Se um erro de sintaxe é encontrado em alguma linha, a execução do programa éinterrompida imediatamente e o interpretador mostra uma mensagem de erro apropriada na tela.Você deve então retornar ao editor de textos, corrigir o problema e novamente executar oprograma sob o controle do interpretador. Este processo se repete até que todo o programa estejaperfeito, isto é, não contenha erros e possa ser totalmente entendido e executado pelointerpretador.

COMPILADOR

É um conjunto de operações que tem por finalidade a depuração de erros e a tradução doprograma-fonte (alto-nível) transformando-o em um programa-objeto (baixo-nível) não oexecutando paralelamente.

Sintaxe:CLIPPER <nomeprograma> /parâmetros ouCLIPPER <@arq.script> /parâmetros<nomeprograma> é o nome do arquivo programa a ser compilado para gerar um arquivo

objeto. Se não for especificada extensão, é assumida a extensão (.prg). O nome do arquivo podeou não incluir um designador de unidade de disco e referência a path.

<@arq.script> é o nome de um arquivo script que contém uma lista de arquivos fonte aserem compilados para produzir um só arquivo objeto. Se não for especificada extensão, éassumido (.clp) como extensão padrão.

<parâmetros> é uma lista de uma ou mais opções que controlarão o curso da compilação.As opções podem ser especificadas com letras maiúsculas ou minúsculas, e devem serprecedidas de um caractere barra inclinada (/) ou traço (-).

FORMA DE TRABALHO DO COMPILADOR

Ele acessa o programa-fonte e "compila" o mesmo, isto é, cria um novo arquivo quecontém o programa-fonte convertido integralmente em linguagem de máquina, chamado arquivo-objeto. Durante a compilação todos os erros encontrados são anotados pelo compilador, que apóscriar o arquivo-objeto, lista os erros indicando a linha do programa-fonte onde foram detectados.Para eliminarmos esses erros, devemos voltar ao editor de textos, acessar o programa-fonte,corrigir o programa e tornar a compilá-lo.

O código-objeto gerado pelo compilador não pode ser executado até ser encadeado("linkeditado") com um conjunto de rotinas pré-programadas por quem desenvolveu o compilador,denominadas rotinas de biblioteca. Estas rotinas são necessárias para a criação de um móduloauto-executável, conhecido como módulo de carga ou módulo executável, que recebe a extensão.EXE. Após o código-objeto ter sido encadeado ou linkeditado com sucesso, o arquivo executávelpassa a conter todas as instruções necessárias (já em código de máquina) para executar asinstruções do programa a partir do sistema operacional, bastando para isso digitar o seu nome. Oprograma é agora executado com a máxima velocidade possível, pois não é mais necessárioverificar e converter cada linha como no caso do interpretador.

Edição dos programas

Para edição do programas, necessitamos de um editor de texto convencional e simples. Semmuitos recursos, uma vez que a programação não requer recursos sofisticados. Pode-se utilizaraté Microsoft Word, mas o editor recomendável é o Edit que acompanha o Windows, sendoexecutado através do prompt do MS-DOS ou através da opção Executar através do comandoCMD.

Page 5: Clipper

Linguagem e Técnicas de Programação VI – Clipper Aula – 1

Fatec – Jahu Pag: 5

COMPILAÇÃO

C:\>CLIPPER <NOMEARQ> [OPÇÕES]

Quando compilamos um programa é opcional colocarmos a sua extensão (.prg)

Principais Opções de Compilação

-B Debug-P arquivo do pré-processador-S Verifica a sintaxe sem gerar o .obj

LINK-EDIÇÃO

Modo Freeformat

SET RTLINKCMD=/FREEFORMAT Opção Default do Clipper

C:\>RTLINK FILE <arqobj> OUTPUT <arqexe>

Exemplo:Rtlink fi prog1 ou prog1

Modo Positional

SET RTLINKCMD=/POSITIONAL Para tornar esta opção Default deve-se colocaresta linha no autoexec.bat

C:\>RTLINK <arqobj>,<arqsaida>,<arqmap>,<library>

Exemplo:Rtlink prog1,,,

COMANDOS BÁSICOS

@. . . SAY. . . GET

Propósito: Criar e executar um novo objeto GET (entrada de dados), colocando-o em exibição na tela.

Sintaxe: @ <linha>, < coluna> [ SAY <exp> [ <mascara SAY>] ][WHEN<condição>][RANGE <inicial>,<final>][VALID <condição> ]

Page 6: Clipper

Linguagem e Técnicas de Programação VI – Clipper Aula – 1

Fatec – Jahu Pag: 6

Exemplo:@ 15,10 SAY ‘FATEC’xcod:=0@ 18,10 GET xcodread

STR( )Propósito: Converter uma expressão numérica em uma expressão caractere.Sintaxe: STR(<valor numérico>,<comprimento>,<casas decimais>).

Exemplo:

SALÁRIO := 3020.29? STR(SALARIO,4) // resultado: 3020? STR(SALARIO,8,3) // resultado: 3020.290

STRZERO( )

Propósito: Converter uma expressão numérica em uma expressão caractere.preenchendo oscaracteres a esquerda com zeroSintaxe: STRZERO(<valor numérico>,<comprimento>,<casas decimais>).

Exemplo:

SALÁRIO := 300? STRZERO (SALARIO,4) // resultado: 0300

?/??

Propósito: Mostrar um ou mais valores no vídeo ou impressora.Sintaxe: ?/?? <Lista de expressões>

Exemplo:

CLEAR / / limpa a tela? “Exemplo do comando ?” / / exibe a informação no vídeo? date ( ) / / exibe a data ( nova linha )? ”a data de hoje é..:”?? date ( ) / / exibe na mesma posição anterior do cursor

VAL( )Propósito: Converter uma expressão caractere em um valor numérico.Sintaxe: VAL(<string>).

Exemplo:

SALÁRIO := “2929.20”? VAL (SALÁRIO) // resultado: 2929.20TESTE := “COMPUTADOR”? VAL(TESTE) // resultado: 0

Page 7: Clipper

Linguagem e Técnicas de Programação VI – Clipper Aula – 1

Fatec – Jahu Pag: 7

LASTKEY( )Propósito: Retornar o código INKEY( ) da última tecla que foi pressionada.Sintaxe: LASTKEY( ).

Exemplo:

// SEÇÃO DE @..GETSREADIF LASTKEY( ) = 27 // se a última tecla foi o <ESC>

RETURN // terminaENDIF

INKEY( )

Propósito: Aguarda do buffer do teclado um caractere qualquer.Sintaxe: INKEY(<tempo>).

Exemplo:@ 22,10 SAY “TECLE ALGO PARA CONTINUAR”TECLA := INKEY(5) // espera por um máximo 5 segundos

// INKEY(0) aguarda até que seja pressionada uma tecla? 23,01 SAY “VOCÊ PRESSIONOU A TECLA DE CÓDIGO..:” + STR(TECLA)

LAÇOS DE REPETIÇÃO

FOR. . . NEXT

Propósito: Executa uma estrutura de controle, um determinado número de vezes.Sintaxe:

FOR <contador> := <inicio> TO <fim> STEP <passo> ...... <instruções>

[EXIT] ...... <instruções>

[LOOP]NEXT

Exemplo:

1)

FOR I := 1 TO 100@ 15,10 SAY ‘CONTADOR:’ +STR(I,3)

NEXT

2)

FOR J := 100 TO 500 STEP 10@ 18,05 SAY ‘O VALOR DE J É ‘+ STRZERO(J,3)

NEXT

Page 8: Clipper

Linguagem e Técnicas de Programação VI – Clipper Aula – 1

Fatec – Jahu Pag: 8

DO WHILE...ENDDO

Propósito: Executa uma estrutura de controle enquanto uma condição for verdadeira.Sintaxe:DO WHILE <condição>

<instruções>[EXIT][LOOP]

ENDDO

Exemplo:1)

DO WHILE .T.xnumero:=0@ 11,10 say ‘Digite um número’@ 11,20 get xnumeroreadif empty(xnumero)

exitendif@ 13,10 say ‘o número digitado foi’+strzero(xnumero,3)

ENDDO

2)xresp:=’S’DO WHILE XRESP#’N’ // # ou < > símbolos de diferente

xnome:=space(40)@ 11,10 say ‘Nome: ‘@ 11,25 get xnomereadif lastkey()==27 // == exatamente igual

exitendi@ 15,18 say ‘O nome digitado foi: ‘+xnomexresp:=space(01)@ 20,10 say ‘Deseja continuar ?@ 20,30 get xresp picture ‘!’read

ENDDO

Page 9: Clipper

Linguagem e Técnicas de Programação VI – Clipper Aula – 1

Fatec – Jahu Pag: 9

Valor de algumas teclas de controle

Tecla Valor4

18Para cima 5Para baixo 24

^ 2^ 26

Enter 13Ins 22Del 7

Backspace 8Home 1End 6

PgUp 18PgDn 3

+ 43- 45

^Home 29^End 23

^PgUp 31^PgDn 30

F1 28F2 a F10 -1 a –9

Shift F1 a Shift F10 -10 a –19Ctrl F1 a Ctrl F10 -20 a –29Alt F1 a Alt F10 -30 a –39

Tecla 1 49Tecla 2 50

Operadores

* Multiplicação** ^ Exponenciação

+ Adição++ Incremento- Subtração-- Decremento/ Divisão

<> != # Diferente/Não igual.AND. E (lógico)

.NOT. ! Não (lógico).OR. OU (lógico)

< Menor que<= Menor igual> Maior

>= Maior Igual

Page 10: Clipper

Linguagem e Técnicas de Programação VI – Clipper Aula – 1

Fatec – Jahu Pag: 10

= Igualdade== Exatamente igual:= Atribuição-> Operador alias (dbf)[ ] Indicador de vetor

EXERCÍCIOS

1) Elabore um programa que apresente os números entre 1 e 10000 utilizando o laço de

repetição FOR...NEXT

2) Elabore um programa que apresente os números pares entre 2 e 100 utilizando o laço

de repetição FOR...NEXT

3) Elabore um programa que apresente os números entre 1000 e 500 utilizando o laço

de repetição DO WHILE...ENDDO

4) Elabore um programa que apresente os números entre 300 e 100 com decremento de

2 utilizando o laço de repetição DO WHILE...ENDDO.

5) Elabore um programa utilizando o laço FOR...NEXT que apresente os números entre

os intervalos solicitados pelo usuário.

6) Elabore um programa utilizando o laço DO WHILE...ENDDO que apresente os

números entre o intervalo solicitado pelo usuário.

7) Elabore um programa de “Tabuada” para um número solicitado pelo usuário.

8) Elabore um programa que apresente asteriscos na linha (inteira) e coluna (inteira)

solicitada pelo usuário

9) Elabore um programa que forme um retângulo com um caracter informado pelo

usuário.