Você está na página 1de 137

Clipper 5.

2 Comandos e Funes
NDICE

COMANDOS DA LINGUAGEM CLIPPER 5.2............................................................09


?/?? ......................................................................................................................09
@... BOX.............................................................................................................09
@... CLEAR ........................................................................................................10
@... SAY...GET ..................................................................................................11
@... PROMPT .....................................................................................................12
@... TO................................................................................................................13
ACCEPT .............................................................................................................13
APPEND BLANK...............................................................................................14
APPEND FROM.................................................................................................15
AVERAGE..........................................................................................................16
BEGIN SEQUENCE...........................................................................................16
CALL ..................................................................................................................17
CANCEL.............................................................................................................17
CLEAR ALL .......................................................................................................17
CLEAR GETS ...................................................................................................18
CLEAR MEMORY.............................................................................................18
CLEAR SCREEN ...............................................................................................18
CLEAR TYPEAHEAD.......................................................................................18
CLOSE ................................................................................................................18
COMMIT ............................................................................................................19
CONTINUE ........................................................................................................20
COPY FILE.........................................................................................................21
COPY STRUCTURE..........................................................................................21
COPY STRUCTURE EXTENDED ...................................................................21
COPY TO............................................................................................................22
COUNT ...............................................................................................................22
CREATE .............................................................................................................22
CREATE FROM.................................................................................................23
DECLARE ..........................................................................................................23
DELETE..............................................................................................................23
DELETE FILE ....................................................................................................24
DIR ......................................................................................................................24
DISPLAY ............................................................................................................25
DO .......................................................................................................................25
DO CASE............................................................................................................25
DO WHILE .........................................................................................................26
EJECT .................................................................................................................27

GEEK BRASIL http://www.geekbrasil.com.br

Clipper 5.2 Comandos e Funes

ERASE ................................................................................................................27
EXTERNAL........................................................................................................28
EXIT PROCEDURE...........................................................................................28
FIELD..................................................................................................................28
FIND....................................................................................................................29
FOR... NEXT ......................................................................................................29
FUNCTION.........................................................................................................30
GO .......................................................................................................................31
IF .........................................................................................................................31
INIT PROCEDURE ............................................................................................32
INDEX ................................................................................................................32
INPUT .................................................................................................................33
JOIN ....................................................................................................................33
KEYBOARD.......................................................................................................34
LABEL FORM....................................................................................................34
LIST ....................................................................................................................34
LOCATE .............................................................................................................35
LOOP ..................................................................................................................35
LOCAL................................................................................................................35
MENVAR ...........................................................................................................36
MENU TO...........................................................................................................36
NOTE ..................................................................................................................36
PACK ..................................................................................................................36
PARAMETER ....................................................................................................37
PRIVATE............................................................................................................37
PROCEDURE.....................................................................................................38
PUBLIC...............................................................................................................38
QUIT ...................................................................................................................39
READ..................................................................................................................39
RECALL .............................................................................................................40
REINDEX ...........................................................................................................40
RELEASE ...........................................................................................................40
RENAME............................................................................................................41
REPLACE ...........................................................................................................41
REPORT FROM .................................................................................................41
REQUEST...........................................................................................................42
RESTORE...........................................................................................................42
RESTORE SCREEN...........................................................................................42
RETURN.............................................................................................................43
RUN ....................................................................................................................43
SAVE ..................................................................................................................44

GEEK BRASIL http://www.geekbrasil.com.br

Clipper 5.2 Comandos e Funes

SAVE SCREEN..................................................................................................44
SEEK...................................................................................................................44
SELECT ..............................................................................................................45
SET ALTERNATE .............................................................................................45
SET BELL...........................................................................................................45
SET CENTURY..................................................................................................45
SET COLOR .......................................................................................................46
SET CONFIRM ..................................................................................................46
SET CONSOLE ..................................................................................................47
SET CURSOR.....................................................................................................47
SET DECIMALS ................................................................................................47
SET DEFAULT...................................................................................................48
SET DELETED...................................................................................................48
SET DELIMITERS .............................................................................................48
SET DELIMITER TO .........................................................................................48
SET DEVICE ......................................................................................................49
SET EPOCH .......................................................................................................49
SET ESCAPE......................................................................................................49
SET EXACT .......................................................................................................50
SET EXCLUSIVE...............................................................................................50
SET FILTER .......................................................................................................50
SET FIXED .........................................................................................................51
SET FORMAT ....................................................................................................51
SET FUNCTION.................................................................................................51
SET INDEX ........................................................................................................52
SET INTENSITY................................................................................................52
SET KEY ............................................................................................................52
SET MARGIN ....................................................................................................53
SET MESSAGE..................................................................................................53
SET ORDER .......................................................................................................53
SET PATH ..........................................................................................................54
SET PRINTER ....................................................................................................54
SET PROCEDURE.............................................................................................54
SET RELATION.................................................................................................54
SET SCOREBOARD..........................................................................................55
SET SOFTSEEK.................................................................................................55
SET TYPEAHEAD.............................................................................................55
SET UNIQUE .....................................................................................................55
SET WRAP .........................................................................................................55
SKIP ....................................................................................................................56
SORT ..................................................................................................................56

GEEK BRASIL http://www.geekbrasil.com.br

Clipper 5.2 Comandos e Funes

STATIC...............................................................................................................56
STORE ................................................................................................................57
SUM ....................................................................................................................57
TEXT...................................................................................................................57
TOTAL................................................................................................................58
TYPE...................................................................................................................58
UNLOCK ............................................................................................................58
UPDATE .............................................................................................................59
USE .....................................................................................................................59
WAIT ..................................................................................................................59
ZAP .....................................................................................................................60
FUNES DA LINGUAGEM CLIPPER 5.2................................................................60
AADD( )..............................................................................................................60
ABS( ) .................................................................................................................61
ACHOICE( ) .......................................................................................................61
ACLONE( ) .........................................................................................................62
ACOPY( )............................................................................................................62
ADEL( )...............................................................................................................62
ADIR( ) ...............................................................................................................63
AEVAL( )............................................................................................................63
AFIELDS( ).........................................................................................................64
AFILL( ) ..............................................................................................................64
AINS( )................................................................................................................64
ALERT( ) ............................................................................................................64
ALIAS( ) .............................................................................................................65
ALLTRIM( )........................................................................................................65
ALTD( )...............................................................................................................66
ARRAY( ) ...........................................................................................................66
ASC( ) .................................................................................................................66
ASCAN( )............................................................................................................67
ASIZE( )..............................................................................................................67
ASORT( ) ............................................................................................................67
AT( )....................................................................................................................68
ATAIL( ) .............................................................................................................68
BIN2( ) ................................................................................................................69
BIN2L( ) ..............................................................................................................69
BIN2W( ).............................................................................................................69
BOF( ) .................................................................................................................69
BROWSE( ) ........................................................................................................69
CDOW( ).............................................................................................................70

GEEK BRASIL http://www.geekbrasil.com.br

Clipper 5.2 Comandos e Funes

CMONTH( )........................................................................................................70
COL( ) .................................................................................................................71
CLORSELECT( )................................................................................................71
CTOD( ) ..............................................................................................................71
CURDIR( ) ..........................................................................................................72
DATE( ) ..............................................................................................................72
DAY( ) ...............................................................................................................72
DBAPPEND( ) ....................................................................................................72
DBCLEARFILTER( ) .........................................................................................74
DBCLEARINDEX( ) ..........................................................................................75
DBCLEARRELATION( )...................................................................................75
DBCLOSEALL( ) ...............................................................................................75
DBCOMMIT( ) ...................................................................................................75
DBCOMMITALL( )............................................................................................76
DBCREATE( ) ....................................................................................................76
DBCREATEINDEX( )........................................................................................76
DBDELETE( ).....................................................................................................77
DBEDIT( )...........................................................................................................78
DBEVAL( ) .........................................................................................................79
DBF( ) .................................................................................................................79
DBFILTER( ) ......................................................................................................80
DBGOTOBOTTOM( )........................................................................................80
DBGOTO( ) ........................................................................................................80
DBGOTOP( ) ......................................................................................................81
DBRECALL( ) ....................................................................................................81
DBREINDEX( ) ..................................................................................................81
DBRELATION( )................................................................................................81
DBRSELECT( ) ..................................................................................................82
DBSEEK( )..........................................................................................................82
DBSELECTAREA( ) ..........................................................................................83
DBSETDRIVER( )..............................................................................................83
DBSETINDEX( ) ................................................................................................84
DBSETORDER( )...............................................................................................84
DBSETRELATION( ).........................................................................................84
DBSKIP( ) ...........................................................................................................85
DBSTRUCT( ) ....................................................................................................85
DBUNLOCKALL( ) ...........................................................................................85
DBUSEAREA( ) .................................................................................................86
DELETED( ) .......................................................................................................86
DESCEND( ).......................................................................................................86
DEVPOS( )..........................................................................................................87

GEEK BRASIL http://www.geekbrasil.com.br

Clipper 5.2 Comandos e Funes

DEVOUTPICT( ) ................................................................................................87
DIRECTORY( ) ..................................................................................................87
DISKSPACE( ) ...................................................................................................88
DOSERROR( )....................................................................................................88
DOW( )................................................................................................................88
DTOC( ) ..............................................................................................................89
EMPTY( )............................................................................................................89
EOF( )..................................................................................................................89
ERRORLOCK( ).................................................................................................90
ERRORLEVEL( ) ...............................................................................................90
EVAL( )...............................................................................................................90
EXP( )..................................................................................................................90
FCLOSE( ) ..........................................................................................................91
FCOUNT( ) .........................................................................................................91
FCREATE( ) .......................................................................................................91
FERASE( ) ..........................................................................................................92
FERROR( )..........................................................................................................92
FIELD( ) ..............................................................................................................92
FILE( ).................................................................................................................93
FKLABEL( ) .......................................................................................................93
FKMAX( )...........................................................................................................93
FLOCK( ) ............................................................................................................94
FOPEN( ) ............................................................................................................94
FOUND( ) ...........................................................................................................94
FREAD( ) ............................................................................................................95
FREADSTR( ).....................................................................................................95
FRENAME( ) ......................................................................................................96
FSEEK( ).............................................................................................................96
FWRITE( ) ..........................................................................................................96
GETENV( ) .........................................................................................................97
HARDCR( ) ........................................................................................................97
HEADER( ).........................................................................................................97
IF( )......................................................................................................................98
INDEXEXT( ) .....................................................................................................98
INDEXKEY( ).....................................................................................................98
INDEXORD( ) ....................................................................................................99
INKEY( ).............................................................................................................99
INT( )...................................................................................................................99
ISALPHA( ) ......................................................................................................100
ISCOLOR( ) ......................................................................................................100
ISDIGIT( ).........................................................................................................100

GEEK BRASIL http://www.geekbrasil.com.br

Clipper 5.2 Comandos e Funes

ISLOWER( ) .....................................................................................................100
ISPRINTER( ) ...................................................................................................101
ISUPPER( ) .......................................................................................................101
I2BIN( ) .............................................................................................................102
LASTKEY( ) .....................................................................................................102
LASTREC( ) .....................................................................................................102
LEFT( )..............................................................................................................102
LEN( ) ...............................................................................................................103
LENNUM( ) ......................................................................................................103
LOG( ) ...............................................................................................................103
LOWER( ).........................................................................................................104
LTRIM( )...........................................................................................................104
LUPDATE( ) .....................................................................................................104
L2BIN( ) ............................................................................................................104
MAX( )..............................................................................................................105
MAXCOL( )......................................................................................................105
MAXROW( ) ....................................................................................................105
MEMOEDIT( )..................................................................................................105
MEMOLINE( )..................................................................................................109
MEMOREAD( )................................................................................................110
MEMORY( ) .....................................................................................................110
MEMOTRAN( )................................................................................................111
MEMOWRIT( ) ................................................................................................111
MIN( ) ...............................................................................................................111
MLCOUNT( ) ...................................................................................................112
MLPOS( )..........................................................................................................112
MOD( )..............................................................................................................113
MONTH( ) ........................................................................................................113
NETERR( )........................................................................................................113
NETNAME( )....................................................................................................113
NEXTKEY( ) ....................................................................................................114
OS( ) ..................................................................................................................114
PAD( ) ...............................................................................................................114
PCOL( ).............................................................................................................115
PCOUNT( ) .......................................................................................................115
PROCLINE( )....................................................................................................116
PROCNAME( ).................................................................................................116
PROW( ) ...........................................................................................................116
QOUT( ) ............................................................................................................117
QQOUT( ) .........................................................................................................117
RAT( ) ...............................................................................................................117

GEEK BRASIL http://www.geekbrasil.com.br

Clipper 5.2 Comandos e Funes

READEXIT( ) ...................................................................................................117
READINSERT( ) ..............................................................................................118
READKEY( ) ....................................................................................................118
READMODAL( )..............................................................................................119
READVAR( )....................................................................................................119
RECCOUNT( )..................................................................................................119
RECNO( )..........................................................................................................120
RECSIZE( ) .......................................................................................................120
REPLICATE( )..................................................................................................120
RESTSCREEN( )..............................................................................................121
RIGHT( ) ...........................................................................................................121
RLOCK( )..........................................................................................................121
ROUND( ).........................................................................................................122
ROW( )..............................................................................................................122
RTRIM( ) ..........................................................................................................122
SAVESCREEN( ) .............................................................................................123
SCROLL( )........................................................................................................123
SECONDS( ).....................................................................................................123
SELECT( ) ........................................................................................................124
SETCANCEL( ) ................................................................................................124
SETCOLOR( ) ..................................................................................................124
SETCURSOR( )................................................................................................125
SETKEY( )........................................................................................................125
SETPOS( ).........................................................................................................125
SETPRC( ) ........................................................................................................125
SOUNDEX( ) ....................................................................................................126
SPACE( )...........................................................................................................126
SQRT( ).............................................................................................................126
STR( )................................................................................................................127
STRTRAN( ).....................................................................................................127
STUFF( ) ...........................................................................................................127
SUBSTR( ) ........................................................................................................128
TIME( ) .............................................................................................................128
TONE( ) ............................................................................................................128
TRANSFORM( )...............................................................................................129
TYPE( ) .............................................................................................................129
UPDATE( ) .......................................................................................................129
UPPER( )...........................................................................................................130
USED( ).............................................................................................................130
VALL( ).............................................................................................................130
VALTYPE( ) .....................................................................................................131

GEEK BRASIL http://www.geekbrasil.com.br

Clipper 5.2 Comandos e Funes

VERSION( )......................................................................................................131
WORD( )...........................................................................................................131
YEAR( ) ............................................................................................................132

GEEK BRASIL http://www.geekbrasil.com.br

Clipper 5.2 Comandos e Funes

Comandos da Linguagem Clipper 5.2


?/??
ou

Propsito:
Sintaxe:

Mostrar um ou mais valores na


impressora.
?/?? <Lista de expresses>

console (vdeo)

Exemplo:
CLEAR
/ / limpa a tela
? Exemplo do comando ?
/ / exibe a informao no vdeo
? date ( )
/ / exibe a data ( nova linha )
? a data de hoje ..:
?? date ( )
/ / exibe na mesma posio anterior do cursor

@... BOX

Propsito:
Sintaxe:

final>,

Construir um box (caixa) na tela.


@ <Lin inicial>,<Col inicial>, <Lin final>, <Col
BOX <Cadeia>

Exemplo:
LOCAL C,L
/*

MODULO :
FUNO:

M.PRG
ACESSAR TODOS OS PROGRAMAS

*/
SAVE SCREEN TO TECLADOS
CLEAR
SET DATE BRIT
SET CONFIRM ON
SET DELETE ON
DO WHILE .T.
CLEAR
SET WRAP ON
SET MESSAGE TO 23 CENTER
SET COLOR TO B/W
REBOX=CHR (201) +CHR (205) +CHR (187) +CHR (186) +;
CHR (188) +CHR (205) +CHR (200) +CHR (186)
PRIVATE=EMPRESA:= FACULDADES REUNIDAS LTDA
L = 08
C = 22
CLEAR

GEEK BRASIL http://www.geekbrasil.com.br

10

Clipper 5.2 Comandos e Funes

@ 00,00,03,39 BOX RETBOX


@ 00,40,03,79 BOX RETBOX
@ 04,00,21,79 BOX RETBOX+CHR (177)
@ 22,00,24,79 BOX RETBOX
@ 01,02 SAY EMPRESA
@ 01,42 SAY CONTROLE DE FACULDADE
@ 01,70 SAY DATE( )
@ 02,42 SAY MODULO PRINCIPAL
@ 02,70 SAY TIME ( )
@ 23,02 SAY MENSAGEM
@ L-1,C-2,L+7,C+35 BOX RETBOX+CHR(255)
SET COLOR TO
@ L,C
PROMPT PROCESSAR FACULDADES
@ L+2,C
PROMPT PROCESSAR TABELA DE CURSOS
@ L+4,C
PROMPT PROCESSAR ALUNO
@ L+6,C
PROMPT VOLTAR AO D.O.S.
MENU TO OPC
DO CASE
CASE OPC = 1
DO MENUFACU
CASE OPC = 2
DO MENUCURS
CASE OPC = 3
DO MENUALUN
OTHERWISE
RESTORE SCREEN FROM TELA TECLADOS
CANCEL
ENDCASE
ENDDO

@ . . . CLEAR
>

Propsito:
Sintaxe:

CLEAR

Apagar (limpar) apenas uma rea especfica da tela.


@
< Lin
inicial >,
< Col
inicial
[TO<Lin final>,<Col final>]

Exemplo:
SET COLOR TO B+/W
/ / muda a cor
CLS
// equivalente a CLEAR, ou seja limpa toda a
tela
SET COLOR TO W+/N
/ / estabelece um novo padro de
cor
@ 10,10 CLEAR TO 20,20
/ / limpa uma regio da
tela
@ 10,10 TO 20,20 DOUBLE
/
/
desenha
uma
moldura
(quadro)

GEEK BRASIL http://www.geekbrasil.com.br

11

Clipper 5.2 Comandos e Funes

@. . . SAY. . . GET
Propsito:

dados),
SAY>] ]

Sintaxe:

Criar e executar um novo objeto GET (entrada de


colocando-o em exibio na tela.
@

<linha>, < coluna> [ SAY

<exp> [ <mascara

[WHEN<condio>]
[RANGE <inicial>,<final>]
[VALID <condio> ]

Exemplo:
LOCAL VNOME :=SPACE(30) , VSALARIO : = 0
/ / define inicia
variveis
:
:
// formata a digitao para maisculas
@ 12,10 SAY NOME DO FUNCIONRIO.....: GET VNOME PICT @!
// edita os nmeros no formato europeu
@ 14,10 SAY SALRIO MENSAL: GET VSALARIO PICT @E 999,999,999.99
VDATA := DATE( ) // cria a varivel data contendo o DD/MM/AA
// contido no sistema operacional neste exemplo
// assumida inicialmente a data do sistema para
// que o usurio no necessite preencher o campo,
// mas caso a data oferecida pelo programa no
// seja a correta basta que o usurio pressione
// qualquer tecla, que no sejam as teclas de
// movimentao, que a data apagada, podendo
// assim o usurio escrever a data que desejar.
@ 16,10 SAY ADMISSO..: GET VADATA PICT @K
READ
// executa os gets pendentes
VENDERECO : = SPACE(35)
// permite a edio do endereo, cujo tamanho de
// de 35 posies, em uma rea da tela de apenas 20 posies,
// rolando no sentido horizontal o que no couber no
20
// espaos determinados por PICTURE @s20.
@ 18,10 SAY ENDEREO..: GET VENDERECO PICTURE @ 20
READ
// executa o get pendente.
VCPF : = SPACE(14)
@ 10,15 SAY C.P.F....: GET VCPF PICTURE 999.999.999-9
READ
VNOME : = SPACE(15)
// equivalente picture @!
@ 11,15 SAY NOME.....: GET VNOME PICTURE !!!!!!!!!!!!!!!

GEEK BRASIL http://www.geekbrasil.com.br

12

Clipper 5.2 Comandos e Funes


VCODIGO : = 0
// os pontos sero editados, porem no sero gravados na
// varivel.
@ 12,15 SAY CDIGO....: GET VCODIGO PICTURE @R 99.999.999
READ
VALORI : = 0
// ser aceito na digitao um valor que esteja compreendido
// entre 0 e 1000.
@ 15,15 SAY VALOR....: GET VALORI PICT 9999 RANGE (0,1000)
READ
VALORII : = 0
// aceita apenas valores positivos
@ 16,50 SAY VALOR....: GET VALORII VALID (VALORII > 0)
READ

@. . . PROMPT
Propsito:
Sintaxe:

MESSAGE

Montar um menu de opes selecionveis na tela.


@
< linha >,
< coluna >< opo >
<mensagem>]

Exemplo:
Local OPC : = 1
SET WRAP ON

// habilita a rolagem da barra entre os extremos


// do menu
SET MESSAGE TO 23 CENTER
// determina a sada de mensagens da
// linha 23 da tela
DO WHILE .T.
CLEAR
// LIMPA A TELA
// cria variveis para facilitar as coordenadas do
menu
L: = 8
C: = 32
// montar a tela
@ 01,01 TO 24,79 DOUBLE
@ 02,02 TO 04,78
@ 03,01 SAY ALT CONTROL INFORMTICA LTDA.
@ 03,60 SAY DATE( )
@ 03,70 SAY TIME( )
// detalha o menu de barras
@ L,C
PROMPT INCLUSO
MESSAGE INCLUSO DE DADOS
@ L+1,C
PROMPT ALTERAO
MESSAGE ALTERAO DE DADOS
@ L+2,C
PROMPT CONSULTA
MESSAGE CONSULTA DE DADOS
GEEK BRASIL http://www.geekbrasil.com.br

13

Clipper 5.2 Comandos e Funes

@
@
@
@

L+3,C
L+4,C
L+5,C
L+6,C

PROMPT EXCLUSO
MESSAGE
PROMPT RELATRIOS
MESSAGE
PROMPT UTILITRIOS MESSAGE
PROMPT F I M
MESSAGE
// executa o menu e controla

EXCLUSO DE DADOS
RELATRIOS DO SISTEMA
UTILITRIOS DO SISTEMA
RETORNO AO DOS
a barra

MENU OPC
DO CASE
// faca os casos
CASE OPC = 1
DO PROG1
CASE OPC = 2
DO PROG2
CASE OPC = 3
DO PROG3
CASE OPC = 4
DO PROG4
CASE OPC = 5
DO PROG5
CASE OPC = 6
DO PROG6
CASE OPC = 7
CANCEL
// cancela a execuo do programa
ENDCASE
INKEY(0)
// aguarda QQ tecla
ENDDO

@. . . TO

Propsito:

coordenadas
<colunaF>

Sintaxe:

Desenha um quadro (moldura) a


especficas da tela.
@
<linhaI> ,
<colunaI > TO

partir

de

<linhaF>,

[DOUBLE]

Exemplo:
SET COLOR TO B+/N
@ 10,10 CLEAR TO 20,20
@ 10,10 TO 20,20 DOUBLE

ACCEPT

Propsito:

Cria uma entrada de dados via teclado e armazenar


contedo digitado em uma varivel (tipo caracteres).

GEEK BRASIL http://www.geekbrasil.com.br

14

Clipper 5.2 Comandos e Funes

Exemplo:

Sintaxe:

ACCEPT [<mensagem de sada>] TO <var>.

Local Vnome
CLEAR
// limpa a tela
ACCEPT Digite o nome....: TO VNOME
? NOME QUE VOC DIGITOU FOI....:, VNOME

APPEND BLANK
Propsito:

dados

Sintaxe:

Criar (inserir) um registro em branco no


aberto na rea corrente de trabalho.

banco de

APPEND BLANK

Exemplo:
Local Codvar, OP
/*
NOME DO PROGRAMA: CADMULT1.PRG
AUTOR : GORKI STARLIN
FUNO: ESTE MODULO ANEXA DADOS NO ARQUIVO PAGAMENTO
*/
USE FOLHA INDEX CODX,NOMEX
DO WHILE .T.
// lay out
CLEAR
SET COLOR TO W+/N
SET COLOR TO
@ 01,01 TO 24,79 DOUBLE
@ 02,02 TO 04,78
@ 03,03 SAY SRIOS INFORMTICA
@ 03,60 SAY ATE( )
@ 03,70 SAY TIME( )
// criar variveis
CODVAR
= 0
SETORVAR
= 0
SALARIOVAR = 0
NOMEVAR
= SPACE(35)
CARGOVAR
= SPACE(15)
ATIVOVAR
= (.T.)
DATAVAR
= CTOD ( / / )
// entrada de dados

GEEK BRASIL http://www.geekbrasil.com.br

15

Clipper 5.2 Comandos e Funes


@ 06,10 SAY ** CADASTRAMENTO DE FUNCIONRIOS **
@ 08,10 SAY CDIGO...........: GET CODVAR PICTURE 9999
READ
IF CODVAR = 0
// verifica se o usurio no digitou o cdigo
OP: = S
// cria a varivel
OP
@ 21,15 SAY SAI DESTE MODULO.(S/N)..: GET OP PICT A
READ
IF OP = S
// verifica a resposta do usurio
RETURN
// retorne
ENDIF
LOOP

// sobe a execuo para linha do DO WHILE


// fim do se
SEEK CODVAR
// pesquisa no ndice o contedo da varivel
// CODVAR
IF EOF( )
// se no existe
APPEND BLANK
// tenta criar um registro em branco
// entra com o restante dos dados do funcionrio
@ 10,10 SAY NOME FUNCIONRIO..: GET NOMEVAR PICTURE @!
@ 12,10 SAY SETOR TRABALHO....: GET SETORVAR PICT @9
@ 14,10 SAY CARGO FUNCIONAL...: GET CARGOVAR PICT @!
@ 16,10 SAY SALRIO...........: GET SALARIOVAR PICT 9999999.99
@ 18,10 SAY FUNCIONRIO ATIVO.: GET ATIVOVAR
@ 20,10 SAY DATA ADMISSO.....: GET DATAVAR
READ
// grava os dados no registro em branco
REPLACE COD WITH CODVAR
REPLACE NOME WITH NOMEVAR
REPLACE SETOR WITH SETORVAR
REPLACE CARGO WITH CARGOVAR
REPLACE ATIVO WITH ATIVOVAR
REPLACE DTADM WITH DATAVAR
REPLACE SALRIO WITH SALARIOVAR
@ 21,20 SAY ** CADASTRO **
WAIT
// aguarda QQ tecla
COMMIT
// atualiza fisicamente o registro
ELSE
// se no
@ 21,20 SAY ** REGISTRO J CADASTRADO **
WAIT
// aguarda QQ tecla
ENDIF
ENDDO
ENDIF

APPEND FROM
Propsito:

o
de
<campos>]

Sintaxe:

Anexa registro de um arquivo especificado para


arquivo que se encontra aberto na rea corrente
trabalho.
APPEND
FROM
[<escopo>]
[
FIELDS
[FROM <arquivo>]

GEEK BRASIL http://www.geekbrasil.com.br

16

Clipper 5.2 Comandos e Funes

[FOR <condio>] [WHILE <condio>]


[SDF/DELIMITED]
[WHITH BLANK / <delimitador>]
Exemplo:
USE FOLHA
APPEND FROM COPIAF FOR .NOT. DELETED( )
// copia apenas os
//registros no marcados
? termino da copia

AVERAGE

Propsito:

de

Sintaxe:

Calcular a mdia aritmtica de campos ou expresses


arquivos de dados.
AVERAGE <campos> TO <vars> [<escopo>]
[FOR<condio>] [WHILE <condio>]

Exemplo:
USE FOLHA
// abre o arquivo de dados
AVERAGE SALRIO, COMISSO TO vcom
// calcula e armazena nas
// variveis
? media salarial....:+str(vsal)
? media das comisses...:+str(vcom = A
// calcula a media
// salarial, armazenando o
// resultado na varivel VSAL,
// porm somente dos funcionrios
// que trabalhem no setor A.

BEGIN SEQUENCE
Propsito:
Sintaxe:

Define uma seqncia de comandos para uma BREAK.


BEGIN SEQUENCE
. . . COMANDOS
[ BREAK [<expresso>] ]

. . . COMANDOS

[ RECOUVER [ USING <varivel> ] ]

. . . COMANDOS

GEEK BRASIL http://www.geekbrasil.com.br

17

Clipper 5.2 Comandos e Funes

END [ SEQUENCE ]

Exemplo:
Local Contador, Intervalo
CONTADOR :=0
INTERVALO :=0
DO WHILE CONTADOR < 50
BEGIN SEQUENCE
CONTADOR++
IF CONTADOR > INTERVALO
BREAK CONTADOR
ENDIF
RECOUVER USING CONTADOR
? BLOCO DEFINIDO, CONTADOR =+STR (CONTADOR)
INTERVALO+ = 5
END SEQUENCE
? SAI FORA DO BEGIN SEQUENCE
ENDDO
? LOOP TERMINADO

CALL

Propsito:

de

Sintaxe:

CANCEL

Propsito:

sendo

Sintaxe:

CLEAR ALL
memria

Executa uma rotina construda em outra linguagem


programao.
CALL <rotina> WITH <parmetros>

Interromper a execuo do
executado.

programa

que

est

CANCEL

Propsito:

Fecha

Sintaxe:

CLEAR ALL

todos os arquivos abertos e libera da


todas as variveis (Pblicas e Privadas).

GEEK BRASIL http://www.geekbrasil.com.br

18

Clipper 5.2 Comandos e Funes

CLEAR GETS
Propsito:
Sintaxe:

Libera todos os Gets pendente.


CLEAR GETS

CLEAR MEMORY
Propsito:

da

Sintaxe:

Libera todas as variveis Pblicas e Privadas


memria.
CLEAR MEMORY

CLEAR SCREEN
Propsito:
Sintaxe:

Limpa a tela sem liberar os Gets pendentes.


CLEAR SCREEN

CLEAR TYPEAHEAD
Propsito:

(fila)

Sintaxe:

Libera todas as pendncias de teclagens do


do teclado.

Buffer

CLEAR TYPEAHEAD

Exemplo:
/* Neste exemplo antes de folhear o banco
BROWSE( ) garantido que no existir
teclas do buffer do teclado, pois o mesmo
CLEAR TYPEAHEAD.*/
BROWSE (5, 5, 23, 75)
// folheia

CLOSE

Propsito:

encontrem

Sintaxe:

de dados com a funo


nenhuma pendncia de
ser limpo atravs de
os registros do B.D.

Fechar arquivos, de qualquer


devidamente abertos.
CLOSE <rea>< tipo>

GEEK BRASIL http://www.geekbrasil.com.br

tipo,

que

se

19

Clipper 5.2 Comandos e Funes

Exemplo:
CLOSE ALL

// fecha todos os arquivos, de qualquer tipo


// abertos em todas as reas.
CLOSE folha INDEXES
// fecha todos os arquivos de ndices
// que estiverem abertos na rea
//(ALIS) FOLHA.

COMMIT

Propsito:

dos

Sintaxe:

Realiza a gravao em discos de todos


arquivos abertos.

os

Buffers

COMMIT

Exemplo:
/*
NOME DO PROGRAMA: CADMONO1.PRG
AUTOR : GORKI STARLIN
FUNO: ESTE MODULO ANEXA DADOS NO ARQUIVO PAGAMENTO
*/
SET DATE TO BRIT
// pe as datas no formato DD/MM/AA
CLEAR
// abre o arquivo e o incide
USE FOLHA INDEX CODX,NOMEX
// abre o arquivo de dados e o de ndice
DO WHILE .T.
CLEAR
SET COLOR TO
//pe cor padro
// lay out
@ 01,01 TO 24,79 DOUBLE
@ 02,02 TO 04,78
@ 03,03 SAY ALT CONTROL INF
@ 03,60 SAY DATE( )
@ 03,70 SAY TIME( )
// CRIAR VARIVEIS
CODVAR := SETORVAR := SALARIOVAR := 0
NOMEVAR
:= SPACE(35)
CARGOVAR
:= SPACE(15)
ATIVOVAR
:= (.T.)
DATAVAR
:= CTOD ( / / )
// entrada de dados
@ 06,10 SAY ** CADASTRAMENTO DE FUNCIONRIOS **
@ 08,10 SAY CDIGO...........: GET CODVAR PICTURE 9999
READ
IF CODVAR = 0
// verifica se o usurio no digitou o cdigo
OP := S
// cria varivel OP
// pergunta se o usurio deseja sair do programa

GEEK BRASIL http://www.geekbrasil.com.br

20

Clipper 5.2 Comandos e Funes


@ 21,15 SAY SAI DESTE MODULO.(S/N)..: GET OP PICT A
READ
IF OP = S
// verifica a resposta do usurio
RETURN
// retorne
ENDIF
LOOP
// sobe a execuo para linha do DO WHILE
ENDIF
// fim do se
SEEK CODVAR
// pesquisa no ndice o contedo da varivel
// varivel CODVAR
IF EOF( )
// se NO EXISTE
// entra com o restante dos dados do FUNCIONRIO
@ 10,10 SAY NOME FUNCIONRIO..: GET NOMEVAR PICTURE @!
@ 12,10 SAY SETOR TRABALHO....: GET SETORVAR PICT @9
@ 14,10 SAY CARGO FUNCIONAL...: GET CARGOVAR PICT @!
@ 16,10 SAY SALRIO...........: GET SALARIOVAR PICT 9999999.99
@ 18,10 SAY FUNCIONRIO ATIVO.: GET ATIVOVAR
@ 20,10 SAY DATA ADMISSO.....: GET DATAVAR
READ
APPEND BLANK
// criar um registro em branco
// grava os dados no registro em branco
REPLACE COD WITH CODVAR
REPLACE NOME WITH NOMEVAR
REPLACE SETOR WITH SETORVAR
REPLACE CARGO WITH CARGOVAR
REPLACE ATIVO WITH ATIVOVAR
REPLACE DTADM WITH DATAVAR
REPLACE SALRIO WITH SALARIOVAR
COMMIT
// salva todo o contedo do buffers de arquivos,
// armazenando-o em disco.
@ 21,20 SAY ** CADASTRO **
INKEY(0)
// aguarda QQ tecla
ELSE
// se no
@ 21,20 SAY ** REGISTRO J CADASTRADO **
INKEY(0)
// aguarda QQ tecla
ENDIF
// fim do se
ENDDO
// fim do faa enquanto

CONTINUE
comando

Propsito:

Continua

Sintaxe:

LOCATE.
CONTINUE

pesquisa

iniciada

partir

do

Exemplo:
CLEAR
USE FOLHA
// abre o arquivo de dados
LOCATE FOR SETOR = A
DO WHILE FOUND( )
// faa enquanto existir

GEEK BRASIL http://www.geekbrasil.com.br

21

Clipper 5.2 Comandos e Funes

? NOME, SALRIO, SETOR


// mostra os campos
CONTINUE
// continua a pesquisa
ENDDO
// fim do faa enquanto

COPY FILE

Propsito:

seu

Sintaxe:

Copiar o contedo de um arquivo, independente do


tipo, para outro arquivo.
COPY FILE <arquivo> TO <cpia>

Exemplo:
COPY FILE FOLHA.DBF TO FCOPIA.DBF
COPY FILE FOLHA.DBF TO FCOPIA.DBT
COPY FILE MENU.PRG TO A:MENU.PRG

COPY STRUCTURE
Propsito:

rea

Sintaxe:

Copiar apenas a estrutura do arquivo aberto na


corrente de trabalho.
COPY STRUCTURE TO <copia> [FIELDS <campos>]

Exemplo:
USE FOLHA
// abre o arquivo de dados
COPY STRUCTURE TO TFOLHA
// cria o arquivo TFOLHA.DBF com a
// mesma estrutura do arquivo FOLHA.DBF.
COPY STRUCTURE TO TFOLHA FIELDS NOME,SALARIO,COD
// cria o arquivo
// TFOLHA contendo uma estrutura de apenas
// trs campos.

COPY STRUCTURE EXTENDED

Propsito:
Sintaxe:

Copia para outro arquivo informaes referentes


estrutura de um arquivo de dados aberto.
COPY STRUCTURE EXTENDED TO <arquivo>

Exemplo:
USE FOLHA
// abre o arquivo de dados FOLHA.DBF
COPY STRUCTURE EXETENDED TO EFOLHA
// copia sua estrutura para o
// arquivo EFOLHA.DBF
USE EFOLHA
// abre o arquivo contendo a estrutura de FOLHA.DBF

GEEK BRASIL http://www.geekbrasil.com.br

22

Clipper 5.2 Comandos e Funes

LIST FIELD_NAME, FIELD_TYPE, FIELD_LEN, FIELD,DECX

COPY TO

Propsito:

outro

Sintaxe:

// lista os
// registros

Copia registros de bancos de dados (.DBF)


arquivo (.DBF ou no formato ASCII).

para

COPY TO [ FIELDS <campos> ] TO <arquivo>


[<escopo>] [FOR <condio>]
[SDF/DELIMITED [ WITH BLANK / delimitador]

Exemplo:
USE FOLHA
// abre o arquivo FOLHA.DBF
COPY TO CFOLHA
// copia os registros para o arquivo CFOLHA.DBF
COPY TO FOLHA FOR SETOR = A
//
somente
sero
copiados
os
registros
// que possuem a letra A inicial no
// campo SETOR
COPY TO CFOLHA RECORD 3
// copia apenas o registro 3
COPY TP CFOLHA DELIMITED
// copia para o arquivo CFOLHA.TXT
// no formato delimitado
TYPE CFOLHA.TXT
// mostra o contedo do arquivo CFOLHA.TXT

COUNT
registos.

Propsito:

Calcular o totalizante referente quantidade de

Sintaxe:

COUNT TO <var> [<escopo>] [FOR <condio>]


[ WHILE <condio>]

Exemplo:
USE FOLHA
COUNT TO RESULTADO
? RESULTADO
COUNT TO RESULTADO2 FOR SETOR = A
COUNT TO RESULTADO3 FOR SETOR = A .AND. CARGO = ESCRITURARIO
?RESULTADO, RESULTADO2, RESULTADO3

CREATE

Propsito:

Criar um arquivo de estrutura (.DBF) vazio.

GEEK BRASIL http://www.geekbrasil.com.br

23

Clipper 5.2 Comandos e Funes

Sintaxe:

CREATE <arquivo>

Exemplo:
CREATE TESTRU
APPEND BLANK

// cria o arquivo de estrutura


// cria um registro em branco para descrio de
// um campo da estrutura.
REPLACE ;
// define o:
FIELD_NOME WITH COD
;
// nome do campo
FIELD_TYPE WITH C
;
// tipo do campo
FIELD_LEN WITH 5
;
// tamanho do campo
FIELD_LEN WITH 0
;
// nmero de casas decimais
CLOSE // fecha o arquivo de estruturas
CREATE FOLHA TESTRU
// declara o comando CREATE FROM para
criar
// um novo arquivo .DBF a partir do
arquivo
// de estrutura TESTRU
DIR *.DBF
// mostra todos os arquivos .DBF do diretrio

CREATE FROM
Propsito:

arquivo

Sintaxe:

Criar um arquivo de dados (.DBF) a partir de um


de estruturas.
CREATE FROM <novo> FROM <arquivo_estrutura>

Exemplo:
CREATE TESTRU
APPEND BLANK

// cria o arquivo de estrutura


// cria um registro em branco para descrio de
// um campo da estrutura.
REPLACE ;
// define o:
FIELD_NOME WITH COD ; // nome do campo
FIELD_TYPE WITH C
; // tipo do campo
FIELD_LEN WITH 5
; // tamanho do campo
FIELD_LEN WITH 0
; // numero de casas decimais
CLOSE // fecha o arquivo de estruturas
CREATE FOLHA FROM TESTRU
// declara o comando CREATE FROM
para
// criar um novo arquivo .DBF a partir do
// arquivo de estrutura TESTRU
DIR *.DBF
// mostra todos os arquivos .DBF do diretrio

DECLARE

Propsito:

Declara variveis ou vetores privates no programa.

GEEK BRASIL http://www.geekbrasil.com.br

24

Clipper 5.2 Comandos e Funes

Sintaxe:

DELETE

Propsito:
Sintaxe:

Exemplo:

DECLARE <identificador> [:= <valor>]

Marcar um registro para ser apagado.


DELETE <escopo> [FOR <condio>]
[ WHILE <condio>]

USE FOLHA
DELETE ALL
//
DISPLAY ALL NOME, SALRIO,
INKEY(0)
SET DELETE ON
//
DISPLAY ALL NOME, SALRIO,
INKEY(0)
RECALL ALL
//
DISPLAY ALL NOME, SALRIO,
INKEY(0)
DELETE FOR SETOR = A
DISPLAY ALL NOME, SALRIO,
? FIM

DELETE FILE
Propsito:
Sintaxe:

marca TODOS os registros


COD
// mostra os registros
filtra os registros marcados
COD
// mostra os registros
recupera todos os registros
COD
// mostra os registros
// marca os funcionrios do setor A
COD
// mostra os registros

Apagar um arquivo, de qualquer tipo, do disco.


DELETE FILE <arquivo>

Exemplo:
IF FILE (FOLHA.DBF)
se existir FOLHA.DBF
DELETE FILE FOLHA.DBF
? ARQUIVO FOI APAGADO
ENDIF
DIR *.DBF
// mostra todos os arquivos com a extenso .DBF

DIR

Propsito:
Sintaxe:

Mostra a lista dos arquivos contidos em um diretrio.


DIR [<drive>] [<caminho>] [<mscara>]

Exemplo:
GEEK BRASIL http://www.geekbrasil.com.br

25

Clipper 5.2 Comandos e Funes

DIR
DIR *.*
DIR *.prg
DIR a: *.*

//
//
//
//

mostra
mostra
mostra
mostra

DISPLAY

Propsito:
Sintaxe:

todos
todos
todos
todos

os
os
os
os

arquivos (BDF) e seus dados


arquivos do diretrio
programas do diretrio
arquivos do diskete do drive A

Mostra registros de um arquivo de dados na console.


DISPLAY <campos> [TO PRINTER]
[TO FILE <nome_arquivo>]
[OFF] [<escopo>] [FOR <condio>]
[WHILE <condio>]

Exemplo:
USE FOLHA
// abre o arquivo de dados
DISPLAY COD, NOME, SALRIO ALL
// mostra todos os registros
DISPLAY COD, NOME, SALRIO
//
mostra
somente
o
registro
corrente
DISPLAY COD, NOME, SALRIO ALL FOR SETOR = A
//
mostra
os
registros
// dos funcionrios que
// que trabalham no setor A

DO

Propsito:
Sintaxe:

Executa um programa ou um procedimento.


DO <nome> [WITH <lista de parmetros>]

Exemplo:
:
IF OP = 2
DO PROG1
ELSEIF OP =3
DO PROG2
ELSE
DO PROG4 WITH NOME
ENDIF
:
:

GEEK BRASIL http://www.geekbrasil.com.br

26

Clipper 5.2 Comandos e Funes

DO CASE

Propsito:

apenas

Sintaxe:

Criar uma estrutura de testes condicionais,


uma executada.

onde

DO CASE
CASE <condio>
. . . . instrues
[CASE <condio2>]
. . . . instrues
[OTHERWISE]
. . . . instrues
END[CASE]

Exemplo:
DO CASE
CASE OP = 2
DO PROG1
CASE OP = 3
DO PROG2
OTHERWISE
RETURN
ENDCASE

DO WHILE

Propsito:

uma

Sintaxe:

Executa uma
estrutura
condio for verdadeira.

de

controle

enquanto

DO WHILE <condio>
. . . . <instrues>
[EXIT]
. . . . <instrues>
[LOOP]
. . . . <instrues>
END[DO]

Exemplo:
:
:
VARSAI :=
DO WHILE VARSAI .NOT. $ SN

GEEK BRASIL http://www.geekbrasil.com.br

// faa enquanto VARSAI no


// contiver S ou N

27

Clipper 5.2 Comandos e Funes

// pergunta dirigida ao operador


@ 21,20 SAY SAIR DESTE MODULO (S/N)..: GET VARSAI PICT !
READ
ENDDO
// fim do faa enquanto
:
:

EJECT

Propsito:

de

Sintaxe:

Avana a pgina da impressora posicionando a cabea


impresso no local de inicializao da prxima pgina.
EJECT

Exemplo:
LOCAL L, PG
USE FOLHA
L:= 0
// inicializa uma varivel para controle da quantidade de
// linhas impressas
PG:= 0
GO TOP
// v para o inicio do arquivo
SET PRINT ON
// liga a sada comum para a impressora
SET CONSOLE OFF
// desabilita a sada da console
DO WHILE .not. EOF( )
// faa enquanto no fim do arquivo.
IF L = 0 .OR. L=60
// se L for 0 ou 60
EJECT
PG++
// acumula +1 na varivel
? RELATRIO DE FUNCIONRIOS
?
? Pagina:+str(pg)
replicate (=, 78)
// traa uma linha
1 := 7
ENDIF
? COD, NOME, SALRIO
// imprime os campos
SKIP
// pule para o prximo registro
L++
ENDDO
// fim do faa enquanto
:
:

ERASE

Propsito:

Apagar um arquivo, de qualquer tipo, do disco.

GEEK BRASIL http://www.geekbrasil.com.br

28

Clipper 5.2 Comandos e Funes

Sintaxe:

ERASE <arquivo>

Exemplo:
IF FILE (FOLHA.DBF)
// se existir FOLHA.DBF
ERASE FOLHA.DBF
? ARQUIVO FOI APAGADO
ENDIF
DIR *.DBF
// mostra todos os arquivos com a extenso . DBF

EXTERNAL

Propsito:

Sintaxe:

Declarar uma lista de smbolos ou rotinas externas para


linker.
EXTERNAL <lista>

Exemplo:
EXTERNAL funes
:
:

EXIT PROCEDURE
Propsito:
Sintaxe:

Declara um procedimento de sada.


EXIT PROCEDURE <nome da rotina/procedimento>
[FIELDS <lista de smbolos> [IN <alias>]]
[MENVAR <lista de smbolos>]
:
<expresses executveis>
:
[return]

Exemplo:
// COMPILE ESTE PROGRAMA COM /N
ANNOUNCE MEUSYSTEMA
STATIC nSEGUNDOS
PROCEDURE PRINCIPAL( )
nSEGUNDOS := SECONDS( )
AEVAL (ASORT (DIRECTORY ( *.*)),;
{|Anomes | QQUT (Anomes[1} ) } )
return // termina o programa.

GEEK BRASIL http://www.geekbrasil.com.br

29

Clipper 5.2 Comandos e Funes

EXIT PROCEDURE SADA( )


?
? TEMPO:
?? SECONDS ( ) - nSEGUNDOS
RETURN

FIELD

Propsito:

dados
Exemplo:

Sintaxe:

/ / rotina de sada do programa

/ / finaliza definitivamente

Especifica nomes de campos


(.DBF).
FIELD <lista [IN <apelido>]

de

arquivos de

FIELD NOME,COD,SALARIO INTO FOLHA


FIELD CODCARGO,CREDITOS INTO CARGOS
USE FOLHA ALIAS FOLHA
USE CARGOS ALIAS FOLHA
<instrues>
:
:
? cod,codcardi
// equivalente a FOLHA-> COD,CARGOS -> CODCARGO
? nome
// equivalente a folha -> nome
:
:

FIND

Propsito:

uma

Sintaxe:

Pesquisa no primeiro ndice, o registro que possua


chave especificada.
FIND <string>

Exemplo:
USE FOLHA INDEX CODX, NOME // abre o arquivo de dados folha.dbf
// e seus respectivos arquivos de
// ndices CODX, NOMEX
FIND 3020
// pesquisa o cdigo = 3020
IF FOUND( )
// se existir
DISPLAY COD,NOME,SALARIO
ENDIF
CODVAR := SPACE(4)
@ 10,20 SAY DIGITE O CDIGO...: GET CODVAR PICTURE 9999
READ
FIND CODVAR
// pesquisa o contedo da varivel

GEEK BRASIL http://www.geekbrasil.com.br

30

Clipper 5.2 Comandos e Funes

IF FOUND( )
// se existir
DISPLAY COD,NOME,SALARIO
ENDIF

FOR. . . NEXT
Propsito:

determinado

Sintaxe:

Executa uma
estrutura
nmero de vezes.

de

controle,

um

FOR <contador> = <inicio> TO <fim> STEP


<passo>
...... <instrues>
[EXIT]
...... <instrues>
[LOOP]
NEXT

Exemplo:
LOCAL TREGISTROS
USE CADASTRO
COUNT TO TRESGISTROS
GO TOP
FOR I = 1 TO TREGISTROS STEP 1
DISPLAY NOME, ENDEREO, TEL
// exibe o registro corrente
SKIP
// pula para o prximo registro
NEXT
? FIM

FUNCTION

Propsito:
Sintaxe:

Cria (declara) uma funo definida pelo usurio (UDF).


[STATIC] FUNCTION <FUNO> [(PARAMENTRO1,..)]
[LOCAL <identificador>,...]
[FIELD <lista de identificador> [IN <apelido>]
MEMVAR <lista de identificadores>
:
:
<instrues>
:
:
RETURN [<informao>]

Exemplo:

GEEK BRASIL http://www.geekbrasil.com.br

31

Clipper 5.2 Comandos e Funes

LOCAL VAR1, VAR2, VAR3, X


var1 := 3
var2 := 7
var3 := 100
:
? soma (var3,var2)
// resultado : 107 (na tela)
? soma (var1,var2)
// resultado : 10 (na tela)
x:= soma(var3,300)
// resultado : 400 (na varivel)
:
:
:
FUNCTION SOMA ( P1, P2 )
// declara a funo e recebe os
// parmetros
R := P1+P2
// soma os parmetros
RETURN R
// retorna a execuo para rotina que chamou
// acompanhada do valor contido na varivel R,

GO
um

Propsito:
Sintaxe:

Desloca o ponteiro interno do arquivo de dados para


determinado registro.
GO [TO] <registro> | BOTTOM | TOP

Exemplo:
USE FOLHA
GO 6
// v para o registro (record) numero 6
DISPLAY NOME, COD, SALRIO
GO TOP
// v para o inicio do arquivo
DISPLAY NOME, COD, SALRIO
GO BOTTOM // v para o fim do arquivo
DISPLAY NOME,COD,SALARIO

IF
expresso

Propsito:
Sintaxe:

Executa
instrues
somente
condicional for verdadeira.

quando

uma

IF <condio>
<instrues>
[ELSEIF < condio2>
<instrues>
[ELSE]

GEEK BRASIL http://www.geekbrasil.com.br

32

Clipper 5.2 Comandos e Funes

<instrues>
END[IF]

Exemplo:
LOCAL MEDIA:= 0
CLEAR
@ 10,10 SAY DIGITE A MEDIA DO ALUNO...:GET MEDIA
READ
IF MEDIA <5
?
REPROVADO
ELSEIF MEDIA = 5
?
RECUPERAO
ELSE
?
APROVADO
ENDIF
:
:

INIT PROCEDURE
Propsito:

da

Sintaxe:

Especificar uma procedure que ser executada antes


primeira rotina do Programa.
INIT PROCEDURE <nome da rotina/procedimento>
[FIELDS <lista de smbolos> [IN <alias>]]
[LOCAL <smbolos> [:= valor]]
[MEMVAR <lista de smbolos>
<expresses executveis>
:
[Return]

Exemplo:
// COMPILE ESTE PROGRAMA COM /N
ANNOUNCE MEUSYSTEMA
STATIC nSEGUNDOS
PROCEDURE PRINCIPAL( )
AEVAL
(ASCOL (DIRECTORY (*.*) ) ,;
{ | Anomes | QOUT ( Anomes [1] ) } )
RETURN
// termina o programa.
INIT PROCEDURE INICIAL( )
// rotina de inicializao
nSEGUNDOS := SECONDS( )
RETURN
EXIT PROCEDURE SADA( )
// rotina de sada do programa.

GEEK BRASIL http://www.geekbrasil.com.br

33

Clipper 5.2 Comandos e Funes

?
? TEMPO:
?? SECONDS() - nSEGUNDOS
RETURN
// finaliza definitivamente

INDEX

Propsito:

determinado

Sintaxe:

Criar um arquivo de ndice (.NTX) para


banco de dados (.DBF)
INDEX ON <chave> TO <ndice> [UNIQUE]
[FOR <Condio>]

um

Exemplo:
USE CADASTRO
CLEAR
? INDEXANDO
INDEX ON NOME TO INDICE1
// indexa o arquivo pelo nome e
// cria o arquivo que conter o controle de
// ndice INDICE1.NTX
LOCAL VNOME:= SPACE(30)
@ 10,10 SAY DIGITE O NOME..: GET VNOME PICTURE @!
READ
? PESQUISANDO
SEEK VNOME
IF FOUND( )
// se existir
DISPLAY NOME, ENDEREO, CIDADE
// mostra o registro
ENDIF
? REGISTRO NO ENCONTRADO

INPUT

Propsito:

armazena

Sintaxe:

Realizar a entrada de dados de um expresso e


a mesma em uma varivel.
INPUT [<mensagem>] TO <varivel>

Exemplo:
LOCAL VAR
CLEAR
INPUT DIGITE QUALQUER COISA..: TO VAR

GEEK BRASIL http://www.geekbrasil.com.br

34

Clipper 5.2 Comandos e Funes


? VOC DIGITOU...:
?? VAR

JOIN

Propsito:
Sintaxe:

Criar um novo arquivo a partir de outros dois.


JOIN WITH <2 arquivo> TO <novo arquivo>
FOR <condio> [FIELDS <lista de campos>]

Exemplo:
USE VENDAS

// possui os campos cod_vend, cod_produto e


// valor
USE CADVENDEDOR new
// possui os campos cod_vend, nome
JOIN WITH VENDAS TO COMISSO FOR COD_VEND= VENDAS -> COD_VEND;
FILEDS COD_VEND, NOME, VALOR
// ser criado o arquivo COMISSO.DBF com os registros
// lidos dos arquivos e a estrutura deste arquivo ser
// os campos declarados aps o argumento FILEDS.

KEYBOARD

Propsito:

expresso

Sintaxe:

Preencher o buffer
do
teclado
caractere.
KEYBOARD <expresso caractere>

com

uma

Exemplo:
KEYBOARD a
KEYBOARD CHR(65)
KEYBOARD CHR(130)

// resultado:
// resultado:

LABEL FORM
Propsito:

do

Sintaxe:

Executa a sada de etiquetas a partir de um arquivo


formato. .LBL.
LABEL
FORM
<arquivo.LBL>
[TO

PRINTER]

[TO FILE]

GEEK BRASIL http://www.geekbrasil.com.br

35

Clipper 5.2 Comandos e Funes

[<ESCOPO>]

[SAMPLE]

[WHILE

<condio>]
[FOR<condio>]
Exemplo:
USE MALA INDEX NOME
LABEL FORM ETIQUETAS TO PRINTER SAMPLE

LIST

Propsito:
Sintaxe:

Exemplo:
USE MALA
LIST NOME,
LIST NOME,

Lista os registros de arquivos de dados.


LIST<lista exp>
[TO PRINTER]
[TO FILE
<arquivo>]
[<escopo>]
[WHILE<condio>]
[FOR <condio>]
[OFF]

ENDEREO,
ENDEREO,

LOCATE

Propsito:
Sintaxe:

// imprime as etiquetas

CIDADE
CIDADE

TO

PRINTER

// lista impressa

Localizar um registro dentro do banco de dados.


LOCATE
[<escopo>] FOR <condio> WHILE
<condio>

Exemplo:
USE FOLHA
LOCATE FOR NOME =Joo
IF FOUND()
/ / se existir
DISPLAY NOME, SALRIO, SETOR
ELSE
? no localizado
ENDIF

GEEK BRASIL http://www.geekbrasil.com.br

36

Clipper 5.2 Comandos e Funes

LOOP

Propsito:

WHILE,

Sintaxe:

LOCAL

Propsito:
Sintaxe:

Saltar a execuo do programa para a linha


ou FOR.

DO

LOOP

Declarar uma varivel ou matriz como local.


LOCAL<identificador> [:= <inicializador>],...

Exemplo:
LOCAL VAR,VAR2:= 10
//
locais
? VAR2
LOCAL MATRIZ1 [30] [10]

MEMVAR

Propsito:

ou

Sintaxe:

declara

as

variveis

como

// declara a matriz como local

Declara nomes de variveis de memria


Pblicas.
MEMVAR <lista de variveis>

Privadas

Exemplo:
USE MALA
MEMVAR NOME
LOCAL NOME
?
?

:
NOME
MALA NOME

MENU TO

Propsito:
Sintaxe:

// declara como sendo variveis de memria


// declara
como sendo uma varivel de
// memria local
//
mostra o contedo da varivel
// mostra o contedo do campo nome

nome

Executa um menu de barras luminosas.


MENU TO <varivel>

GEEK BRASIL http://www.geekbrasil.com.br

37

Clipper 5.2 Comandos e Funes

NOTE

Propsito:
Sintaxe:

Cria uma linha de comentrio dentro do programa.


NOTE <texto>

Exemplo:
NOTE esta linha no ser copilada, ou seja e apenas um
NOTE
comentrio
? esta linha uma instruo que ser e apenas ser copilada
// esta linha tambm um comentrio
&& tambm um comentrios
/* estas linhas tambm so comentrios
*/

PACK

Propsito:

para

Sintaxe:

Remove (apaga) fisicamente


deleo.

registros

marcados

PACK

Exemplo:
USE MALA
PACK

INDE NOME
// remove fisicamente do arquivo os registros marcados

PARAMETER
Propsito:

de

Sintaxe:

Criar variveis de memria para


parmetros.
PARAMETER <lista de variveis>

o recebimento

Exemplo:
MENSAGEM (5, 5, OI ! )
FUNCTION MENSAGEM( )
PARAMETER LINHA, COLUNA,
@ LINHA, COLUNA
RETURN NIL

SAY

DADO
//recebe valores da rotina
// que chamar esta funo

DADO

GEEK BRASIL http://www.geekbrasil.com.br

38

Clipper 5.2 Comandos e Funes

PRIVATE

Propsito:

sendo

Sintaxe:

Cria e inicializa variveis ou


matrizes
privadas.
PRIVATE <identificador>[:= <inicializador>],

como

Exemplo:
PRIVATE

MATRIZ1

PRIVATE

A,

B,

[20] [30]
C

A:=8
PRIVATE

DATA:=DATE(

PROCEDURE
Propsito:
Sintaxe:

//
//
//
//
//
//
//
//

declara
que a matriz
ser privada
declara que as variveis so
privadas
atribui um valor a
varivel
declara e inicializa a
varivel privada

Cria um procedure e seus parmetros.


[STATIC] PROCEDURE
parmetros)]
[FIELD
<lista

<procedure>
de

[(lista

campos>[IN

<apelidos>]]
[LOCAL
<identificador>
[:= <inicializador>],,,]
[MEMVAR <lista

[STATIC
=

de

identificadores>]

<identificador>
[:

<inicializador],,,]
:
<instrues>
:
[RETURN]

Exemplo:

GEEK BRASIL http://www.geekbrasil.com.br

39

Clipper 5.2 Comandos e Funes

:
:
:
MENSAGEM(20,10,NO ENCONTRADO)
:
:
PROCEDURE MENSAGEM(LINHA, COLUNA,
@ LINHA, COLUNA SAY DADO
RETURN

PUBLIC

Propsito:
Sintaxe:

DADO)

Cria e inicializa variveis e matrizes pblicas.


PUBLIC <identificador>[:= <inicializador>],,,

Exemplo:
PUBLIC MATRIZ3 [48] [10]
//
define
a
matriz
como
publica
PUBLIC A, B, C
// define as variveis como pblicas
:
:
A:=10 // inicializa a varivel

QUIT

Propsito:
Sintaxe:

Termina a execuo do programa.


QUIT

Exemplo:
:
RESPOSTA:=S
@ 20,10 SAY SAIR DESTE PROGRAMA...: GET RESPOSTA PICT !
READ
IF RESPOSTA = S
QUIT
// termina o programa
ELSE
LOOP //sobe a execuo para linha de DO WHILE
ENDIF
:

GEEK BRASIL http://www.geekbrasil.com.br

40

Clipper 5.2 Comandos e Funes

READ

Propsito:

pelo

Sintaxe:

Executar
edio das
comando @.. SAY.. GET.

variveis

especificadas

READ[SAVE]

Exemplo:
LOCAL VNOME, VENDEREO, VSALRIO
VNOME:= SPACE(30)
VENDEREO:= SPACE(35)
VSALRIO:= 0.00
@ 10,10 SAY DIGITE O NOME...: GET VNOME PICT !
@ 12,10 SAY DIGITE O ENDEREO..: GET VENDEREO
@ 14,10 SAY DIGITE O SALRIO...: GET VSALRIO PICT @E 9,999.99
READ
// executa e no final libera os trs GETs
pendentes

RECALL

Propsito:

eliminao

Sintaxe:
[WHILE<condio>]

Recupera
registros
marcados
atravs do comando DELETE.
RECALL

para

<escopo>

[FOR<condio>]

Exemplo:
USE MALA
GOTO 3
IF DELETED(
RECALL
ENDIF

) // se o registro se encontra marcado


// (deletado)
// recupere

GEEK BRASIL http://www.geekbrasil.com.br

41

Clipper 5.2 Comandos e Funes

REINDEX

Propsito:

de

Sintaxe:

Recriar os arquivos de ndices abertos nas reas


trabalho corrente.
REINDEX
[EVAL<Condio>]

[EVERY<nRegistro>]
Exemplo:
USE MALA INDEX INOME, ICOD
REINDEX
/ /
reorganiza
INOME, ICOD
:
:

RELEASE

Propsito:
Sintaxe:

os

arquivos

Libera da memria vrias Pblicas e Privadas.


RELEASE <lista de variveis>
[ALL [LIKE / EXCEPT <eskeleto>] ]

Exemplo:
RELEASE

ALL

LIKE

RELEASE

VNOME

RENAME

Propsito:
Sintaxe:

V*

// libera todas as
variveis
// comeam com a letra
V
// libera a varivel VNOME

que

Renomear um arquivo
RENAME <nome atual> TO <novo nome>

Exemplo:
RENAME
RENAME

ARQ.TXT TO ARQ_NOVO.TXT
MALA.DBF TO POSTAL.DBF

GEEK BRASIL http://www.geekbrasil.com.br

// troca o nome do arquivo

42

Clipper 5.2 Comandos e Funes

REPLACE

Propsito:

uma

Sintaxe:

Substituir o contedo de um campo


expresso.
REPLACE <campo> WITH <expresso>
[FOR <Condio>]
[WHILE <condio>]

por

Exemplo:
USE MALA INDEX ICOD
APPEND BLANK
// cria um registro
REPLACE COD WITH 23, NOME WITH JOO
// preenche os campos
:
:

em

branco

REPORT FORM
Propsito:

ou

Sintaxe:

Realizar a sada de um relatrio para console


impressora.
REPORT FORM <nome do arquivo> [<escopo>]
[TO PRINTER]

[TO FILE <nome>] [FOR <Condio>]


[WHILE <Condio>]
[PLAIN] [HEADING <cabealho>] [NOEJECT]
[SUMMARY]

Exemplo:

USE FOLHA INDEX INOME


REPORT FORM REL1 TO PRINTER

// relatrio impresso dos


// registros
REPORT FORM REL1 TO PRINTER HEADING ALT CONTROL - SETOR 4 ;
FOR SETOR = 4
// imprime somente os funcionrios do setor

REQUEST

Propsito:
Sintaxe:

Declara mdulos a serem chamados.


<mdulos>.

GEEK BRASIL http://www.geekbrasil.com.br

43

Clipper 5.2 Comandos e Funes

RESTORE

Propsito:

(.mem)

Sintaxe:

Carregar variveis
gravadas de um arquivo
do disco.
RESTORE <nome do arquivo> [ADDITIVE]

Exemplo:
A:=4
NOME:=JOO
SAVE TO ARQVAR// salva todas as variveis de memria
// no arquivo ARQVAR.MEM
RELEASE ALL
// apaga todas as variveis
RESTORE FROM ARQVAR
// restaura as variveis do arquivo
ARQVAR.MEM
? A
? NOME

RESTORE SCREEN
Propsito:
Sintaxe:

Restaurar no vdeo uma tela salva anteriormente.


RESTORE SCREEN [FROM <tela>]

Exemplo:
CLEAR
@ 10,10 TO 23,79
@ 15,15 SAY ESTA TELA SER SALVA
SAVE SCREEN TO IMAGEM
INKEY(0)
/ / aguarda uma
tecla
CLEAR
/ / limpa a tela
RESTORE SCREEN FROM IMAGEM
// recupera a tela
// gravada na varivel imagem

RETURN

Propsito:

programa

Sintaxe:

Terminar a execuo de
ou funo do usurio.
RETURN <valor>

GEEK BRASIL http://www.geekbrasil.com.br

uma

procedure,

44

Clipper 5.2 Comandos e Funes

Exemplo:
? SITUAO (3,7,8,10)
FUNCTION SITUAO(N1, N2,
MDIA :=(N1+N2+N3+N4)/4
IF MDIA = >6
RETURN APROVADO
ELSE
RETURN REPROVADO
ENDIF

RUN
sistema

Propsito:

N3,

N4)

Sintaxe:

Executar
um
programa
operacional.
RUN <descrio>

ATUALIZAR
ATUALIZAR

A
A

ou

comando

do

Exemplo:
? FAVOR
? FAVOR
! DATE

SAVE

Propsito:

de

Sintaxe:
<esqueleto>]]

HORA
DATA

DO
DO

SISTEMA!.
SISTEMA!.

Salvar em um arquivo no disco, variveis


memria e seus contedos.
SAVE
TO
<arquivo>
[ALL[LIKE|EXCEPT

Exemplo:
A:=9
VNOME := JOO
VENDE:= RUA DAS CAMLIAS 44

GEEK BRASIL http://www.geekbrasil.com.br

45

Clipper 5.2 Comandos e Funes

SAVE TO ARQVAR2 ALL LIKE V*


arquivo
SAVE TO ARQVAR

SAVE SCREEN
Propsito:
Sintaxe:

SEEK

Propsito:

uma

Sintaxe:

//

salva:

VNOME

VENDE

no

// ARQVAR2.MEM
// salva todas as variveis no arquivo
// ARQVAR.MEM

Salvar a tela atual no buffer ou em uma varivel


SAVE SCREEN [TO <tela>]

Pesquisar nos registros do banco de dados indexado


chave especificada.
SEEK <chave>

Exemplo:
USE MALA INDEX INOME
SEEK JOO
// Equivalente A: DBSEEK (JOO)
IF FOUND( )
// se existir
DISPLAY NOME, ENDEREO, CIDADE
ELSE
? NO ENCONTRADO
ENDIF

SELECT

Propsito:
Sintaxe:

Seleciona uma rea de trabalho.


SELECT <Nome da rea>|<apelido>

Exemplo:
USE MALA INDEX INOME
SELECT 0
// seleciona o prxima rea disponvel
USE FOLHA INDEX CODF
LIST NOME, SALRIO, SETOR, COD

GEEK BRASIL http://www.geekbrasil.com.br

46

Clipper 5.2 Comandos e Funes


SELECT MALA
// seleciona o arquivo rea MALA
LIST COD, CLIENTE, CIDADE
LIST MALA CLIENTE, FOLHA SALRIO // lista registro de
// outra rea

SET ALTERNATE
Propsito:

ser

Sintaxe:
|[ON]|[OFF]|<(.T.)/(.F.)>

Realiza a sada do console para um arquivo (ASCII) a


gravado no disco.
SET
ALTERNATE
TO
<arquivo>

Exemplo:
SET ALTERNATE TO ARQSAIDA.TXT
AET ALTERNATE ON
// lida a sada para o arquivo
USE MALA INDEX ICEP
LIST CLIENTE, CIDADE, ESTADO
SET ALTERNATE OFF
// suspende a sada para o arquivo
CLOSE ALTERNATE
// fecha a operao com o arquivo
// alternativo.
TYPE ARQSAID.TXT

SET BELL
dados.

Propsito:

Controla a sada sonora na operao de entrada de

Sintaxe:

SET BELL ON|OFF|<(.T.)/(.F.)>

SET CENTURY
Exemplo:

Propsito:
Sintaxe:

SET DATE TO BRIT


? date( )
SET CENTURY ON
? date( )
SET CENTURY OFF

Possibilita configurar os dgitos dos sculos das datas.


SET CENTURY ON|OFF|<(.T.)/(.F.)>
// escolher o formato da data
// resultado: DD/MM/AA
// configura as datas para quatro
// dgitos no ANO
// resultado: DD/MM/AAAA
// retorna ao padro

GEEK BRASIL http://www.geekbrasil.com.br

47

Clipper 5.2 Comandos e Funes

SET COLOR

Propsito:
Sintaxe:
<destaque>,
selecionado>] |

Definir as cores que sero exibidas na tela.


SET
COLOR
TO
[<padro>,
<borda>,
<fundo>,
<no
<string>

Exemplo:
VNOME := SPACE(30)
PADRAO1 := W/N, N/N
PADRAO2 := B/N, N/W
SET COLOR TO (PADRAO1)
@ 10,10 SAY DIGITE O NOME...: GET VNOME PICTURE @!
SET COLOR TO (PADRAO2)
READ
SET COLOR TO W+,B
? VOC DIGITOU O NOME...:
?? VNOME

SET CONFIRM
GETs.

Propsito:

Configurar a confirmao de entrada de dados de

Sintaxe:

SET CONFIRM ON|OFF|<(.T.)/(.F.)>

Exemplo:
CLEAR
LOCAL VNOME
@ 10,10 SAY
READ
SET CONFIRM
@ 20,10 SAY
READ

:= SPACE(15)
DIGITE O SE NOME POR COMPLETO...: GET VNOME
ON
// liga a confirmao
DIGITE O SEU NOME POR COMPLETO...: GET VNOME

SET CONSOLE
GEEK BRASIL http://www.geekbrasil.com.br

48

Clipper 5.2 Comandos e Funes

Propsito:
Sintaxe:

SET CURSOR
Propsito:

Sintaxe:

Configurar a sada do console


SET CONSOLE ON|OFF

Configurar o formato da edio de campos ou


variveis do tipo Data.
SET DATE [TO] <nome>

Exemplo:
SET DATE TO ITALIAN
? A DATA DE HOJE E....:
?? DATE( )
SET DATE TO GERMAN
VDATA:=CTOD ( / / )
@ 10,10 SAY DIGITE QUALQUER DATA...: GET VDATA
READ
SET DATE TO ANSY
? Mudando o formato da data
? A data que voc digitou foi...:
?? VDATA

SET DECIMALS
Propsito:
Sintaxe:

Configurar a quantidade de casas decimais exibidas.


SET DECIMALS <quantidade de decimais>

Exemplo:
SET FIXED ON
SET DECIMALS TO 2
? 10/3
? 20/7
SET DECIMALS TO 5
? 10/3
? 20/7

// 2 casas decimais (o padro)

SET DEFAULT
GEEK BRASIL http://www.geekbrasil.com.br

49

Clipper 5.2 Comandos e Funes

Propsito:
sero

Sintaxe:

Configurar a unidade de disco em que os arquivos


processados.
SET DEFAULT TO <disco\diretrio\ , , ,>

Exemplo:
SET DEFAULT TO A:
// muda a leitura de arquivo para o diskete
SET DEFAULT TO C:\CLIPPER5
// muda para a unidade C no
// diretrio \ CLIPPER5

SET DELETED
Propsto:

para

Sintaxe:

Ativar ou
eliminao.

desativar

os

registros

marcados

SET DELETED ON|OFF|(.T.)/(.F.)

SET DELIMITERS
Propsito:

sero

Sintaxe:

Ativar ou desativar a edio de caracteres que


utilizados como delimitadores de GETs.
SET DELIMITERS ON|OFF|(.T.)/(.F.)

SET DELIMITER TO
Propsito:
Sintaxe:

Define delimitadores para edies GETs.


SET DELIMITERS TO <delimitadores> [DEFAULT]

Exemplo:
CLEAR
VNOME:= VENDERECO:= SPACE(30)
SET DELIMITER ON
// liga a edio de delimitadores
SET DELIMITER TO ::
// estabelece novos delimitadores
@ 10,10 SAY DIGITE O NOME...: GET VNOME
SET DELIMITER TO []
// muda os delimitadores novamente
@ 12,10 SAY DIGITE O ENDEREO..: GET VENDERECO
READ

GEEK BRASIL http://www.geekbrasil.com.br

50

Clipper 5.2 Comandos e Funes

SET DEVICE

Propsito:
Sintaxe:

Configurar a sada dos comandos @. . . SAY.


SET DEVICE TO SCREEN|PRINTER

Exemplo:
CLEAR
@ 10,10 SAY LIGUE A IMPRESSORA E PRESS. QQ. TECLA\\
INKEY(0)
// aguarda qualquer tecla
SET DEVICE TO PRINTER
// liga a sada (@.. say) para a
// impressora
@ 20,15 SAY SER IMPRESSO NA LINHA 20, COLUNA 15 DO PAPEL
SET DEVICE TO SCREEN
// retorna a sada para a tela

SET EPOCH

Propsito:

possuem

Sintaxe:

Permite um maior controle das datas


quatro dgitos no ano.
SET EPOCH <ano>

que

no

Exemplo:
SET DATE FORMAT TO DD/MM/YYYY
// formata o ano
dgitos
? CTOD (04/05/78)
// resultado: 04/05/1978
? CTOD (04/05/92)
// resultado: 04/05/1992
SET EPOCH TO 1980
? CTOD (04/05/78)
// resultado: 04/05/2078
//
menor?
? CTOD (04/05/92)
// resultado: 04/05/1992

SET ESCAPE
Propsito:

tecla

Sintaxe:

com

data

Ativar ou desativar a sada de um GET atravs da


<ESC>.
SET ESCAPE ON|OFF|(.T.)/(.F.)

SET EXACT
GEEK BRASIL http://www.geekbrasil.com.br

51

Clipper 5.2 Comandos e Funes

Propsito:
caracteres

Sintaxe:

Determina se as comparaes entre expresses


devem ser totalmente iguais ou parciais.
SET EXACT ON|OFF|(.T.)/(.F.)

Exemplo:
//
.T. (sim)
SET EXACT OFF
? AB1 = AB1CD
? AB1 = AB1
SET EXACT ON
? AB1 = AB1CD
? AB1 = AB1

.F.

(no)
// padro
// RESULTADO: .T.
// RESULTADO: .T.
// RESULTADO: .F.
// RESULTADO: .T.

SET EXCLUSIVE
Propsito:

ser

Sintaxe:

Determina se a abertura de arquivos para utilizao


de modo exclusivo ou compartilhado.
SET EXCLUSICE ON|OFF|(.T.)/(.F.)

SET FILTER

Propsito: Cria filtros lgicos que escondem registros que no


atendem a condio do filtro criado.
Sintaxe:
SET FILTER TO <condio>
Exemplo:
USE MALA
SET FILTER TO NOME = A

// somente os nomes que comeam


// com a letra A

LISTA NOME, ENDEREO


SET FILTER TO
LISTA NOME, ENDEREO

// tira o filtro, volta ao normal

SET FIXED
GEEK BRASIL http://www.geekbrasil.com.br

52

Clipper 5.2 Comandos e Funes

Propsito:
os

Sintaxe:

SET FORMAT
Propsito:

READ

Sintaxe:

Determina a sada de casas decimais de todos


nmeros.
SET FIXED ON|OFF(.T.)/(.F.)

Executa um arquivo de formato de tela quando um


avaliado.
SET FORMAT <rotina>

Exemplo:
VNOME:=SPACE(40)
VENDERECO:=SPACE(30)
SET FORMAT TO TELA
de

// seta o formato para uma procedure

// nome TELA
READ
PROCEDURE TELA
@ 10,10 SAY NOME......: GET VNOME
@ 12,10 SAY ENDEREO..: GET VEDERECO
RETURN

SET FUNCTION
Propsito:
Sintaxe:

Reprogramar uma tecla de funo.


SET FUNCTION <tecla> TO <expresso caractere>

Exemplo:
// reprogramando as teclas F2 e F3
SET FUNCTION 2 TO GORKI STARLIN+CHR(13)
//
<ENTER>
SET FUNCTION 3 TO EDITORA ERICA
? PRESS. <F3> OU <F2>
ACCEPT DIGITE ALGO..: TO TESTE

GEEK BRASIL http://www.geekbrasil.com.br

CHR(13)

53

Clipper 5.2 Comandos e Funes

SET INDEX

Propsito:

dados

Sintaxe:

Abrir arquivos de ndices para um arquivo


aberto na rea de trabalho corrente.
SET INDEX TO <lista de arquivos de ndices>

de

Exemplo:
USE MALA
SET INDEX TO INOME, ICEP
// organizado pelo ndice NOME
LIST NOME, ENDEREO, CIDADE
SET ORDER TO 2
// ICEP, NOME
LIST NOME, ENDEREO, CIADE
SET INDEX TO
// fecha todos os ndices

SET INTENSITY
Propsito:

Sintaxe:

SET KEY

Propsito:

uma

Sintaxe:

Determina como os campos


PROMPTs sero exibidos.

de

edio

GETs

SET INTENSITY ON|OFF|(.T.)/(.F.)

Determina uma chamada de uma rotina atravs de


tecla.
SET KEY <nmero da tecla> TO <rotina>

Exemplo:
CLEAR
SET KEY -2 TO TERMINA( )

// liga a tecla <f2> com a funo


// TERMINA( )

VNOME:=SPACE(30)
@ 23,10 SAY <F2> TERMINA O PROGRAMA
@ 10,10 SAY DIGITE O NOME...: GET VNOME
READ
FUNCTION TERMINA( )
CANCEL
RETURN

GEEK BRASIL http://www.geekbrasil.com.br

54

Clipper 5.2 Comandos e Funes

SET MARGIN
Propsito:

sada

Sintaxe:

Estabelecer o tamanho da margem


para a impressora.
SET MARGIN TO <tamanho>

esquerda

para

Especifica qual linha do vdeo ser utilizada


as mensagens sadas pelo comando Prompt.
SET MESSAGE TO <linha> (CENTER/CENTRE)

para

Exemplo:
USE MALA INDEX INOME
SET MARGIN TO 10
LIST NOME, ENDEREO, CIDADE TO RPINTER

SET MESSAGE
Propsito:

exibir

Sintaxe:

Exemplo:
CLEAR
SET MESSAGE TO 23 CENTER
@ 10,10 PROMPT 1 - CADASTRAR MESSAGE CADASTRAMENTO....:
@ 12,10 PROMPT 2 - PESQUISA MESSAGE PESQUISANDO......:
MENU TO VAR
:
:
:

SET ORDER

Propsito:

Sintaxe:

Estabelecer qual dos arquivos de ndices abertos ser


Master Index.
SET ORDER TO <nmero do ndice>.

Exemplo:
USE MALA INDEX ICEP, INOME
LIST NOME, ENDEREO, CIDADE, CEP // lista em ordem de NOMES

GEEK BRASIL http://www.geekbrasil.com.br

55

Clipper 5.2 Comandos e Funes


SET ORDER TO 2
// muda o arquivo de ndice
controle
LIST NOME, ENDEREO, CIDADE, CEP // lista em ordem de CEP

SET PATH

Propsito:

ser
arquivos

Sintaxe:

de

Especificar uma direo de disco ou diretrio que


pesquisada pelo Clipper quando este tentar abrir
e no os encontrar.
SET PATH <lista de direes>

Exemplo:
SET PATH TO C:\FOLHA;C:\FATURA

SET PRINTER
Propsito:

para

Sintaxe:

// assinala dois caminhos


// opcionais

Especificar a sada do console para a impressora ou


um arquivo.
SET PRINTER ON|OFF|(.T.)/(.F.)
SET PRINTER TO <arquivo>
SET PRINTER TO <device>

Exemplo:
SET PRINTER OFF
? DATE( ), TIME( )
SET PRINTER ON
? DATE( ), TIME( )

// liga a sada da console para impressora

SET PROCEDURE
Propsito:

suas
ser

Sintaxe:

Abrir um arquivo de procedures e compilar


procedures, colocando-as dentro do programa .OBJ a
gerado.
SET PROCEDURE TO <nome do arquivo>

SET RELATION
GEEK BRASIL http://www.geekbrasil.com.br

56

Clipper 5.2 Comandos e Funes

Propsito:
Sintaxe:
INTO

Estabelecer relacionamentos entre reas de trabalho.


SET RELATION TO [<campo>
|
<registro>
<rea>], TO. . .
[ADDITIVE]

Exemplo:
USE CURSOS.DBF INDEX CODCUR.NTX
USE ALUNOS.DBF NEW
SET RELATION INTO CURSO TO CURSOS
relao

//

estabelece

SET SCOREBOARD
Propsito:

por

Sintaxe:

Ligar ou desligar a exibio das mensagens emitidas


READ e MEMOEDIT( ).
SET SCOREBOARD ON|OFF|<.F.>/<.T.>

SET SOFTSEEK
SEEK.

Propsito:

Ligar ou desligar a pesquisa relativa do comando

Sintaxe:

SET SOFTSEEK ON|OFF|(.T.)/(.F.)

SET TYPEAHEAD
Propsito:
Sintaxe:

SET UNIQUE
Propsito:

um

Sintaxe:

Determina o tamanho do buffer do teclado.


SET TYPEAHEAD TO <valor do tamanho>

Ligar ou desligar a incluso de chaves duplicadas em


ndice.
SET UNIQUE ON|OFF|(.T.)/(.F.)

SET WRAP
GEEK BRASIL http://www.geekbrasil.com.br

57

Clipper 5.2 Comandos e Funes

Propsito:
do

Sintaxe:

SKIP

Propsito:
Sintaxe:

Liga ou desliga a rolagem da barra entre extremos


menu montado pelo comando @. . . PROMPT.
SET WRAP ON|OFF|(.T.)/(.F.)

Saltar o ponteiro entre os registros do banco de dados.


SKIP <salto> [ALIAS <nome da rea>]

Exemplo:
USE MALA
GO 1
SKIP 2
SKIP 4
SKIP -3

// salta para o registro 3


// salta para o registro 7
// salta para o registro 4

SORT

Propsito:
Sintaxe:

],

Criar um arquivo de dados (.DBF) Classificado.


SORT TO <arquivo> ON <campo> [ / [A] [D] [C]
<campo2>. . .
[<escopo>] [WHILE <condio>][FOR <condio>]

Exemplo:
USE MALA
SORT TO MALA2 ON NOME
campo

//

classificara

os

registros

pelo

// NOME
USE MALA2
LIST NOME, ENDEREO, CIDADE

STATIC

Propsito:
Sintaxe:

Declara uma varivel ou matriz como esttica.


STATIC <identificador> [:=<inicializador>]

GEEK BRASIL http://www.geekbrasil.com.br

58

Clipper 5.2 Comandos e Funes

Exemplo:
FUNCTION SENHA
STATIC VCONTROLE := 6
:
:
RETURN

STORE

Propsito:
Sintaxe:

// declara a varivel como esttica

Atribuir valores a variveis.


STORE <valor> TO <variveis>

Exemplo:
STORE 123.33 TO VAR1
? VAR1
VAR1:=VAR2:=4848
? VAR1,VAR2

SUM

Propsito:
Sintaxe:

variveis>
<condio>]

// equivalente a VA1:=123.33
// mostra o valor de VAR1
// resultado: 4848

4848

Realizar o somatrio de expresses.


SUM <lista de expresses>
TO
<lista de
[<escopo>] [WHILE <condio>] [FOR

Exemplo:
USE FOLHA
SUM SALRIO TO TOTALSAL FOR SETOR = 1 // totaliza o salrio
// dos funcionrios do setor 1
@ 10,10 SAY RESULTADO...:+STR (TOTALSAL)

TEXT

Propsito:

em

Permite a exibio de um bloco de textos no


um arquivo ou na impressora.

GEEK BRASIL http://www.geekbrasil.com.br

vdeo,

59

Clipper 5.2 Comandos e Funes

Sintaxe:

TEXT

[TO

PRINTER][TO

FILE

<arquivo.text>

<texto>...
ENDTEXT

Exemplo:
TEXT
// abre o bloco de texto
---------------------ISTO E APENAS UM TEXTO
---------------------ENDTEXT
// finaliza o bloco de texto

TOTAL

Propsito:

de

Sintaxe:

[<escopo>]

TYPE

Propsito:

em

Sintaxe:

n2>

Cria um arquivo (.DBF), contendo valores totalizados


outros arquivos de dados.
TOTAL ON <campo>
TO
<arquivo>
[FIELDS <lista campo> [FOR <condio>]

Mostrar o contedo de um arquivo texto gravado


disco.
TYPE <arquivo> [TO PRINTER] [TO FILE <arquivo

Exemplo:
TYPE MENU.PRG TO PRINTER

UNLOCK

Propsito:

ambiente

Sintaxe:

// imprime a listagem do programa


// MENU.PRG

Liberar travamentos de arquivo ou


de Rede Local.

registro

em

UNLOCK[ALL]

Exemplo:
GEEK BRASIL http://www.geekbrasil.com.br

60

Clipper 5.2 Comandos e Funes

USE MALA SHARED


:
:
IF FLOCK( )
// trava todos os registros
REPLACE SALRIO WITH VSAL*INDICE ALL
UNLOCK
// libera o travamento pendente
ELSE
? NO POSSVEL PROCESSAR OS REGISTROS NO MOMENTO
ENDIF

UPDATE

Propsito:

de
trabalho.

USE

Sintaxe:

Propsito:
opcionalmente
Sintaxe:
ndice>]

Atualizar o arquivo aberto na rea corrente a partir


outro arquivo de dados aberto em outra rea de
UPDATE FROM <rea|arquivo> ON <campo chave>
REPLACE <campo> WITH <expresso>,
<campo2> WITH ,<expresso2>,,,
[RANDOM]

Abrir

um arquivo de dados (.DBF) e


arquivo a este associado.
USE <arquivo.dbf> [index <lista de arquivo de
[ALIAS <apelido>][EXCLUSIVE/SHARED]
[NEW] [READONLY]
VIA < C driver>

Exemplo:
USE MALA INDEX ICOD, INOME
USE MALA READONLY
// somente para leitura
USE FOLHA INDEX CODIFO NEW
//
abre o arquivo
rea
// disponvel.

GEEK BRASIL http://www.geekbrasil.com.br

na

prxima

61

Clipper 5.2 Comandos e Funes

WAIT

Propsito:

que

Sintaxe:

Determinar uma pausa na execuo do programa at


uma tecla seja pressionada.
WAIT [<mensagem>] TO [<varivel>]

Exemplo:
A:=4
WAIT Press. qualquer tecla para continuar
B:=5
? A+B

ZAP

Propsito:
Sintaxe:

Excluir os registros do arquivo aberto na rea corrente.


ZAP

Exemplo:
USE MALA INDEX ICOD, ICEP
ZAP

// elimina todos os registros.

Funes da Linguagem Clipper 5.2


AADD( )

Propsito:
Sintaxe:

Adicionar um novo elemento no final de um valor.


AADD (<alvo>,<expvalor>)
< alvo > o vetor no qual ser adicionado um novo
elemento.

GEEK BRASIL http://www.geekbrasil.com.br

62

Clipper 5.2 Comandos e Funes

< Expvalor > o valor a ser atribudo ao novo


elemento.
Exemplo:
declare vetor [2], vetor2 [2]
vetor [1] = teste
vetor [2] = Gorki
vetor2 [1] = Starlin
vetor2 [2] = livro
AADD (vetor, vetor2)
// o AADD( ) adiciona um terceiro
elemento
// e automaticamente alterando o
tamanho
// do vetor. O terceiro elemento
ser um
// array bidimencional que tem
como
// referncia o vetor2 [ ].
//
mostrando os dados dentro dos vetores
? vetor [1]
? vetor [2]
? vetor [3] [1]
? vetor [3] [2]
vetor2 [1] = ltima atribuio
? vetor [3] [1]
? vetor [3] [2]

ABS( )

Propsito:
Sintaxe:

ser

Retorna o valor absoluto de uma expresso numrica.


ABS(<valor numrico>)
<valor numrico> uma expresso numrica a
devolvida ao seu valor absoluto.

Exemplo:
a
b
?
?

: =
: =
abs
abs

9
-4
(a)
(b)

// devolve 9
// devolve 4

ACHOICE( )
<direita>,

Propsito:
Sintaxe:

Construir e executar menus do tipo Pop-up.


ACHOICE( <topo>,
<esquerda>,
<itens do menu>
[

GEEK BRASIL http://www.geekbrasil.com.br

<base>,
<A itens

63

Clipper 5.2 Comandos e Funes

selecionaveis>
usurio>, <item

<Litensselecionaveis>,

<funes do

inicial>, <linha janela>])

Exemplo:
/*

EXEMPLO DE PROGRAMA UTILIZANDO ACHOICE( )


AUTOR: GORKI STARLIN

*/
CLEAR
// limpa a tela
LOCAL ITEM [4], SELEO [4]
ITEM [1] := CADASTRAR
// atribui os valores do vetor
ITEM [2] := PESQUISAR
ITEM [3] := ALTERAR
ITEM [4] := EXCLUIR
SELEO [1] := SELEO [2] := .T. // determina itens disponveis
SELEO [3] := SELEO [4] := .F.
//
determina
itens
//
no
disponveis
ESCOLHA := ACHOICE (12,12,14,15,ITEM,SELEO)
? ESCOLHA
//
mostra
a
escolha
do
usurio
DO CASE
CASE ESCOLHA = 1
DO CADASTRA
CASE ESCOLHA = 2
DO PESQUISA
CASE ESCOLHA = 3
DO ALTERA
CASE ESCOLHA = 4
DO ELIMINA
CASE ESCOLHA = 0
CANCEL
ENDCASE

ACLONE( )

Propsito:
Sintaxe:

Duplicar um Array(vetor) do tipo multidimensional.


ACLONE( )

Exemplo:

GEEK BRASIL http://www.geekbrasil.com.br

64

Clipper 5.2 Comandos e Funes

Local array1, array2


array1 := { 12,13,14 }
array2 := ACLONE (array1)
seja

//

array2

igual

array1,ou

// { 12,13,14 }

ACOPY( )
<incio>,

Propsito:
Sintaxe:

Cpia de informaes entre vetores.


ACOPY (
<vetor fonte>,
<vetor destino>,
<quantos>, < posio destino>).

Exemplos:
Local vetor1,vetor2
vetor1 := { 10, 10, 10 }
vetor2
:= { 20, 20, 20 }
ACOPY (vetor1, vetor2,1,2}
}

ADEL( )

Propsito:
Sintaxe:

/ / vetor 2 agora { 10, 10, 20

Elimina um elemento de um vetor


ADEL( <vetor>, < posio>)

Exemplo:
Private vetor
vetor := { 100,
ADEL( vetor,2)
nil}

ADIR( )

300,

Propsito:

lidas
<tamanho>,

Sintaxe:

200 }
// VETOR

passa

conter

100,200,

Armazenar em uma array (VETOR) as informaes


a partir de um diretrio.
ADIR([
<especifica>,
<nomes arquivos>,
<datas>, <horas>, <atributos>]).

GEEK BRASIL http://www.geekbrasil.com.br

65

Clipper 5.2 Comandos e Funes

Exemplo:
Private fontes [ADIR (*.PRG)]
// cria um vetor com o
//tamanho correspondente ao nmero de
// .prgs existente no diretrio
// corrente
ADIR (*.PRG, FONTES)

// preenche o vetor com o nome dos


// arquivos
ESCOLHA = ACHOICE (10,10,20,35,FONTES)
// monta um menu PopUp
? SUA ESCOLHA FOI...: + STR (ESCOLHA)

AEVAL( )

Propsito:

cada

Executar um code block (Bloco de Cdigo)


elemento do vetor multidimencional.

para

Sintaxe:
AEVAL
(<Vetor>, <Bloco>, [<incio>],[<quantidade>] )
Exemplo:

/*
EXEMPLO DE UTILIZAO DA FUNO AEVAL( ) */
LOCAL ARQUIVO : = DIRECTORY (*.*), NOMES : = {}
CLEAR
AEVAL (ARQUIVOS { | FILES | AADD (NOMES, FILES [1]
ESCOLHA := ACHOICE ( 10, 10, 20, 35, NOMES)

AFIELDS( )

Propsito:

estrutura
corrente de

Sintaxe:
<tamanho> ],

AFILL( )

Propsito:

) } )

Preenche
os elementos de vetores com a
do banco de dados que estiver aberto na rea
trabalho.
AFIELDS( [
<campos> ], [ <tipos> ], [
[<decimais> ].

Preencher um vetor com um determinado valor.

GEEK BRASIL http://www.geekbrasil.com.br

66

Clipper 5.2 Comandos e Funes

<incio>,

Sintaxe:

<vetor
<quantidade>).

AFILL(

destino>,

< valor>,

Exemplos:
Local vetor [5]
Afill (vetor, 4)

AINS( )

Propsito:

em

Sintaxe:

// resultado: vetor = {4, 4, 4, 4, 4}

Inserir um elemento com uma informao NIL (nulo)


um vetor.
AINS( <vetor>, <posio>)

Exemplo:
Private vetor
vetor := {10,
AINS(vetor,2)

20,

ALERT( )

Propsito:
Sintaxe:

30}
// resultado aps AINS ( ) ->
// vetor := {10, NIL, 20}

Criar uma caixa de dilogo simples com o usurio.


ALERT ( <mensagem string>,
<vetor com o

opes>)
que o usurio poder escolher.
Exemplo:
Local nEscolha, aOPES := {Repetir, Abortar}
USE CLIENTES
CLEAR
DO WHILE .NOT. ISPRINTER( )
/ / SE NO EXISTE IMPRESSORA
nESCOLHA := ALERT ( IMPRESSORA NO ENCONTRADA;
aOPES)
IF nESCOLHA = 2
RETURN

GEEK BRASIL http://www.geekbrasil.com.br

67

Clipper 5.2 Comandos e Funes

ENDIF
ENDDO
SET PRINT ON
LIST NOME,ENDERECO
SET PRINT OFF

ALIAS( )

Propsito:
Sintaxe:

/ / LIGA A IMPRESSORA
// LISTA OS DADOS
// DESLIGA A IMPRESSORA

Retorna o nome do apelido de uma rea de trabalho.


ALIAS (<rea de trabalho>)

Exemplo:
USE MALA NEW
REA = SELECT( )
USE CLIENTE NEW
? ALIAS (REA)

ALLTRIM( )

Propsito:

em

Sintaxe:

Remover todos os espaos em branco que


uma cadeia de caracteres.
ALLTRIM (<cadeia caracteres>)

existirem

Exemplo:
PRIVATE STRING
STRING : = SPACE(30)+ GORKI + STARLIM
? STRING
? ALLTRIM (STRING)

ALTD( )

Propsito:
Sintaxe:

Ativar o Clipper Debugger.


ALTD (ao)

Exemplo:
/*

FOLHA.PRG
AUTOR: GORKI STARLIN

*/

GEEK BRASIL http://www.geekbrasil.com.br

68

Clipper 5.2 Comandos e Funes

PARAMETER AO

// recebe o parmetro enviado a partir do


// sistema operacional
// verifica se o parmetro nulo
// atribui 0 a varivel ao

IF AO
AO = 0
ELSE
AO = VAL (AO)
ENDIF
ALTD (AO)

// invoca a funo e configura e


// Debugger

:
:
<declaraes>
:
:

ARRAY( )

Propsito:

sem

Sintaxe:

Cria um array de tamanho especificado


inicializao.
ARRAY ( <elementos> [,elementos..]).

Exemplo:
MATRIZ : = ARRAY (2,3)
//
dimenses..
MATRIZ := {{4,3,4}, {6,3,2}}

ASC( )

Propsito:

determinado

Sintaxe:

cria

definindo

apenas

as

// cria atribuindo valores.

Devolve o cdigo ASCII (0 a 255)


caractere.
ASC (<caractere(s)>)

de

um

Exemplo:
? ASC (a)
? ASC (A)
? ASC ( )

// resposta: 97
// resposta: 65
// resposta: 0 (nulo)

GEEK BRASIL http://www.geekbrasil.com.br

69

Clipper 5.2 Comandos e Funes

ASCAN( )

Propsito:

de

Pesquisar em um vetor uma informao ou bloco


cdigo (code block).
ASCAN
(<vetor>,<procurar>,

Sintaxe:
[<incio>],[<quantidade>].
Exemplo:

VETOR := {BATATA, TOMATE, FEIJO, CARNE }


? ASCAN (VETOR, BATATA}
// resultado: 1
ENDEREO := ASCAN (VETOR, FEIJO)
//resultado:
endereco=3
? endereo
? ascan (vetor, {|var| upper (var) == TOMATE}) //code block

ASIKE( )

Propsito:
Sintaxe:

Alterar o nmero de elementos de um vetor.


ASIZE (<vetor>, <tamanho>)

Exemplo:
: = {BATATA, TOMATE, FEIJO, CARNE}
(VETOR)
// mostra o tamanho do vetor. resultado: 4
(VETOR,10)// altera o tamanho do vetor
(VETOR)
// resultado: 10
I = 1 TO LEN (VETOR)
// mostra todos os elementos do
// vetor
? VETOR [i]
NEXT

VETOR
? LEN
ASIZE
? LEN
FOR

ASORT( )

Propsito: Coloca em ordem os elementos de um vetor.


Sintaxe:
ASORT
(<vetor>,[<incio>],[<quantidade>],[<ordem>]
Exemplo:
VETOR : {BATATA, TOMATE, FEIJO, CARNE }

GEEK BRASIL http://www.geekbrasil.com.br

// cria o

70

Clipper 5.2 Comandos e Funes

ASORT (VETOR)
//
FOR I = 1 TO LEN (VETOR) //
? VETOR [i]
NEXT
ASORT (VETOR,,, {|a, b| a > b
FOR i = 1 TO LEN (VETOR)//
? vetor [i]
NEXT

AT( )
de

Propsito:
Sintaxe:

// vetor
ordem ascendente
mostra todos os elementos do vetor
})
// ordem descendente
mostra todos os elemento do vetor

Mostra o endereo de uma string dentro de um cadeia


caracteres.
AT (<string>,<cadeia>).

Exemplo:
VAR := BATATA
? AT (TA, VAR)
? AT (T, VAR)
? AT (Z, VAR)

ATAIL( )

Propsito:
Sintaxe:

// resultado: 3
// resultado: 2
// resultado: 0

Retornar o valor do ltimo elemento do vetor.


ATAIL (<vetor>).

Exemplo:
LOCAL aNOMES : = {MARIA, JOS, JOO, ANA}
ULTIMO := ATAIL (aNOMES)
? LTIMO
// ANA

BIN2( )

GEEK BRASIL http://www.geekbrasil.com.br

71

Clipper 5.2 Comandos e Funes

Propsito:
para

Sintaxe:

BIN2L( )

Propsito:

para

Sintaxe:

BIN2W( )

Propsito:

bits

Sintaxe:

BOF( )

Propsito:

de

Sintaxe:

Realizar a converso de um valor inteiro de 16 bits


um valor numrico.
BIN2 (<cadeia>).

Realiza a converso de um
um valor numrico.
BIN2L (<cadeia>).

valor

inteiro de 32 bits

Realiza a converso de um valor inteiro sem sinal 16


para um valor numrico.
BIN2W (<cadeia>)

Retornar se o posicionamento interno de um banco


dados encontra-se no incio do arquivo (Begin of File).
BOF( )

Exemplo:
USE MALA NEW
? BOF( )
SKIP - 1
? BOF( )

BROWSE( )

Propsito:
Sintaxe:

//
//
//
//

abre o arquivo de dados


resultado: .F.
pule - 1
resultado: .T.

Folhear um banco de dados dentro de uma janela.


BROWSE(<linha_inicial>,
<coluna_inicial>,

<linha_
final>, <coluna_final>).

GEEK BRASIL http://www.geekbrasil.com.br

72

Clipper 5.2 Comandos e Funes

Exemplo:
USE MALA NEW
L_INICIAL = 5
C_INICIAL = 5
F_FINAL
= 22
C_FINAL
= 67

// abre o banco de dados


// cria variveis p/ coordenadas da janela

// desenha uma moldura


@ L_INICIAL-1,C_INICIAL-1 TO L_FINAL+1,C_FINAL+1 DOUBLE
// folheia o b.d.
BRAWSE(L_INICIAL, C_INICIAL, L_FINAL, C_FINAL)

CDOW( )

Propsito:

caracteres

Sintaxe:

Extrair de uma data de uma


referente ao dia da semana da data.
CDOW(<data>).

expresso

Exemplo:
? DATE
? CDOW(DATE( ))
? CDOW(DATE( )+10)

CMONTH( )

Propsito:

ms

Sintaxe:

//
//
//
//

mostra a data do sistema


mostra o dia da semana da data do sistema
mostra o dia da semana de dez dias aps a
data do sistema.

Analisar uma data


correspondente.
CMONTH(<data>).

devolver

nome

do

Exemplo:
// Os exemplos a seguir, demostram a utilizao da funo
// CMOUNTH( ).
? CMOUNTH(DATE( ))
// resultado: ms da data do sistema
? CMOUNTH(DATE( )+30)
// resultado: ms posterior data do
// sistema.

GEEK BRASIL http://www.geekbrasil.com.br

73

Clipper 5.2 Comandos e Funes

COL( )

Propsito:

Sintaxe:

Devolver a coordenada atual Cursor em tela referente


posio da coluna.
COL( ).

Exemplo:
CLEAR
// limpa a tela
LOCAL VNOME := JOO, VSALARIO:=39000.00
@ 05,10 SAY NOME.....: + VNOME
@ 07,10 SAY SALRIO..:
@ 07, COL( ) +2 SAY SALRIO

COLORSELEC( )
Propsito:
Sintaxe:

Ativar um atributo na configurao de cores corrente.


COLORSELECT( nCOR).

Exemplo:
SETCOLOR(B/W,N/W,GR/W,N/GR)
? GORKI
COLORSELECT( 1 )
? GORKI
COLORSELECT( 0 )
? GORKI

CTOD( )

Propsito:
Sintaxe:

Transformar uma expresso caractere em uma data.


CTOD(<expresso>).

Exemplo:
PRIVATE CAR, VARDATA
CAR := 20/1/93
?CTOD(CAR) + 365
// mostra 365 dias aps o contedo da

GEEK BRASIL http://www.geekbrasil.com.br

74

Clipper 5.2 Comandos e Funes

VARDATA:= CTOD(

CURDIR( )

Propsito:

determinada

Sintaxe:

// expresso caractere contida em CAR.


// cria uma varivel do tipo data em
// branco.

Mostra o nome do diretrio


unidade de disco.

atual

de

uma

CURDIR( ).

Exemplo:
? CURDIR( )

DATE( )

Propsto:
Sintaxe:

Retornar a data do sistema operacional.


DATE( ).

Exemplo:
? DATE( )
VARDATA := DATE( )
? DATE( ) + 4
SET DATE ITAL
? DATE( )

DAY( )

Propsito:
Sintaxe:

//
//
//
//
//

mostra a
cria uma
sistema,
ser D.
mostra a

data do sistema
varivel contendo a data do
sendo que o tipo da varivel
data do sistema + 4 dias

Mostra um nmero correspondente ao dia de uma data.


DAY( ).

Exemplo:
? DATE( )
? DAY(DATE( ))

// mostra a data do sistema operacional


// mostra o dia da data do sistema
// operacional.

GEEK BRASIL http://www.geekbrasil.com.br

75

Clipper 5.2 Comandos e Funes

DBAPPEND( )
Propsito:

dados
Exemplo:

Sintaxe:

Criar (inserir) um registro em branco no banco


aberto na rea corrente de trabalho.

de

DBAPPEND( )

/*
NOME DO PROGRAMA: CADMULT1.PRG
AUTOR : GORKI STARLIN
FUNO: ESTE MODULO ANEXA DADOS NO ARQUIVO PAGAMENTO
CARACTERSTICA: REDE LOCAL
*/
LOCAL CODVAR, NOMEVAR, SETORVAR, CARGOVAR, ATIVOVAR, DATAVAR
USE COLHA INDEX CODX,NOMEX
IF NETERR( )
// testa se houve erro na abertura do arquivo
? O arquivo de dados no se encontra disponvel
INKEY(0)
CANCEL
ENDIF
DO WHILE .T.
// lay out
CLEAR
SET COLOR TO W+/N
SET COLOR TO
@@ 01,01 TO 24,79 DOUBLE
@@ 02,02 TO 04,78
@@ 03,03 SAY SRIOS INFORMTICA
@@ 03,60 SAY DATE( )
@@ 03,70 SAY TIME( )
// cria variveis
CODVAR
= 0
SETORVAR
= 0
SALARIOVAR = 0
NOMEVAR
= SPACE(35)
CARGOVAR
= SPACE(15)
ATIVOVAR
= (.T.)
DATAVAR
= CTOD( / / )
// entrada de dados
@@ 06,10 SAY ** CADASTRAMENTO DE FUNCIONRIOS **
@@ 08,10 SAY CDIGO.......: GET CODVAR PICTURE 9999
READ
IF CODVAR = 0
// verifica se o usurio no digitou o
// cdigo
OP:=S
// cria a varivel OP
@@ 21,15 SAY SAI DESTE MODULO.(S/N).: GET OP PICT A

GEEK BRASIL http://www.geekbrasil.com.br

76

Clipper 5.2 Comandos e Funes

READ
IF OP = S // verifica a resposta do usurio
RETURN
// retorne
ENDIF
LOOP
// sobe a execuo p/ linha do DO WHILE
ENDIF
// fim do se
SEEK CODVAR
// pesquisa no ndice o contedo da
// varivel CODVAR
IF EOF( )
DBAPPEND( )
// tenta criar um registro em branco
DO WHILE NETRR( ) // faa enquanto HOUVER ERRO
DBAPPEND( )
// tenta (novamente criar o registro
ENDDO
// fim do faa enquanto
// entra com o restante dos dados do funcionrio
@@ 10,10 SAY NOME DO FUNCIONRIO..: GET NOMEVAR PICT @!
@@ 12,10 SAY SETOR TRABALHO.......: GET SETORVAR PICT 9
@@ 14,10 SAY CARGO FUNCIONAL......: GET CARGOVAR PICT @!
@@ 16,10 SAY SALRIO.......: GET SALRIO PICT 9999999.99
@@ 18,10 SAY FUNCIONRIO ATIVO....: GET ATIVOVAR
@@ 20,10 SAY DATA ADMISSO........: GET DATAVAR
READ
// grava os dados no registro em branco
REPLACE NOME WITH NOMEVAR
REPLACE SETOR WITH SETORVAR
REPLACE CARGO WITH CARGOVAR
REPLACE ATIVO WITH ATIVOVAR
REPLACE DTADM WITH DATAVAR
REPLACE SALRIO WITH SALARIOVAR
@@ 21,20 SAY ** CADASTRADO **
WAIT
// aguarda qq tecla
COMMIT
// atualiza fisicamente o registro
REPLACE COD WITH CODVAR
UNLOCK
// libera o registro criado
ELSE
// se no
@@ 21,20 SAY ** REGISTRO J CADASTRADO **
WAIT
// aguarda qq tecla
ENDIF
ENDDO

DBCLEARFIL( )
Propsito:
Sintaxe:

Limpar a condio de filtro ativo.


DBCLEARFIL( )

Exemplo:
GEEK BRASIL http://www.geekbrasil.com.br

77

Clipper 5.2 Comandos e Funes

USE CLIENTES
SET FILTER TO NOME = A
BROWSE( )
DBCLEARFILTER( )

DBCLEARINDEX( )
Propsito:

de

Sintaxe:

// separa os registros
// equivalente : SET FILTER TO

Desativar todos os ndices abertos para um


dados.

arquivo

DBCLEARINDEX( ).

DBCLEARRELATION( )
Propsito:
Sintaxe:

Desativar o relacionamento entre arquivos.


DBCLEARELATION( ).

DBCLOSEALL( )
Propsito:
Sintaxe:

DBCOMMIT( )
Propsito:

alteraes

Sintaxe:

Fechar todos os arquivos de dados.


DBCLOSEALL( ).

Atualizar fisicamente no arquivo


que esto no buffer.

em

disco,

DBCOMMIT( ).

Exemplo:
:
:
:
REPLACE NOME WITH NOMEVAR
REPLACE SETOR WITH SETORVAR
REPLACE CARGO WITH CARGOVAR
REPLACE ATIVO WITH ATIVOVAR
REPLACE DTADM WITH DATAVAR
REPLACE SALRIO WITH SALARIOVAR
@@ 21,20 SAY ** CADASTRADO **
INKEY(O)
// aguarda qq tecla
DBCOMMIT( )
// atualiza o arquivo fisicamente.

GEEK BRASIL http://www.geekbrasil.com.br

78

Clipper 5.2 Comandos e Funes

DBCOMMITALL( )
Propsito:

suas

Sintaxe:

DBCREATE( )
Propsito:

estrutura

Sintaxe:

Atualizar fisicamente todos os arquivos abertos,


alteraes que esto no buffer.
DBCOMMIT( ).

Criar um banco de dados (.DBF) a partir de uma


de um arquivo DBF armazenado em um vetor.
DBCREATE (<arquivo>, <vetor>).

Exemplo:
/*

PROGRAMA: CRIA.PRG
AUTOR: GORKI STARLIN

*/
IF .NOT. FILE (FUNC.DBF)
// se func.dfb no existe
? CRIANDO BASE DE DADOS
// aviso ao operador
ESTRU:={}
&& CRIA UMA MATRIZ
AADD(ESTRU, {COD,N,4,0}) // crias os subvetores com
AADD(ESTRU, {NOME,C,30,0})
// os campos
AADD(ESTRU, {SETOR,N,1,0})
AADD(ESTRU, {CARGO,C,15,0})
AADD(ESTRU, {SALARIO,N,10,2})
AADD(ESTRU, {DTADM,D,8,0})
AADD(ESTRU, {OBS,C,10,0})
DBCREATE(FUNC,ESTRU)
// cria o B.D. (func.dbf) a
// partir da matriz
ENDIF
// fim do se
:
:
:

DBCREATEINDEX( )
GEEK BRASIL http://www.geekbrasil.com.br

79

Clipper 5.2 Comandos e Funes

Propsito:
banco

Sintaxe:

index>,

Criar um arquivo de ndice para um


de dados em uso.
DBCREATEINDEX( <nome index> ,
<bloco>, <Lunico>).

determinado
<cheve

Exemplo:
LOCAL VNOME
USE CLIENTES
CLEAR
? INDEXANDO
DBCREATEINDEX (NOME, NOME, {|| NOME})
// indexa o arquivo pelo nome e cria o arquivo que conter o
// controle de ndice NOME.NTX
LOCAL VNOME:= SPACE(30)
@ 10,10 SAY DIGITE O NOME..: GET VNOME PICTURE @!
READ
? PESQUISANDO
SEEK VNOME
IF FOUND( )
// se existir
DISPLAY NOME, ENDEREO, CIDADE
// mostra o registro
ELSE
? REGISTRO NO ENCONTRADO
ENDIF

DBDELETE( )
Propsito:
Sintaxe:

Marcar um registro para ser apagado.


DBDELETE( ).

Exemplo:
USE FOLHA INDEX INOME.NTX
SEEK JOO
IF FOUND( )
DBDELETE( )
// marca o registro encontrado
ENDIF
DISPLAY ALL NOME, SALRIO, COD
// mostra os registros
SET DELETE ON
// filtra os registros marcados
DISPLAY ALL NOME, SALRIO, COD
// mostra os registros
RECALL ALL
// recupera todos os registros
DISPLAY ALL NOME, SALRIO, COD
// mostra os registros

GEEK BRASIL http://www.geekbrasil.com.br

80

Clipper 5.2 Comandos e Funes

DBEDIT( )

Propsito:

uma

Folheia os registros d um
janela.

banco

de

dados

em

Sintaxe:
DBEDIT
([<linha_inicial>,
<coluna_inicial>,
<linha_final>,
<coluna_final>,
(<vetor de colunas>,
<funo
do
usurio>,
< vetor de mscaras>,
<mscara>,
<vetor
de
cabealhos>, <cabealho>, <vetor
separador
cabealhos>, <separador cabealho>, <vetor
separador de
rodap>, <separador de rodap>, <vetor
rodap
das
colunas>, <rodap das colunas>]).
Exemplo:
/*

ESTE PROGRAMA UM EXEMPLO DA FUNO DBEDIT


AUTOR : GORKI STARLIN

/*
USE FOLHA
// abre os arquivos folha.dbf
DECLARE VECTOR_CAMPOS[7]
// declara o vetor que representar os
// campos do arquivo a ser editado
// ARMAZENA OS CAMPOS DO ARQUIVO NOS VETORES
VETOR_CAMPOS [1] = COD
VETOR_CAMPOS [2] = NOME
VETOR_CAMPOS [3] = SETOR
VETOR_CAMPOS [4] = SALRIO
VETOR_CAMPOS [5] = CARGO
VETOR_CAMPOS [6] = ATIVO
VETOR_CAMPOS [7] = DTADM
// CRIA VARIVEIS P/ DEFINIR A REA DE EDIO DOS
DADOS
L_INICIAL = 5
C_INICIAL = 5
L_FINAL = 22
C_FINAL = 67

GEEK BRASIL http://www.geekbrasil.com.br

81

Clipper 5.2 Comandos e Funes

@ L_INICIAL-1, C_INICIAL-1 TO L_FINAL+1, C_FINAL+1 DOUDLE


DBEDIT (L_INICIAL, C_INICIAL, L_FINAL, C_FINAL, VETOR_CAMPOS,
EDITA)
FUNCTION EDITA ( MODO, NDICE )
SET COLOR TO W+/N
TECLA = LASTKEY ( )
CAMPO = VETOR_CAMPOS [NDICE]
RETORNA = 1
IF MODO = 4
IF TECLA = 27
RETORNA = 0
ELSEIF TECLA = 13
@ ROW(),COL() GET & CAMPO
READ
ENDIF
ENDIF
SET COLOR TO
RETURN RETORNA

DBEVAL( )

Propsito:

para

Sintaxe:

Executa e avalia um bloco de cdigo (code block)


cada registro que atenda uma condio ou Escopo.
DBEVAL(<Bloco>, [<Condio1>,
<Condio2>, <Quantidade>
<Registro>, <Restante>]).

Exemplo:
/*

REAJUSTE DE SALRIO
AUTOR: GORKI STARLIN

*/
LOCAL NDICE := 20, SETVAR := 1
// cria o bloco de cdigo executvel
BLOCO := {|| SALRIO := SALRIO * NDICE/100 + SALRIO}
// cria o bloco de cdigo contendo a condio FOR
CONDIO1 := {|| SETOR = SETVAR}
DBEVAL (BLOCO, CONDIO1)
// mostra e avalia os blocos de
// cdigos
? SALRIO ATUALIZADOS !
QUIT

GEEK BRASIL http://www.geekbrasil.com.br

82

Clipper 5.2 Comandos e Funes

DBF( )

Propsito:

na

Sintaxe:

Retornar o ALIAS (apelido) do banco de dados aberto


rea de trabalho corrente.
DBF( ).

Exemplo:
USE FOLHA NEW
NOME := DBF( )
? NOME

//
//
//
//

DBFILTER( )

abre o arquivo de dados na prxima rea de


trabalho disponvel
armazena o nome do banco de dados na varivel
mostra o contedo do varivel.

Propsito:

filtro

Sintaxe:

Devolver uma cadeia de caracteres


estabelecido por SET FILTER.

referente ao

DBFILTER( ).

Exemplo:
USE FOLHA NEW
// abre o banco de dados
SET FILTER TO SALRIO < 40000.00 // estabelece um filtro aos
// registros a serem processados
LIST NOME, CARGO, SETOR, SALRIO
?DBFILTER( )
// resultado: SALRIO < 40000.00

DBGOBOTTOM( )
Propsito:

Sintaxe:

Desloca o ponteiro interno do arquivo de dados para


ltimo registro lgico do banco de dados.
DBGOBOTTOM( ).

Exemplo:
USE FOLHA
DBGOBOTTOM( )
// v para o fim do arquivo
DISPLAY NOME, COD, SALRIO

DBGOTO( )

GEEK BRASIL http://www.geekbrasil.com.br

83

Clipper 5.2 Comandos e Funes

Propsito:
um

Sintaxe:

Deslocar o ponteiro interno do arquivo de dados para


determinado registro lgico.
DBGOTO(<nregistro>).

Exemplo:
USE FOLHA
DBGOTO( 6 )
// v para o registro (record) nmero 6
DISPLAY NOME, COD, SALRIO

DBGOTOP( )

Propsito:

primeiro

Sintaxe:

Deslocar o ponteiro interno do arquivo para


registro do mesmo.

DBGOTOP( ).

Exemplo:
USE FOLHA
DBGOTOP( )
// v para o incio do arquivo
DISPLAY NOME, COD, SALRIO

DBRECALL( )
Propsito:

de

Sintaxe:

Recuperar (desmarcar) registro marcados no arquivo


dados.
DBRECALL( ).

Exemplo:
USE FOLHA INDEX INOME.NTX
SEEK JOO
IF DELETED( )
// se estiver marcado (deleted)
DBRECALL( )
? REGISTRO RECUPERADO
ENDIF

GEEK BRASIL http://www.geekbrasil.com.br

84

Clipper 5.2 Comandos e Funes

DBREINDEX( )
Propsito:
Sintaxe:

Recriar os ndices ativos no arquivo de dados.


DBREINDEX( ).

DBRELATION( )
Propsito:

a
de
SET

Sintaxe:

Devolver uma cadeia de caracteres que descreve


expresso usada para estabelecer o relacionamento
dados entre banco de dados atravs do comando
RELATION.
DBRELATION(<relacionamento>).

Exemplo:
USE FACULD NEW
// abre o arquivo de dados
USE CURSOS NEW
// abre o arquivo de dados
USE ALUNOS NEW
// abre o arquivo de dados
SET RELATION TO CODCUR INTO CURSOS, CODFACUL INTO FACULDADE
? DBRELATION(2)
// resultado: CODFACUL
? DBRSELECT( )
// resultado: 3

DBRSELECT( )
Propsito:

um

Sintaxe:

Devolver nmero da rea de trabalho a que se destina


relacionamento.
DBSELECT(<relacionamento>).

Exemplo:
USE FACULDAD NEW
USE CURSOS NEW
USE ALUNOS NEW

// abre o arquivo de dados


// abre o arquivo de dados
// abre o arquivo de dados
// monta dois relacionamentos
SET RELATION TO CODCUR INTO CURSOS, CODFACUL INTO FACULDADE
? DBRELATION(2)
// resultado: CODFACUL
? DBRSELECT(2)
// resultado: 3
? ALIAS(DBRSELECT(2))
// resultado: faculdade

GEEK BRASIL http://www.geekbrasil.com.br

85

Clipper 5.2 Comandos e Funes

DBSEEK( )

Propsito:

numa

Sintaxe:

Pesquisarmos registro do banco de dados indexado


chave especificada.
DBSEEK <chave>,[.T./.F.].

Exemplo:
USE MALA INDEX INOME
USE CLIENTES INDEX IESTADO NEW
MALA (DBSEEK(JOO, .F.))

// pesquisa no mala o nome JOO


// SER SEFTSEEK OFF
IF FOUND( )
// se existir
DISPLAY NOME, ENDEREO, CIDADE
ELSE
? NO ENCONTRADO !
? RECNO( )
// EOF( )
ENDIF

DBSELECTAREA( )
Propsito:
Sintaxe:

Seleciona uma rea de trabalho.


DBELECTAREA(<rea> | <apelido>).

Exemplo:
USE MALA INDEX INOME
DBSELECTAREA( 0 )
// seleciona a prxima rea disponvel
USE FOLHA INDEX CODF
LIST NOME, SALARIO,SETOR, COD
DBSELECTAREA(MALA)
// seleciona o arquivo rea MALA
LIST COD, CLIENTE, CIDADE
LIST MALACLIENTE, FOLHASALRIO
// lista registro de outra
// rea
MALA (DBAPPEND( ))
// cria um registro em branco no
// arquivo mala.dbf

DBSETDRIVER( )
Propsito:

ainda

Retornar o nome do driver de arquivo em uso, ou


trocar o tipo do driver de arquivo em uso.

GEEK BRASIL http://www.geekbrasil.com.br

86

Clipper 5.2 Comandos e Funes

Sintaxe:

DBSETCRIVER(<NOME DRIVER>).

Exemplo:
:
:
DBSETDRIVER (DBFNDX)
IF (DBSETDRIVER <> DBFNDX)
? O DRIVER .NDX NO VLIDO
ENDIF
:
:

DBSETINDEX( )
Propsito:
Sintaxe:

Abrir um arquivo de ndice em uma rea de trabalho.


DBSETINDEX(<nome do ndice>).

Exemplo:
USE FOLHA
DBSETINDEX(INOME)
DBSETINDEX(ISOBRENO)
IF FOLHA-> (DBSEEK (SILVA))
? FOLHA-> NOME, FOLHA->INDEXRECO
ELSE
? REGISTRO NO ENCONTRADO
ENDIF

DBSETORDER( )
Propsito:

mestre

Sintaxe:

Ativar um determinado ndice aberto como ndice


do banco de dados.
DBSETORDER(<Nmero do ndice>).

Exemplo:

GEEK BRASIL http://www.geekbrasil.com.br

87

Clipper 5.2 Comandos e Funes

USE FOLHA
SET INDEX TO INOME, ISOBRENOME
:
:
:
DBSETORDER(2)
// seta o segundo ndice aberto como
// principal, isto ISOBRENOME
DBSEEK (SILVA)

DBSETRELATION( )
Propsito:
Sintaxe:

<bloco

Relacionar duas rea (arquivos) de trabalho.


DBSETRELATION(
<Narea>|
<apelido>,
expresso> [<Cexpr>]).

Exemplo:
USE CLIENTES INDEX ICODCLI
USE VENDAS NEW
DBSETRELATION(CLIENTES, {|| VENDAS->CODVENCLI},;
VENDAS->CODVENCLI)
LIST CLIENTES->NOME, VENDAS->VALOR

DBSKIP( )

Propsito:
Sintaxe:

Saltar o ponteiro entre os registros do banco de dados.


DBSKIP (<valor do salto>).

Exemplo:
USE FOLHA
GO 1
DISPLAY
DBSKIP( 4 )
DISPLAY
SKIP - 2
DISPLAY

// resultado:

RECNO( ) = 5

// resultado:

RECNO( ) = 3

DBSTRUCT ()
GEEK BRASIL http://www.geekbrasil.com.br

88

Clipper 5.2 Comandos e Funes

Propsito:
a

Sintaxe:

Criar uma matriz com duas dimenses contendo


estrutura de um banco de dados.
DBSTRUCT ( ).

Exemplo:
# INCLUDE DBSTRUCT.CH
LOCAL ESTRUTURA
USE FOLHA NEW
ESTRUTURA := DBSTRUCT( )

// abre o banco de dados


// armazena a estrutura do banco
// de dados em ESTRUTURA
// usa bloco de cdigo p/ existir dados da
// estrutura
AEVAL( ESTRUTURA, {|CAMPO| QOUT (CAMPO [DBS_NAME])})

DBUNLOCKALL ( )
Exemplo:

Propsito:
Sintaxe:

Liberar todos os travamentos sobre as reas de trabalho.


DBUNLOCKALL ( ).

USE FOLHA SHARED NEW


USE CLIENTES SHARED NEW
FOLHA (FLOCK())
CLIENTES (FLOCK())
// trava o arquivo
DBUNLOCKALL( )
// libera todos os travamentos

DBUSEAREA ( )
Propsito:
Sintaxe:

<arquivo>
).

Abrir um arquivo em uma rea de trabalho.


DBUSEAREA
(<Lnome
rea>,<nome
driver>,
<apelido>,<Lconpartilhado>,<Lapenas leitura>

Exemplo:
DBUSEAREA (.T., DBFNTX,VENDAS)
BROWSE( )

GEEK BRASIL http://www.geekbrasil.com.br

// abre o arquivo vendas

89

Clipper 5.2 Comandos e Funes

DELETED ( )

Propsito:

deletado

Sintaxe:

Verificar se o registro
corrente
se
encontra
(marcado) atravs do comando DELETE.
DELETED ( ).

Exemplo:
USE FOLHA NEW
// abre os arquivo de dados
USE CARGOS NEW
DISPLAY ALL FR DELETED( )
// mostra todos os registros
// Deletados
DISPLAY ALL FOR FOLHA (DELETED( ))

DESCEND ( )

Propsito:
Sintaxe:

Criar chaves de ndices em ordem descendente.


DESCEND ( ).

Exemplo:
USE FOLHA NEW
// abre o arquivo de dados
INDEX ON DESCEND (nome) TO NID.NTX
// cria a chave de ndice
LIST NOME, COD, SALRIO, CARGO
// para utilizar o comando SEEK para fins de pesquisa no se
// esquea de declarar DESCEND( ).

DEVPOS ( )

Propsito:

nova

Sintaxe:

Movimentar a cabea de
impresso
posio especificada.
DEVPOS (<linha>,<coluna>).

para

uma

Exemplo:
SET DEVICE TO PRINT
@ 01,01 SAY EXEMPLO
DEVPOS(15,20)
// desloca a cabea de impresso exibe na

GEEK BRASIL http://www.geekbrasil.com.br

90

Clipper 5.2 Comandos e Funes

// linha 15, coluna 20


@ PROW( ), PCOL( ) SAY AS COORDENADAS MUDARAM

DEVOUTPICT ( )
Propsito:

como

Sintaxe:

Mostra uma informao de qualquer ponto da tela,


caracterstica de informao de sada.
DEVOUTPICT (<informao> ,
<clusula picture>
[<cor>]).

Exemplo:
DEVPOS (5,5)
DEVOUT(GORKI STARLIN, @!, B/W)

DIRECTORY ( )
Propsito:

nesta,

Sintaxe:

Criar uma matriz multidimensional


e
informaes sobre um diretrio.
DIRECTORY (<diretrio>, <atributos>).

armazenar

Exemplo:
# INCLUDE DIRECTRY.CH
// inclui o arquivo de definies
LOCAL DIRETRIO := DIRECTRY (*.DBF, D)
//
l
o
diretrio
// avalia e executa o bloco de cdigo
AEVAL ( diretrio, {|arquivo| qout (arquivo [F_NAME])})

DISKSPACE ( )
Propsito:

determinada

Sintaxe:

Retornar o espao livre ( em Bytes ) de uma


unidade de disco.
DISKSPACE (<drive>).

Exemplo:
FUNCTION COPIASEG( )

GEEK BRASIL http://www.geekbrasil.com.br

91

Clipper 5.2 Comandos e Funes

// calcula o tamanho da cpia


TAMANHO :=INT((RECSIZE * LASTREC + HEADER + 1 ))
// verifica se possvel a cpia no diskete
IF DISKSPACE(1) < tamanho // drive A
RETURN .F.
// retorne no possvel
ELSE
COPY TO A:BACKUP.DBF
// gera uma copia do b.d com o
nome
// backup.dbf no diskete da drive A
RETURN .T.
// retorne cpia OK!.

DOSERROR( )
D.O.S.

Propsito:

Devolver o cdigo do ltimo erro processado pelo

Sintaxe:

DOSERROR( ).

DOW( )

Propsito:

da

Sintaxe:

Extrair de uma data um nmero que especifica o


semana da mesma.
DOW(<data>).

dia

Exemplo:
// mostra o dia da semana da data de hoje (sistema)
? DOW (DATE( ))
// na forma de nmero
? DOW (DATE( ))
// na forma de uma cadeia de caracteres
DIA := 1
DO WHILE DIA <= 7
// faa enquanto dia <= 7
? DOW(DIA), CDOW(DIA)
// mostra o dia da semana
DIA ++
// equivalente a dia:= dia+1
ENDDO

DTOC( )

Propsito:
Sintaxe:

Converter um valor data para uma expresso caractere.


DTOC(<data>).

Exemplo:

GEEK BRASIL http://www.geekbrasil.com.br

92

Clipper 5.2 Comandos e Funes

? DATE( )
mostra a data de hoje (sistema)
? DATA DE HOJE ..: + DTOC(DATE( ))
// mostra a data, no
// formato de expresso caractere, concatenado em conjunto
// com uma cadeia de caracteres.

EMPTY( )

Propsito:
Sintaxe:

Verifica se uma expresso vazia.


EMPTY(<expresso>).

Exemplo:
VCOD := SPACE(5)
@ 10,10 SAY DIGITE O CDIGO....: GET VCOD PCT 99999;
VALID .NOT. EMPTY(VCOD)
READ

EOF( )

Propsito:

no

Sintaxe:

Verificar se o ponteiro lgico de registros se encontra


fim do arquivo.
EOF( ).

Exemplo:
USE MALA INDEX CODI
VCOD:= SPACE(5)
@ 10,20 SAY CDIGO DO FUNCIONRIO A PESQUISAR..: GT VCOD
READ
SEEK VCOD
// pesquisa o cdigo digitado
IF EOF( )
// se for o final do arquivo
? registro no encontrado
ELSE
DISPLAY NOME, ENDEREO
ENDIF

GEEK BRASIL http://www.geekbrasil.com.br

93

Clipper 5.2 Comandos e Funes

ERRORBLOCK( )
Propsito:

Sintaxe:

Avaliar um bloco de cdigo (Code Block) quando


detectado um erro no programa em tempo de execuo.
ERRORBLOCK(<errorhandler>).

ERRORLEVEL( )
Propsito:

do

Sintaxe:

EVAL( )

Propsito:
Sintaxe:

Retornar ou configurar o cdigo de retorno de error


Clipper.
ERRORLEVEL(cdigo de retorno).

Executar um Bloco de Cdigo.


EVAL(<bloco>, <lista de argumentos>).

Exemplo:
BLOCO := {| ARGUMENTO| ARGUMENTO + 1}
? EVAL (BLOCO,4)
// resultado: 5

EXP( )
Exemplo:
? EXP(1)

Propsito:
Sintaxe:

Calcular o E ** X.
EXP(<expoente>).

// resultado: 2.72

FCLOSE( )

Propsito:
Sintaxe:

Fechar um arquivo do tipo binrio aberto.


FCLOSE(<nmero>).

Exemplo:

GEEK BRASIL http://www.geekbrasil.com.br

94

Clipper 5.2 Comandos e Funes

HANDLE:= FOPEN (LEIAME.TXT)


// abrindo e obtendo o HENDLE
:
:
:
:
IF FCLOSE(HANDLE)
// fecha o arquivo LEIAME.TXT
? ARQUIVO FECHADO
ELSE
// seno conseguir fechar o arquivo
? NO FOI POSSVEL FECHAR O ARQUIVO
ENDIF

FCOUNT( )

Propsito:
Sintaxe:

Retornar a quantidade de campos do arquivo de


dados (.DBF) aberto na rea corrente de trabalho.
FCOUNT( ).

Exemplo:
USE MALA
USE CADASTRO
? FCOUNT( )
? MALA (FCOUNT( ))

FCREATE( )

Propsito:
Sintaxe:

// resultado: 7
// resultado: 5

Criar um arquivo binrio de tamanho zero.


FCREATE(<arquivo>, [<atributo>]).

Exemplo:
HANDLE := FCREATE (LEIAME.TXT,O)
// cria o arquivo
IF HANDLE = -1
? houve erro na criao do arquivo
ELSE
FWRITE (HANDLE, ISTO E UMA MENSAGEM)
FCLOSE (HANDLE)
ENDIF

GEEK BRASIL http://www.geekbrasil.com.br

95

Clipper 5.2 Comandos e Funes

FERASE( )

Propsito:
Sintaxe:

Apagar arquivo do disco.


FERASE (<arquivo>).

Exemplo:
OPERAO := FERASE(LEIAME.TXT)
IF OPERAO = -1
? ERRO !, ARQUIVO NO FOI APAGADO
ELSE
? ARQUIVO APAGADO
ENDIF

FERROR( )

Propsito:

um

Sintaxe:

FIELD( )

Propsito:

dados

Sintaxe:

Analisar se houve
arquivo no disco.

erro

na

operao

aplicada

FERROR( ).

Retornar o nome de um campo


atual.
FIELD(<posio>).

do

arquivo

de

Exemplo:
USE MALA
? FIELD(2)
// resultado: NOME
FOR I := TO FCOUNT( )
? FIELD(I)
NEXT

FILE( )

Propsito:
Sintaxe:

Verificar a existncia de arquivos gravados no disco.


FILE(<arquivo>).

GEEK BRASIL http://www.geekbrasil.com.br

96

Clipper 5.2 Comandos e Funes

Exemplo:
USE MALA
// abre o arquivo de dados
IF FILE(NOMEI.NTX)
// se existir o arquivo NOMEI.NTX
SET INDEX TO NOMEI
// abre o arquivo de ndice
ELSE
// se existir
INDEX ON NOME TO NOMEI
// cria o arquivo de ndice
ENDIF
IF FILE(\PRODUO\CADASTRO.DBF)// verifica no diretrio
// \PRODUO
.
.
.

FKLABEL( )

Propsito:

nome

Sintaxe:

Retorna uma cadeia de caracteres representante


da tecla de funo especificada.
FKLABEL(<nmero da tecla>).

ao

Exemplo:
? FKLABEL(5)
? FKLABEL(7)

FKMAX( )

Propsito:

Sintaxe:

// resultado: F5
// resultado: F7

Retornar um valor numrico inteiro que representa


nmero de teclas de funes.
FKMAX( ).

Exemplo:
? FKMAX( )

// resultado: 40

FLOCK( )

GEEK BRASIL http://www.geekbrasil.com.br

97

Clipper 5.2 Comandos e Funes

Propsito:
quando
de Redes

Sintaxe:

Travar o arquivo de dados todos os


aberto em modo compartilhado em
Locais.

registros
ambiente

FLOCK( ).

Exemplo:
USE MALA SHARED
// abre o arquivo compartilhado
IF FLOCK( )
? ARQUIVO TRAVADO!
REPLACE ALL SALRIO WITH SALARIO*1.2
ELSE
? NO FOI POSSVEL TRAVAR O ARQUIVO
ENDIF

FOPEN( )

Propsito:
Sintaxe:

FOUND( )

Propsito:

bem

Sintaxe:

Abrir um arquivo binrio.


FOPEN(<arquivo>, <modo>)

Verificar se uma pesquisa no arquivo de dados


sucedida.

foi

FOUND( ).

Exemplo:
USE MALA
LOCATE NOME = JOO
IF FOUND( )
DISPLAY NOME, ENDEREO
ELSE
? REGISTRO NO ENCONTRADO
ENDIF

FREAD( )

GEEK BRASIL http://www.geekbrasil.com.br

98

Clipper 5.2 Comandos e Funes

Propsito:
arquivo,

Sintaxe:

Realizar a leitura de caracteres de


armazenando os mesmos em uma varivel.
FREAD(<handle>, @ <varivel>, <bytes>).

um

Exemplo:
# DEFINE BLOCO 128
BUFFER := SPACE(BLOCO)
HANDLE := FOPEN(LEIAME.TXT)
IF FERROR ( ) ! = 0
? NO FOI POSSVEL ABRIR O ARQUIVO
ELSE
IF FREAD (HANDLE, @BUFFER, BLOCO) <> BLOCO
? ERROR NA LEITURA DO ARQUIVO
ENDIF
ENDIF
?BUFFER
// mostra os caracteres lidos do um arquivo

FREADSTR( )
Propsito:
Sintaxe:

Retorna caracteres lidos de arquivo.


FREADSTR(<handle>, <bytes>).

Exemplo:
# DEFINE FILEIO.CH
HANDLE := FOPEN (LEIAME.TXT, FC_NORMAL)
IF FERROR( ) ! = 0
? ERROR DE ABERTURA
CANCEL
ELSE
STRING
FCLOSE(HANDLE)
ENDIF

FRENAME( )

Propsito:
Sintaxe:

Renomear um arquivo gravado em disco.


FRENAME(<nome atual>, <novo nome>).

GEEK BRASIL http://www.geekbrasil.com.br

99

Clipper 5.2 Comandos e Funes

Exemplo:
IF FRENAME(LEIAME.TXT, NAOLEIAM.TXT) <> -1
? ARQUIVO RENOMEADO
ELSE
? FALHA NA OPERAO!!!
ENDIF

FSEEK( )

Propsito:

posio

Sintaxe:

Deslocar o ponteiro de arquivo para uma


dentro do mesmo.
FSEEK(<handle>, <bytes>, <incio>).

nova

Exemplo:
# INCLUDE FILEIO.CH
// diretrio \clipper5\include
IF (HANDLE := FOPEN (LEIAME.TXT)) > 0
TAMANHO := FSEEK (HANDLE, 0, FS_END)
// posiciona o ponteiro no incio do arquivo
FSEEK (HANDLE, 0)
ELSE
? NO FOI POSSVEL ABRIR O ARQUIVO
ENDIF

FWRITE( )

Propsito:

arquivo

Sintaxe:

GETENV( )

Propsito:

sistema

Grava uma expresso de caracteres em


aberto.
FWRITE(<handle>, <caracteres>, <bytes>).

um

Carregar o contedo
operacional DOS.

do

GEEK BRASIL http://www.geekbrasil.com.br

de

uma

varivel

100

Clipper 5.2 Comandos e Funes

Sintaxe:

GETENV(<varivel de ambiente>).

Exemplo:
CAMINHO := GETENV (PATH)
// l a configurao do PATH do DOS.
SET PATH TO (CAMINHO)
// configura o caminho de pesquisa de
// arquivo da aplicao, ajustando-a com o
// PATH corrente do DOS.

HARDCR( )

Propsito:

ou
uma
(CHR(13),

Sintaxe:

Substitui todos os Soft Carriage Returns (HR(141),


seja os retornos automticos) encontrados em
expresso caractere por Hard Carriage Returns
ou seja, retornos manuais).
HARDCR(<expresso caractere>).

Exemplo:
USE CLIENTES
SET PRINT ON

//
//
//
//
//
//
//

? HARDCR(OBS)
SET PRINTER OFF

HEADER( )

Propsito:

de

Sintaxe:

abre o arquivo de dados


liga a sada do comando de console para
impressora.
mostra (imprime) o contedo do campo memo
formatando a mudana automtica de linha
de Memoedit( ).
desliga a impressora.

Retornar o nmero de Bytes do cabealho do arquivo


dados em uso.
HEADER( ).

Exemplo:
USE CLIENTES
? HEARDER( )

IF( )

// mostra o tamanho do cabealho do arquivo de


// dados CLIENTES.DBF.

Propsito:

Processar um teste condicional.

GEEK BRASIL http://www.geekbrasil.com.br

101

Clipper 5.2 Comandos e Funes

Sintaxe:

IF (<condio>, <Ao1>, <Ao2>).

Exemplo:
SALDO := 10000.00
R:=IF(SALDO <0, OK, SALDO NEGATIVO) // resultado: OK
N:= SPACE(30)
@ 10,10 SAY DIGITE O NOME...: GET N VALID;
IF(N <> SPACE(30), .T. , .F. )
// analisa a expresso
// digitada por GET
READ

INDEXEXT( )
Propsito:

de
Clipper,

Sintaxe:

Retornar uma string que indica o tipo de arquivo


ndice que est sendo processado pelo programa
ou seja, .NTX ou NDX.
INDEXEXT( ).

Exemplo:
USE MALA
// abre arquivo de dados.
IF .NOT. FILE(INOME + INDEXEXT( ) )
// verifica se o arquivo
// de ndice existe, a funo substitui a
// expresso .NDX OU NTX.
INDEX ON NOME TO INOME
// caso no exista, criado.
ENDIF

INDEXKEY( )
especificado.

Propsito:

Retornar a expresso de chave de um ndice

Sintaxe:

INDEXKEY(<ordem>).

Exemplo:
USE CLIENTES INDEX INOME, IENDERECO
? INDEXKEY(2)
// resultado: IENDEREO
? INDEXKEY(1)
// resultado: INOME

INDEXORD( )

GEEK BRASIL http://www.geekbrasil.com.br

102

Clipper 5.2 Comandos e Funes

Propsito:

ndice

Sintaxe:

Fornecer a ordem
corrente.

de

abertura

do

arquivo de

INDEXORD( ).

Exemplo:
USE CLIENTES
SET INDEX TO INOME, ICEP, ICODIGO
? INDEXORD( )
// resultado: 1
VOLTA := INDEXORD( )
SET ORDER TO 2
// muda o controle do arquivo para ICEP
? INDEXORD( )
// resultado: 2
SET ORDER TO VOLTA
? INDEXORD( )
// resultado: 1

INKEY( )

Propsito:
Sintaxe:

Aguarda do buffer do teclado um caractere qualquer.


INKEY(<tempo>).

Exemplo:
@ 22,10 SAY TECLE ALGO PARA CONTINUAR
TECLA := INKEY(5)
// espera por um mximo 5 segundos
? 23,01 SAY VOC PRESSIONOU A TECLA DE CDIGO..: + STR(TECLA)

INT( )

Propsito:
Sintaxe:

Retornar o valor inteiro de uma expresso numrica.


INT(<nmero>).

Exemplo:
VAR1:=VAR2:=2929.93
? INT(VAR1), VAR2

// resultado: 2929

GEEK BRASIL http://www.geekbrasil.com.br

2929.93

103

Clipper 5.2 Comandos e Funes

ISALPHA( )

Propsito:

caractere

Sintaxe:

Pesquisar em uma expresso caractere,


se
o
mais esquerda (primeiro) uma letra.
ISALPHA(<expresso caractere>).

Exemplo:
VAR1:= RUA 13 DE MAIO
VAR2:= 1928
? ISALPHA(VAR1)
? ISALPHA(VAR2)

ISCOLOR( )

Propsito:

aplicao

Sintaxe:

ISDIGIT( )

Propsito:

expresso

Sintaxe:

// resultado: .T.
// resultado: .F.

Pesquisar se o computador que est rodando a


possui a caracterstica de exibir cores.
ISCOLOR( ).

Pesquisa se o primeiro
caractere
caractere um nmero.
ISDIGIT(<expresso caractere>).

de

uma

de

uma

Exemplo:
VAR1:= RUA 13 DE MAIO
VAR2:= 1928
? ISDIGIT(VAR1)
resultado: .F.
? ISDIGIT(VAR2)
resultado: .T.

ISLOWER( )

Propsito:

expresso

Sintaxe:

Pesquisa se o primeiro
caraactere
caractere uma letra maiscula.
ISLOWER(<expresso caractere>).

GEEK BRASIL http://www.geekbrasil.com.br

104

Clipper 5.2 Comandos e Funes

Exemplo:
VAR1:= RUA 13 DE MAIO
VAR2:= 1928
? ISLOWER(VAR1)
// resultado: .T.
? ISLOWER(VAR2)
// resultado: .F.
? ISLOWER(EDITORA ERICA)
// resultado: .F.

ISPRINTER( )
Propsito:

pronta

Sintaxe:

Testar se a impressora conectada


para impresses.

na

LPT1

est

ISPRINTER( ).

Exemplo:
:
RESPOSTA := S
@ 22,10 SAY CONFIRMA SADA DO RELATRIO...: GET RESPOSTA
READ
IF .NOT. ISPRINTER( )
// verifica se a impresso no se
// encontra pronta.
@ 23,10 SAY IMPRESSO NO PRONTA
TONE(300,1)
// emite um som
INKEY(3)
// aguarda trs segundos
LOOP
// sobe at a linha do DO WHILE
ENDIF
REPORT FORM RELFOLHA TO PRINT
// sada do relatrio.

ISUPPER( )

Propsito:

expresso

Sintaxe:

Pesquisar se o primeiro
caractere
caratere uma letra maiscula.
ISUPPER(<expresso caractere>).

de

uma

Exemplo:
VAR1:= RUA 13 DE MAIO
VAR2:= 1928
? ISLOWER(VAR1)
// resultado: .T.
? ISLOWER(VAR2)
// resultado: .F.

GEEK BRASIL http://www.geekbrasil.com.br

105

Clipper 5.2 Comandos e Funes

? ISLOWER(EDITORA ERICA)

I2BIN( )

Propsito:

inteiro

Sintaxe:

LASTKEY( )

Propsito:

foi

Sintaxe:

// resultado: .T.

Realizar a converso de um nmero


binrio de 16 bits.

inteiro

para

I2BIN( ).

Retornar o cdigo INKEY( )


pressionada.

da

ltima

tecla

que

LASTKEY( ).

Exemplo:
//
SEO DE @..GETS
READ
IF LASTKEY( ) = 27
RETURN
ENDIF

LASTREC( )

Propsito:

dados

Sintaxe:

// se a ltima tecla foi o <ESC>


// termina

Verificar a quantidade de registros no arquivo


corrente.

de

LASTREC( ).

Exemplo:
USE CLIENTES
? RECCOUNT( ), LASTREC( )
SET FILTER TO ESTADO = SP
? LASTREC( )
COUNT TO TOTALREG
? TOTALREG

LEFT( )

Propsito:

de

// resultado: 212

212

// resultado: 212
// resultado: 46

Extrair um segmento de caracteres retirados do incio


uma expresso caractere.

GEEK BRASIL http://www.geekbrasil.com.br

106

Clipper 5.2 Comandos e Funes

Exemplo:

Sintaxe:

LEFT(<exp. caractere>, <quantidade>).

VAR := RUA 13 DE MAIO


? LEFT(VAR, 3)
// resultado: RUA

LEN( )

Propsito:

Sintaxe:

Fornecer o nmero de elementos de um vetor ou


tamanho de uma expresso caractere.
LEN(<exp. caractere>|<vetor>).

Exemplo:

LOCAL VAR
? LEN(RUA)
// resultado: 3
VAR := RUA 13 DE MAIO
? LEN(VAR)
// resultado: 14

LENNUM( )

Propsito:
Sintaxe:

Fornecer o tamanho de uma expresso numrica.


LENNUM(<exp. numrica>).

Exemplo:
VAR := 299.999
? LENNUM(VAR)

LOG( )
numrica.

// resultado: 7

Propsito:

Fornecer o logaritmo natural de uma expresso

Sintaxe:

LOG(<exp.numrica>).

GEEK BRASIL http://www.geekbrasil.com.br

107

Clipper 5.2 Comandos e Funes

Exemplo:
? LOG(10)
? LOG(2.71)

// resultado: 2.30
// resultado: 1.00

LOWER( )

Propsito:
Sintaxe:

Converter caractere de maisculas para minsculas.


LOWER(<exp. caractere>).

Exemplo:
NOME := JOO DA SILVA
? LOWER(NOME)
// resultado: JOO DA SILVA.

LTRIM( )

Propsito:

uma

Sintaxe:

Remover todos os espaos em branco esquerda de


expresso caractere.
LTRIM(<exp. caractere>).

Exemplo:
VALOR := 100
STRING := STR(VALOR)
? STRING
// resultado: 100
? LTRIM(STRING)
// resultado: 100

LUPDATE( )

Propsito:

dados

Sintaxe:

Fornecer a data da ltima atualizao do banco de


corrente.
LUPDATE( ).

Exemplo:
USECLIENTES
? LUPDATE( )

// resultado: DD/MM/AA

GEEK BRASIL http://www.geekbrasil.com.br

108

Clipper 5.2 Comandos e Funes

L2BIN( )

Propsito:

32

Sintaxe:

MAX( )

Propsito:

numricas

Sintaxe:

Converter um valor inteiro para um inteiro binrio de


bits.
L2BIN(<exp.numrica>).
Fornecer o maior valor entre duas propores
ou datas.
MAX(<exp. numrica 1>, <exp. numrica 2>).
MAX(<data1>, <data 2>).

Exemplo:
? MAX (200, 292)

MAXCOL( )

Propsito:

da

Sintaxe:

// resultado: 292

Especificar o nmero mximo


tela.

de coluna disponvel

MAXCOL( ).

Exemplo:
@ 0,0 TO MAXROW( ), MAXCOL( ) DOUBLE

MAXROW( )

Propsito:
Sintaxe:

Especificar o maior nmero de linha da tela.


MAXROW( ).

Exemplo:
OBS := SPACE(10)
MEMOEDIT(OBS,0,0, MAXROW( ), MAXCOL( ) )

MEMOEDIT( )

GEEK BRASIL http://www.geekbrasil.com.br

109

Clipper 5.2 Comandos e Funes

Propsito:
ou
inicial>,
<modo
da linha>,
<coluna

Sintaxe:

Permitir a edio na tela de campos memos


expresses caractere.
MEMOEDIT (<expresso caractere>,
<linha
<coluna inicial>, <linha final>, <coluna final>,
de edio>, <funo do usurio>,
<tamanho
<tamanho da tabulao>,
<linha buffer>,
buffer>, <linha da janela>).

Exemplo:
FALTA EXEMPLO
CLEAR
USE CLIENTES
LOCATE FOR NOME = JOO
// acesa um registro
@ 2,2 TO 22,79 DOUBLE
TEXTO = SPACE (10)
TEXTO:= MEMOEDIT ( TEXTO,3,3,21,78,.T., ACENTO)
REPLACE OBS WITH TEXTO
// salva texto no campo do
arquivo
// :
// :
************************************************************
*
ACENTUAO DE CAMPOS MEMOS EM CLIPPER 5.0/5.01
*
POR: GORKI STARLIN C. OLIVEIRA
*
DATA: NOV. 92
************************************************************
FUNCTION ACENTO ( MODO, LINHA, COLUNA)
// DEFINIR A FUNO
# DEFINE INSERT 22
// cria uma coluna contante
LOCAL RETORNA := LASTKEY( )
// armazena a ltima tecla
CURSOR := .T.
// modo insert -> .T. (insere)
@ 01,02 SAY LINHA...: + STR(LINHA) + COLUNA...: + STR(COLUNA)
DO CASE
// faa os casos
CASE MODO = 3
CURSOR := .F.
// cursor normal
SET CURSOR( IF(CURSOR,2,1) )
// muda a forma do
cursor
TECLAS( )
// chama a funo tecals( )
CASE MODO = 0
// modo em estado de espera
IF READINSERT( ) != CURSOR
SETCURSOR( IF(CURSOR,2,1) )
// muda a forma
do
// cursor
ENDIF
TECLAS( )
OTHERWISE // <F2> ou <CONTRL-W> grava e sai do memoedit( )

GEEK BRASIL http://www.geekbrasil.com.br

110

Clipper 5.2 Comandos e Funes

IF LASTKEY( ) = - 1
// se teclar <F2>
RETORNA := 23
// retorna <CTRL>+<W>
ELSEIF
LASTEKEY( ) = INSERT
CURSOR = !READINSERT( )
SETCURSOR(IF (CURSOR,2,1) )
RETORNA := 22
ENDIF
DO CASE
RETURN (retorna)// retorna o controle para DBEDIT( ).
// ATIVA AS FUNES DE TRATAMENTO DE ACENTOS
FUNCTION TECLAS
// define a funo teclas( ).
// interliga teclas as funes de tratamento individual de
// acentos.
SET KEY 39 TO AGUDO( )
SET KEY 96 TO CRAZE( )
SET KEY 94 TO CIRCUNFLEX( )
SET KEY 34 TO TREMA
SET KEY 47 TO CCEDILHA
SET KEY 126 TO TIL
RETURN .T.
FUNCTION AGUDO( )
// Esta funo ser chamada toda vez que a tecla (), ou seja
// CHR(39) for teclada
LOCAL TECLA := INKEY(0)
LOCAL CARACTERE := CHR(TECLA)
DO CASE
CASE CARACTER = A
KEYBOAD A
CASE CARACTER = a
KEYBOAD CHR9160)
CASE CARACTER = E
KEYBOAD CHR(144)
CASE CARACTER = e
KEYBOAD CHR(130)
CASE CARACTER $ iI
KEYBOAD CHR(161)
CASE CARACTER $ Oo
KEYBOAD CHR(162)
CASE CARACTER $ Uu
KEYBOAD CHR(163)
OTHER
SET KEY 39 TO

GEEK BRASIL http://www.geekbrasil.com.br

111

Clipper 5.2 Comandos e Funes

KEYBOAD CARACTER
ENDCASE
RETURN .T.
FUNCTION CRAZE
// Esta funo ser chamada toda vez que a tecla(^), ou seja
// CHR(94) for teclada
CARACTERE:= CHR(TECLA)
DO CASE
CASE CARACTER = A
KEYBOAD CHR(143)
CASE CARACTER = a
KEYBOAD CHR(131)
CASE CARACTER = e
KEYBOAD CHR(136)
CASE CARACTER $ Oo
KEYBOAD CHR(162)
OTHER
SET KEY 94 TO
KEYBOAD CARACTER
ENDCASE
RETURN .T.
// FUNO PARA TREMA - ASPAS - CHR(34)
FUNCTION TREMA( )
// Esta funo ser chamada toda vez que a tecla(), ou seja
// CHR(34) for teclada
// Para ativar o trema: <> + <U>
TECLA := INKEY(0)
CARACTERE:= CHR(TECLA)
DO CASE
CASE CARACTER = U
KEYBOARD CHR(154)
CASE CARACTER = u
KEYBOARD CHR(129)
OTHER
SET KEY 34 TO
KEYBOARD CARACTER
ENDCASE
RETURN .T.
// FUNO PARA O TRATAMENTO DE CEDILHA - CHR(47) - /

GEEK BRASIL http://www.geekbrasil.com.br

112

Clipper 5.2 Comandos e Funes

FUNCTION CCEDILHA( )
// Esta funo ser chamada toda vez que a tecla(,), ou seja
// CHR(47) for teclada
// Para ativar a cedilha: </> + <C>
TECLA := INKEY(0)
CARACTERE:= CHR(TECLA)
DO CASE
CASE CARACTER = C
KEYBOARD CHR(128)
CASE CARACTER = c
KEYBOARD CHR(135)
OTHER
SET KEY 44 TO
KEYBOAD CARACTER
ENDCASE
RETURN .T.
// FUNO PARA TRATAMENTO TO ACENTO TIL - CHR(126)
FUNCTION TIL( )
// Esta funo ser chamada toda vez que a tecla(~), ou seja
// CHR(126) for teclada
TECLA := INKEY(0)
CARACTERE:= CHR(TECLA)
DO CASE
CASE CARACTER = A
KEYBOAD CHR(142)
CASE CARACTER = a
KEYBOAD CHR(132)
CASE CARACTER = O
KEYBOAD CHR(153)
CASE CARACTER = o
KEYBOAD CHR(148)
OTHER
SET KEY 126 TO
KEYBOAD CARACTER
ENDCASE
RETURN .T.

MEMOLINE( )
GEEK BRASIL http://www.geekbrasil.com.br

113

Clipper 5.2 Comandos e Funes

Propsito:
ou

Sintaxe:

<nmero
<rolagem>).

Extrair uma linha de texto de um campo memo


expresso caractere.
MEMOLINE(<campo>,
<tamanho
da
linha>,
da
linha>,
<tamanho
da
tabulao>,

Exemplo:
//
IMPRESSO DE CAMPOS MEMOS
USE CLIENTES
GOTO 3
T_LINHAS := MLCOUNT(OBS,40,3,.T.)

// obtm a quantidade de
// linhas
SET PRINT ON
// liga a sada da console para a impressora
FOR I := 1 TO T_LINHAS
? MEMOLINE (OBS,40,I,3,.T.)
NEXT
SET PRINT OFF
// desliga a impressora

MEMOREAD( )
Propsito:

do

Sintaxe:

Carregar o contedo de arquivo no formato de texto


disco.
MEMOREAD(<arquivo>).

Exemplo:
// EDITOR DE TEXTOS
CLEAR
VARQUIVO:=SPACE(12)
@ 05,20 SAY EDITOR DE TEXTOS EM CLIPPER
@ 10,15 SAY NOME DO ARQUIVO PARA EDITAR......: GET VARQUIVO
READ
EDITARQUIVO:= MEMOREAD(VARQUIVO)
@ 00,00 TO 24,79 DOUBLE
EDITARQUIVO:= MEMOEDIT(EDITARQUIVO, 01,01,23,78)
IF .NOT. MEMOWRIT(VARQUIVO,EDITARQUIVO)
? NO FOI POSSVEL GRAVAR O TEXTO
ENDIF

GEEK BRASIL http://www.geekbrasil.com.br

114

Clipper 5.2 Comandos e Funes

MEMORY( )

Propsito:

do

Sintaxe:

Fornecer a quantidade
computador.
MEMORY(<valor>).

de

memria

disponvel

Exemplo:
IF MEMORY(2)>= 128

// verificar a disponibilidade de 128 K de


// memria livre.

RUN RELOGIO.EXE
ELSE

? NO EXISTE MEMRIA DISPONVEL

ENDIF

MEMOTRAN( )
Propsito:

return/line
caractere.

Sintaxe:

manual>,

Substituir os caracteres de controles Carriage


feeds em campos Memos ou em uma expresso
MEMOTRAN(<campo>,

<substituio

<substituio automtica>).

Exemplo:
REPLACE OBS WITH MEMOTRAN(OBS, , ) // retira todos os
// caracteres de controle do texto.

MEMOWRIT( )
Propsito:

ou

Sintaxe:

Gravar em um arquivo em disco um


uma expresso caractere.
MEMOWRIT(<arquivo>, <Memo>).

campo

Memo

Exemplo:
// EDITOR DE TEXTOS
CLEAR
VARQUIVO:=SPACE(12)
@ 05,20 SAY EDITOR DE TEXTOS EM CLIPPER
@ 10,15 SAY NOME DO ARQUIVO PARA EDITAR....: GET VARQUIVO
READ
EDITARQUIVO:= MEMOREAD(VARQUIVO)

GEEK BRASIL http://www.geekbrasil.com.br

115

Clipper 5.2 Comandos e Funes

@ 00,00 TO 24,79 DOUBLE


EDITARQUIVO:= MEMOEDIT(EDITARQUIVO, 1,1,23,78)
IF .NOT. MEMOWRIT (VARQUIVO, EDITARQUIVO)
? NO FOI POSSVEL GRAVAR O TEXTO
ENDIF

MIN( )

Propsito:

expresses

Sintaxe:

Fornecer o menor valor entre duas datas


numricas.
MIN(<exp. numrica 1>, <exp. numrica 2>).
MIN(<data 1>, <data 2>).

ou

Exemplo:
? MIN (300,252)
// resultado: 252
? MIN (DATE( ), DATE( ) + 5)
// resultado: o valor de date( )

MLCOUNT( )
Propsito:

ou
da

Sintaxe:

Fornecer a quantidade de linhas de um campo Memo


expresso caractere.
MLCOUNT(<campo>,
<tamanho>,
<tamanho
tabulao>, <rolagem>).

Exemplo:
// IMPRESSO DE CAMPOS MEMOS
USE CLIENTES
GOTO 3
T_LINHAS := MLCOUNT(OBS,40,3,.T.)

// obtm a quantidade de
// linhas
SET PRINT ON
// liga a sada da console para a impressora
FOR I := 1 TO T_LINHAS
? MEMOLINE(OBAS,40,I,3,.T.)
NEXT
SET PRINT OFF
// desliga a impressora

GEEK BRASIL http://www.geekbrasil.com.br

116

Clipper 5.2 Comandos e Funes

MLPOS( )

Propsito:

um

Sintaxe:

linha>,

Fornecer a posio de uma linha de texto dentro de


campo Memo ou uma expresso caractere.
MLPOS(<campo>, <tamanho da linha>, <nmero
<tam. tabulao>, <rolagem>).

Exemplo:
TEXTO := MEMOREAD(TESTE.TXT)
POSICAO := MLPOS(TEXTO, 40, 5)
? SUBSTR(TEXTO, POSICAO, 15)

MOD( )

Propsito:
Sintaxe:

MONTH( )

Propsito:

um

Sintaxe:

Retorna o resto da diviso do primeiro valor pelo outro.


MOD(VALOR1, VALOR2).

Realizar a converso de um dado do tipo Data


nmero inteiro referente ao ms da Data.
MONTH(<data>).

para

Exemplo:
SET DATE TO BRIT
? DATE( )
? MONTH(DATE( ) )

// resultado: Mostra a data do sistema


// resultado: Mostra o nmero do ms da data
// do sistema.
? MONTH(CTOD(11/10/92))
// resultado: 10

NETERR( )

Propsito:

de

Sintaxe:

Verificar se um comando de manipulao de arquivo


dados falhou em ambiente de Rede Local.
NETERR( ).

GEEK BRASIL http://www.geekbrasil.com.br

117

Clipper 5.2 Comandos e Funes

Exemplo:
USE MALA SHARED
// abre o arquivo no modo compartilhado
IF NETERR( )
// se houver erro no comando anterior
? ARQUIVO NO DISPONVEL
ELSE
SET INDEX TO INOME, ICEP
ENDIF
:
:

NETNAME( )

Propsito:

Rede
Exemplo:

Sintaxe:

Retornar a identificao da estao


Local.

Propsito:

no

Sintaxe:

na

NETNAME( ).

? NETNAME( )

NEXTKEY( )

corrente

// resultado: ESTAO 3

Retornar o cdigo (ASCII) do


buffer de teclado.

caractere

pendente

NEXTKEY( ).

Exemplo:
KEYBOARD A
? NEXTKEY( ), LASTKEY( )
? INKEY( ), LASKTKEY( )
? NEXTKEY( )

OS( )

Propsito:
Sintaxe:

// escreve no buffer o caractere A


// resultado: 27 27
// resultado: 27 27
// resultado: 0

Fornecer o nome do sistema operacional.


OS( ).

Exemplo:

GEEK BRASIL http://www.geekbrasil.com.br

118

Clipper 5.2 Comandos e Funes

? OS( )

// resultado: DOS 5.0

PAD( )

Propsito:

em
ou

Sintaxe:

Proporcionar o
preenchimento
de
caracteres
variveis ou valores dos tipos numrico, data
caractere.
PADL(<varivel|valor>, <tamanho>, <caractere>)
PADC(<varivel|valor>, <tamanho>, <caractere>)
PADR(<varivel|valor>, <tamanho>, <caractere>)

Exemplo:
DADO1:= RICA
DADO2:= RICA
DADO1:= RICA
? PADC(DADO1,20,=)
? PADL(DADO1,20,=)
? PADR(DADO1,20,=)

PCOL( )

Propsito:

da

Sintaxe:

// resultado: =====RICA=======
// resultado: ============RICA
// resultado: RICA============

Devolver a posio numrica referente


cabea de impresso.

coluna

PCOL( ).

Exemplo:
SET DEVICE TO PRINT
@ 10,10 SAY DATE( )
@ 10, PCOL( ) +5 SAY TIME( )
SET DEVICE TO SCREEN

PCOUNT( )

Propsito:

rotina

Determinar o nmero de parmetros recebidos pela


a ser executada.

GEEK BRASIL http://www.geekbrasil.com.br

119

Clipper 5.2 Comandos e Funes

Sintaxe:

PCOUNT( ).

Exemplo:
A:= 37
B:= 39
IF COMPARA(A,B)
:
:
<instrues>
:
FUNCTION COMPARA(VALOR1, VALOR2)
IF PCOUNT( ) = 0// se no foi passado nenhum parmetro
? ERRO, NO FORAM PASSADOS OS VALORES PARA COMPARAO
RETURN
ENDIF
IF VALOR1 = VALOR2
RETURN .T.
ELSE
RETURN .F.
ENDIF

PROCLINE( )
Propsito:
Sintaxe:

Fornecer o nmero de linhas de um programa fonte.


PROCLINE(<ativao>).

Exemplo:
FUNCTION COMPARA(VALOR1, VALOR2)
IF PCOUNT( ) = 0// se no foi passado nenhum parmetro
? ERRO, NO FORAM PASSADOS OS VALORES PARA COMPARAO
RETURN
ENDIF
? PROCLINE( )
// resultado: 11
IF VALOR1 = VALOR2
RETURN .T.
ELSE
RETURN .F.
ENDIF

PROCNAME( )
Propsito:

sendo

Sintaxe:

Fornecer o nome da rotina


executada.
PROCNAME(<ativao>).

GEEK BRASIL http://www.geekbrasil.com.br

que

foi

ou

est

120

Clipper 5.2 Comandos e Funes

PROW( )

Propsito:

da

Sintaxe:

Fornecer o nmero da linha do posicionamento atual


cabea da impresso.
PROW( ).

Exemplo:
SET DEVICE TO PRINT
@ 10, 10 SAY DATE( )
@ PCOL( ) +1,10 SAY TIME( )
SET DEVICE TO SCREEN

QOUT( )

Propsito:
Sintaxe:

// imprime a hora na linha 11

Exibe uma lista de expresses no console.


QOUT(<lista de expresses>).

Exemplo:
QOUT (DATE( ), TIME( ) )
QOUT (EDITORA ERICA)

QQOUT( )

Propsito:

mesma

Sintaxe:

Exibe uma lista de expresses


linha.
QQOUT(<lista de expresses>).

no

console

na

Exemplo:
QQOUT (DATE( ), TIME( ) )
QQOUT (EDITORA ERICA)

GEEK BRASIL http://www.geekbrasil.com.br

121

Clipper 5.2 Comandos e Funes

RAT( )

Propsito:

uma

Sintaxe:

Retorna o endereo da ltima


ocorrncia
expresso dentro de uma string.
RAT(<expresso caractere>, <string>).

de

Exemplo:
? RAT(RJ, SP_RJ_RS,PA)

READEXIT( )
Propsito:

para

Sintaxe:

Ligar ou desligar as teclas de seta para cima e


baixo como sadas de um READ.

seta

READEXIT(<.T.>|<.F.>).

Exemplo:
CLEAR
READEXIT(.T.)
// liga a sada atravs das teclas
ENDERECO:= NOME:= SPACE(30)
@ 10,10 SAY NOME...........: GET NOME
@ 12,10 SAY ENDEREO.......: GET ENDEREO
READ

READINSERT( )
Propsito:
Sintaxe:

Ligar ou desligar o modo de insero.


READINSERT(<.T.>|<.F.>).

Exemplo:
CLEAR
ENDERECO:= NOME:= SPACE(30)
@ 23,10 SAY TECLE <F2> PARA INSERO
@ 10,10 SAY NOME........: GET NOME
@ 12,10 SAY ENDEREO....: GET ENDEREO
SET KEY -1 TO INSERE( )

GEEK BRASIL http://www.geekbrasil.com.br

122

Clipper 5.2 Comandos e Funes

READ
FUNCTION INSERE( )
IF READINSERT( )
// insert ligado
READINSERT(.F.)
@ 00,65 SAY

ELSE
READINSERT(.T.)
@ 00, 65 SAY INSERE
ENDIF
RETURN

READKEY( )
um

Propsito:

Fornecer o nmero da ltima

Sintaxe:

READ.
READKEY( ).

tecla

que

encerrou

READMODAL( )
Propsito:
Sintaxe:

READVAR( )

Propsito:
Sintaxe:

Executar uma lista de GETs.


READMODAL(<vetor de GETs>).

Devolver o nome da varivel GET ou MENU TO atual.


READVAR( ).

Exemplo:
CLEAR
SET KEY -2 TO TESTE( )
// tecla F2 para rodar a funo teste( )
NOME:= ENDERECO:= SPACE(30)
@ 10,10 SAY NOME.....................: GET NOME
@ 12,10 SAY ENDEREO.................: GET ENDEREO
READ
FUNCTION TESTE( )
IF READVAR + NOME
? VOC ESTA PROCESSANDO A VARIVEL DO NOME
ELSEIF READVAR = ENDEREO

GEEK BRASIL http://www.geekbrasil.com.br

123

Clipper 5.2 Comandos e Funes


? VOC ESTA PROCESSANDO A VARIVEL DO ENDEREO
ENDIF
RETURN

RECCOUNT( )
atual.

Propsito:

Retornar o nmero de registro do arquivo de dados

Sintaxe:

RECCOUNT( ).

Exemplo:
USE MALA
? RECCOUNT( )
COUNT TO TOTALREG
? TOTAL REG
SET DELETE ON
? RECCOUNT( )
COUNT TO TOTALREG
? TOTAL REG

RECNO( )

Propsito:
Sintaxe:

// resultado: 115
// resultado: 115
// omite os registro deletados
// resultado: 115
// resultado: 94

Retorna o nmero do registro corrente.


RECNO( ).

Exemplo:
USE MALA
GO 1
? RECNO( )
SKIP + 3
? RECNO( )

// resultado: 1
// resultado: 4

RECSIZE( )

Propsito:
Sintaxe:

Devolver o tamanho em Bytes do registro do arquivo.


RECSIZE( ).

Exemplo:

GEEK BRASIL http://www.geekbrasil.com.br

124

Clipper 5.2 Comandos e Funes

USE MALA
? TAMANHO TOTAL DO ARQUIVO
?? RECSIZE( ) * LASTREC( ) + HEADER( )

REPLICATE( )
Propsito:

repetio

Sintaxe:

Retornar uma cadeia de caracteres contendo


de um ou mais caracteres.
REPLICATE(<caractere(s)>, <quantidade>).

Exemplo:
? REPLICATE(=, 5)
? REPLICATE(CASA, 3)

// resultado: =======
// resultado: CASACASACASA

RESTSCREEN( )
Propsito:

uma

Sintaxe:

<L_Final>,

Restaurar uma rea de tela anteriormente gravada em


regio especfica do vdeo.
RESTSCREEN
(<L_inicial>,
<C_inicial>,
<C_Final>, <tela>).

Exemplo:
CLEAR
@ 10,10 TO 20,70 DOUBLE
A:= SAVESCREEN(10,10,20,70)
CLEAR
RESTCREEN(10,10,20,70,A)

RIGHT( )

Propsito:

uma

// desenha uma moldura


// salva a tela
// limpa a tela

Devolver uma substring de uma string a


determinada posio direita.

GEEK BRASIL http://www.geekbrasil.com.br

partir

de

125

Clipper 5.2 Comandos e Funes

Sintaxe:

RIGHT(<string>, <posio>).

Exemplo:
? RIGHT (EDITORA ERICA, 5)

RLOCK( )

Propsito:

em

Sintaxe:

// resultado: ERICA

Travar o registro corrente


ambiente de Rede Local.

do

banco

de

dados

RLOCK( ).

Exemplo:
USE MALA SHARED
SEEK JOO
IF RLOCK( )
DELETE
? REGISTRO DELETADO!!!
ELSE
? REGISTRO NO PODE SER TRAVADO (ALTERADO) NESTE;
MOMENTO
ENDIF

ROUND( )

Propsito:
Sintaxe:

Arredondar expresses numricas.


ROUND(<valor numrico>, <casas decimais>).

Exemplo:
? ROUND(103.338556,2)
? ROUND(103.33855, 0)

ROW( )

Propsito:

se

Sintaxe:

// resultado:
// resultado:

103.34
103.00

Devolver o nmero da linha em vdeo na qual o cursor


encontra posicionado.
ROW( ).

Exemplo:
GEEK BRASIL http://www.geekbrasil.com.br

126

Clipper 5.2 Comandos e Funes

CLEAR
@ 10,10 SAY TESTE NA LINHA
@ ROW( ) + 3, 10 SAY TESTE
@ ROW( ) - 1, 10 SAY TESTE
@ 20,10 SAY TESTE NA LINHA
@ ROW( ) + 1, 10 SAY TESTE

RTRIM( )

Propsito:

uma

Sintaxe:

10
NA LINHA 13
NA LINHA 12
20
NA LINHA 21

Remover espaos em branco existentes no final


expresso caractere.
RTRIM(<exp. caractere>).

de

Exemplo:
CEP :=11020202
ESTADO := SP + SPACE(10)
? ESTADO + CEP
? RTRIM(ESTADO)+CEP

// estado = SP
// resultado : SP
11020202
// resultado: SP 11020202

SAVESCREEN( )
Propsito:
Sintaxe:

<L_Final>,

Salvar uma rea especifica da tela.


RESTCREEN (<L_inicial>,
<C_Final>, <tela>).

<C_inicial>,

Exemplo:
CLEAR
@ 10,10 TO 20,70 DOUBLE
// desenha uma moldura
A := SAVESCREEN(10,10,20,70)
// salva a tela
? TECLE ALGO
INKEY(0)
CLEAR
// limpa a tela
RESTSCREEN(10,10,20,70,A) // restaura a tela anteriormente salva

GEEK BRASIL http://www.geekbrasil.com.br

127

Clipper 5.2 Comandos e Funes

SCROLL( )

Propsito:
Sintaxe:

<L_Final>,
Exemplo:

Rolar uma rea da tela para baixo ou para cima.


SCROLL (<L_inicial>,
<C_inicial>,
<C_Final>, <linhas a rolar>).

FUNCTION MOSTRAROLA (L_I, C_I, L_F, C_F,)


SCROLL (L_I, C_I, L_F, C_I, 1) // rola um linhas para cima
@ L_F, C_I SAY DADO
RETURN

SECONDS( )

Propsito:

do

Sintaxe:

Devolver a quantidade em segundos


sistema.

da hora

atual

SECONDS( ).

Exemplo:
? TIME( )
? SECONDS( )

SELECT( )

Propsito:
Sintaxe:

// resultado: 10:00
// resultado: 36000

Devolver o nmero da rea de trabalho especificada.


SELECT(<nome da rea>).

Exemplo:
USE MALA NEW
? SELECT( )
USE CLIENTES NEW
? SELECT( )
? SELECT(MALA)

SETCANCEL( )
Propsito:

// resultado: 1
// resultado: 2
// resultado: 1

Ligar/desligar a tecla ALT-C.

GEEK BRASIL http://www.geekbrasil.com.br

128

Clipper 5.2 Comandos e Funes

Sintaxe:

SETCANCEL(.T.|.F.).

Exemplo:
/*

PROGRAMA: PRINCIPAL.PRG
AUTOR: GORKI STARLIN

*/
SET DELETE ON
SET CONFIRM ON
SETCANCEL(.F.)

SETCOLOR( )
Propsito:

configurao

Sintaxe:

// desliga a sada via ALT-C.

Setar novas cores do vdeo ou


atual das mesmas.
SETCOLOR(<cor nova>).

verificar

Exemplo:
ATUAL

:= SETCOLOR( )

// armazena as cores atuais em uma


// varivel.

PADRO := BR+/N
DESTAQUE := R+/N
SET COLOR(PADRO, DESTAQUE)

SETCURSOR( )
Propsito:
Sintaxe:

// configura um novo padro de


// cores.

Configurar a forma do cursor.


SETCURSOR(<valor>).

Exemplo:
CLEAR
NOME := ENDEREO := SPACE(30)
// inicializa as variveis
SETCURSOR(1)
@ 10,10 SAY NOME.................: GET NOME
SETCURSOR(3)
@ 12,10 SAY ENDEREO.............: GET ENDEREO
READ

GEEK BRASIL http://www.geekbrasil.com.br

129

Clipper 5.2 Comandos e Funes

SETKEY( )

Propsito:

uma

Sintaxe:

SETPOS( )

Propsito:
Sintaxe:

Associar um bloco de cdigo (Code Block)


determinada tecla.
SETKEY(<cdigo da tecla>, <code block>).

Determinar uma nova posio para o cursor na tela.


SETPOS(<linha, coluna>).

Exemplo:
?
?
?
?

SETPOS(10,20)
TESTE
SETPOS(20,10)
TESTE

SETPRC( )

Propsito:
Sintaxe:

Configurar os valores de PROW( ) e PCOL( ).


SETPRC(<linha>, <coluna>).

Exemplo:
SET DEVICE TO PRINTER
SETPRC(10,15)
@ PROW( ), PCOL( ) SAY TESTE

SOUNDEX( )

Propsito:

expresso

Sintaxe:

// na linha 10 coluna 15 do
// papel.

Converter uma expresso caractere para


fontica.
SOUNDEX( <expresso caractere>).

GEEK BRASIL http://www.geekbrasil.com.br

uma

130

Clipper 5.2 Comandos e Funes

Exemplo:
USE MALA
INDEX ON SOUNDEX(NOME) TO INOME.NTX
SEEK SOUNDEX (JOO)
// pesquisa a fontica do nome JOO
IF FOUND( )
DISPLAY NOME, ENDEREO, CIDADE
ELSE
? NO ENCONTRADO
ENDIF

SPACE( )

Propsito:
Sintaxe:

Gerar espaos em branco.


SPACE(<tamanho>).

Exemplo:
NOME := SAPCE( )// armazena 30 espao dentro da varivel
? TESTE! + SPACE(20) + TESTE2

SQRT( )

Propsito:
Sintaxe:

Devolver a raiz quadrada de uma expresso numrica.


SQRT(<expresso numrica>).

Exemplo:
? SQRT(2)
? SQRT(4)

// resultado:
// resultado:

STR( )

Propsito:

expresso

Sintaxe:

1.41
2.00

Converter uma expresso numrica


em
uma
caractere.
STR(<valor numrico>,
<comprimento>,
<casas decimais>).

GEEK BRASIL http://www.geekbrasil.com.br

131

Clipper 5.2 Comandos e Funes

Exemplo:
SALRIO := 3020.29
? SRT(SALARIO,4)
? SRT(SALARIO,7,3)

STRTRAN( )

Propsito:

campo

Sintaxe:
<substituio>,

// resultado:
3030
// resultado:
3020.290

Localiza e trocar caracteres de uma string ou


memo.
STRTRAN(<string>,
<caracteres>,
[<posio incio>], [<quantidade>]).

Exemplo:
TEXTO:= CLIPPER 5.X E CLIPPER 87
? STRTRAN(TEXTO,CLIPPER, VERSO)

STUFF( )

Propsito:
Sintaxe:

// resultado: VERSO 5.0 E


// VERSO 87

Anexar e retirar caracteres de uma string.


STUFF(<string>, <incio>, <retirar>, <anexar>).

Exemplo:
// somente inserir
TESTE := JCARLOS
? STUFF(TESTE1, 2, 0, OAO)
// extrair e depois inserir
? STUFF(TESTE1, 2, 6, OAO)

SUBSTR( )

Propsito:
Sintaxe:

// resultado: JOO CARLOS


// resultado: JOO

Extrair uma seqncia de caracteres de uma string.


SUBSTR(<string>, <posio inicial>, <tamanho>).

Exemplo:

GEEK BRASIL http://www.geekbrasil.com.br

132

Clipper 5.2 Comandos e Funes

TESTE1 := JOO CARLOS


? SUBSTR(TESTE1, 1, 4)
? SUBSTR(TESTE1, 5, 7)

TIME( )

Propsito:
Sintaxe:

// resultado: JOO
// resultado: CARLOS

Devolver a hora do sistema.


TIME( ).

Exemplo:
CLEAR
@ 10,10 SAY HORA ATUAL......: + TIME( )

TONE( )

Propsito:

durao

Sintaxe:

Executar uma freqncia sonora


especificada.
TONE(<freqncia>, <durao>).

com

uma

Exemplo:
BEEP( )
FUNCITION BEEP
TONE(300,18)
TONE(200,26)

TRANSFORM( )
Propsito:

de

Sintaxe:

Transformar qualquer valor para


caracteres com um formato definido.
TRANSFORM(<valor>, <formato>).

uma

cadeia

Exemplo:
? TRANSFORM(EDITORA ERICA, @!)

GEEK BRASIL http://www.geekbrasil.com.br

// resultado: EDITORA ERICA

133

Clipper 5.2 Comandos e Funes

TYPE( )

Propsito:
Sintaxe:

Identificar qual o tipo de uma informao.


TYPE(<dado>).

Exemplo:
VALOR := 1919
NOME := JOO
BLOCO := {|| L++}
? TYPE(VALOR)
? TYPE(NOME)
? TYPE(BLOCO)

UPDATED( )

Propsito:

em
Exemplo:

Sintaxe:

// resultado: N
// resultado: C
// resultado: B

Verificar se os Gets foram alterados durante a edio


tela.
UPDATED( ).

USE MALA
DO WHILE .T.
CLEAR
@ 07,15 SAY CADASTRAMENTO
VNOME := SPACE(30)
VENDERECO := SPACE(40)
@ 10,10 SAY NOME...........: GET VNOME PICT @!
@ 12,10 SAY ENDEREO.......: GET VENDERECO PICT @!
READ
IF .NOT. UPDATED( )
// se no foi alterado
LOOP
// sobe ao DO WHILE
ENDIF
APPEND BLANK
REPLACE NOME WITH VNOME
REPLACE ENDEREO WITH VENDERECO
ENDDO

UPPER( )

Propsito:
Sintaxe:

Transforma as letras de uma string para maisculas.


UPPER(<string>).

Exemplo:

GEEK BRASIL http://www.geekbrasil.com.br

134

Clipper 5.2 Comandos e Funes


NOME := EDITORA ERICA
? UPPER(NOME)
// resultado:
EDITORA ERICA
@ 20,20 SAY NOME........: + UPPER(NOME)

USED( )

Propsito:

de

Sintaxe:

Verificar se existe arquivo de dados (.DBF)


trabalho selecionada.

na

rea

USED( ).

Exemplo:
USE MALA NEW
// abre o arquivo de dados MALA
USE CLIENTES NEW// abre o arquivo de dados CLIENTES
? USED( )
// resultado: .T. (CLIENTES.DBF)
SELECT MALA
// seleciona a rea de trabalho do MALA
? USED( )
// resultado: .T. (MALA.DBF)
USE
// fecham o arquivo de dados mala
? USED( )
// resultado: .F. (NO EXISTE .DBF NESTA
REA DE TRABALHO)

VAL( )

Propsito:

valor

Sintaxe:

Converter uma
numrico.
VAL(<string>).

expresso

caractere

em

um

Exemplo:
SALRIO := 2929.20
? VAL (SALRIO) * 2
TESTE := COMPUTADOR
? VAL(TESTE)
// resultado: 0

VALTYPE( )
expresso.

Propsito:

Especificar o tipo do dado retornado por uma

Sintaxe:

VALTYPE(<dado>).

Exemplo:
? VALTYPE(STR( ) )
? VALTYPE(SQRT( ))

// retorna: C
// retorna: N

GEEK BRASIL http://www.geekbrasil.com.br

135

Clipper 5.2 Comandos e Funes

? VALTYPE(2929)
? VALTYPE(JOO)

VERSION( )

Propsito:
Sintaxe:

// retorna: N
// resultado: C

Identificar a verso da linguagem Clipper.


VERSION( ).

Exemplo:
? VERSION( )

WORD( )

Propsito:

um
Exemplo:

Sintaxe:

// resultado:

Transformar um parmetro que ser passado para


comando CALL de DOUBLE para INT.
WORD(<valor numrico>).

CALL progC WITH WORD (10200),

YEAR( )

Propsito:
Sintaxe:

Clipper 5.2

um texto qualquer

Devolver o ano de uma data.


YEAR(<data>).

Exemplo:
SET DATE BRIT
? YEAR (DATE( ) )
// resultado:
DATA := CTOD (20/12/93)
? YEAR (DATA)
// resultado:
93

93

\!!!!!!/
()

------------oOOO--(_)------------------------| Arquivo baixado da GEEK BRASIL

GEEK BRASIL http://www.geekbrasil.com.br

136

Clipper 5.2 Comandos e Funes


| O seu portal de informtica e internet
| http://www.geekbrasil.com.br
| Dvidas ou Sugestes?

| webmaster@geekbrasil.com.br

--------------------------oOOO---------------|__| |__|
||

ooO

||

Ooo

GEEK BRASIL http://www.geekbrasil.com.br

137

Você também pode gostar