Professional Documents
Culture Documents
Clipper
Clipper
2 Comandos e Funes
NDICE
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
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
STATIC...................................................................................................................56
STORE....................................................................................................................57
SUM........................................................................................................................57
TEXT.......................................................................................................................57
TOTAL....................................................................................................................58
TYPE.......................................................................................................................58
UNLOCK................................................................................................................58
UPDATE.................................................................................................................59
USE.........................................................................................................................59
WAIT......................................................................................................................59
ZAP.........................................................................................................................60
FUN ES 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
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
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
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
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
VERSION( )..........................................................................................................131
WORD( )...............................................................................................................131
YEAR( )................................................................................................................132
Propsito:
ou
Sintaxe:
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???
Exemplo:
LOCAL C,L
/*
MODULO :
FUN O:
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
@ 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?
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)
10
@. . . SAY. . . GET
Propsito:
Sintaxe:
dados),
SAY????
?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 FUNCION RIO.....: GET VNOME PICT @!
// edita os nmeros no formato europeu
@ 14,10 SAY SAL RIO 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 ENDERE O..: 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
@. . . PROMPT
Propsito:
Sintaxe:
MESSAGE
Exemplo:
Local OPC :????
SET WRAP ON
12
@
@
@
@
@
L+2,C
L+3,C
L+4,C
L+5,C
L+6,C
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
Sintaxe:
colunaF?
partir
de
?linhaF?, ?
[DOUBLE]
Exemplo:
SET COLOR TO B+/N
@ 10,10 CLEAR TO 20,20
@ 10,10 TO 20,20 DOUBLE
ACCEPT
13
Propsito:
o
Sintaxe:
Exemplo:
Local Vnome
CLEAR
// limpa a tela
ACCEPT Digite o nome....: TO VNOME
? NOME QUE VOC DIGITOU FOI....:, VNOME
APPEND BLANK
Propsito:
Sintaxe:
APPEND BLANK
dados
banco de
Exemplo:
Local Codvar, OP
/*
NOME DO PROGRAMA: CADMULT1.PRG
AUTOR : GORKI STARLIN
FUN O: 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 S RIOS INFORM TICA
@ 03,60 SAY ATE( )
@ 03,70 SAY TIME( )
// criar variveis
CODVAR
= 0
SETORVAR
= 0
SALARIOVAR = 0
NOMEVAR
= SPACE(35)
CARGOVAR
= SPACE(15)
14
ATIVOVAR
DATAVAR
= (.T.)
= CTOD ( / / )
// entrada de dados
@ 06,10 SAY ** CADASTRAMENTO DE FUNCION RIOS **
@ 08,10 SAY C DIGO...........: 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
APPEND FROM
15
Propsito:
o
de
Sintaxe:
Exemplo:
USE FOLHA
APPEND FROM COPIAF FOR .NOT. DELETED( )
// copia apenas os
//registros no marcados
? termino da copia
AVERAGE
Propsito:
de
Sintaxe:
Exemplo:
USE FOLHA
// abre o arquivo de dados
AVERAGE SAL RIO, COMISS O 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:
BEGIN SEQUENCE
BREAK.
16
. . . COMANDOS
[ BREAK [?expresso?] ]
. . . COMANDOS
[ RECOUVER [ USING ?varivel??] ]
. . . COMANDOS
END [ SEQUENCE ]
Exemplo:
Local Contador, Intervalo
CONTADOR :??
INTERVALO :??
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:
Interromper a execuo do
executado.
Sintaxe:
CANCEL
sendo
programa
que
est
17
CLEAR ALL
Propsito:
Fecha
Sintaxe:
CLEAR ALL
memria
CLEAR GETS
Propsito:
Sintaxe:
CLEAR MEMORY
Propsito:
Sintaxe:
CLEAR MEMORY
da
CLEAR SCREEN
Propsito:
Sintaxe:
CLEAR TYPEAHEAD
Propsito:
Sintaxe:
CLEAR TYPEAHEAD
(fila)
Exemplo:
18
CLOSE
Propsito:
encontrem
Sintaxe:
tipo,
que
se
Exemplo:
CLOSE ALL
COMMIT
Propsito:
Sintaxe:
COMMIT
dos
os
Buffers
Exemplo:
/*
NOME DO PROGRAMA: CADMONO1.PRG
AUTOR : GORKI STARLIN
FUN O: 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 VARI VEIS
CODVAR :? SETORVAR :???SALARIOVAR :???
NOMEVAR
:? SPACE(35)
CARGOVAR
:? SPACE(15)
ATIVOVAR
:? (.T.)
19
:? CTOD ( / / )
// entrada de dados
@ 06,10 SAY ** CADASTRAMENTO DE FUNCION RIOS **
@ 08,10 SAY C DIGO...........: 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
DATAVAR
CONTINUE
20
Propsito:
Continua a pesquisa
Sintaxe:
LOCATE.
CONTINUE
comando
iniciada
partir
do
Exemplo:
CLEAR
USE FOLHA
// abre o arquivo
LOCATE FOR SETOR = A
DO WHILE FOUND( )
? NOME, SAL RIO,
CONTINUE
ENDDO
COPY FILE
Propsito:
seu
Sintaxe:
de dados
// faa enquanto existir
SETOR
// mostra os campos
// continua a pesquisa
// fim do faa enquanto
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:
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.
21
Propsito:
Sintaxe:
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
LIST FIELD_NAME, FIELD_TYPE, FIELD_LEN, FIELD,DECX
// lista os
// registros
COPY TO
Propsito:
Sintaxe:
outro
para
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
Propsito:
registos.
Sintaxe:
COUNT TO ?var? [?escopo?] [FOR ?condio?]
[ WHILE ?condio??
Exemplo:
22
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:
Sintaxe:
Exemplo:
CREATE TESTRU
APPEND BLANK
CREATE FROM
Propsito:
arquivo
Sintaxe:
Exemplo:
CREATE TESTRU
APPEND BLANK
23
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:
Sintaxe:
DELETE
Propsito:
Sintaxe:
Exemplo:
USE FOLHA
DELETE ALL
// marca TODOS os registros
DISPLAY ALL NOME, SAL RIO, COD
// mostra os registros
INKEY(0)
SET DELETE ON
// filtra os registros marcados
DISPLAY ALL NOME, SAL RIO, COD
// mostra os registros
INKEY(0)
RECALL ALL
// recupera todos os registros
DISPLAY ALL NOME, SAL RIO, COD
// mostra os registros
INKEY(0)
DELETE FOR SETOR = A
// marca os funcionrios do setor A
DISPLAY ALL NOME, SAL RIO, COD
// mostra os registros
? FIM
DELETE FILE
Propsito:
Sintaxe:
Exemplo:
24
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:
Exemplo:
DIR
DIR *.*
DIR *.prg
DIR a: *.*
//
//
//
//
mostra
mostra
mostra
mostra
todos
todos
todos
todos
os
os
os
os
DISPLAY
Propsito:
Sintaxe:
Exemplo:
USE FOLHA
// abre o arquivo de dados
DISPLAY COD, NOME, SAL RIO ALL
// mostra todos os registros
DISPLAY COD, NOME, SAL RIO
//
mostra
somente
o
registro
corrente
DISPLAY COD, NOME, SAL RIO ALL FOR SETOR = A
//
mostra
os
registros
// dos funcionrios que
// que trabalham no setor A
DO
Propsito:
Sintaxe:
25
Exemplo:
:
IF OP = 2
DO PROG1
ELSEIF OP =3
DO PROG2
ELSE
DO PROG4 WITH NOME
ENDIF
:
:
DO CASE
Propsito:
Sintaxe:
DO CASE
CASE <condio>
. . . . instrues
[CASE <condio2>]
. . . . instrues
[OTHERWISE]
. . . . instrues
END[CASE]
apenas
onde
Exemplo:
DO CASE
CASE OP = 2
DO PROG1
CASE OP = 3
DO PROG2
OTHERWISE
RETURN
ENDCASE
DO WHILE
Propsito:
Sintaxe:
DO WHILE <condio>
uma
de
controle
enquanto
26
. . . . <instrues>
[EXIT]
. . . . <instrues>
[LOOP]
. . . . <instrues>
END[DO]
Exemplo:
:
:
VARSAI :?
DO WHILE VARSAI .NOT. $ SN
EJECT
Propsito:
Sintaxe:
EJECT
de
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
? RELAT RIO DE FUNCION RIOS
27
?
? Pagina:+str(pg)
replicate (=, 78)
// traa uma linha
1 :? 7
ENDIF
? COD, NOME, SAL RIO
// imprime os campos
SKIP
// pule para o prximo registro
L++
ENDDO
// fim do faa enquanto
:
:
ERASE
Propsito:
Sintaxe:
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:
para o
Sintaxe:
Exemplo:
EXTERNAL funes
:
:
EXIT PROCEDURE
Propsito:
Sintaxe:
28
:
<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.
EXIT PROCEDURE SA DA( )
/ / rotina de sada do programa
?
? TEMPO:
?? SECONDS ( ) - nSEGUNDOS
RETURN
/ / finaliza definitivamente
FIELD
Propsito:
dados
Sintaxe:
Exemplo:
de
arquivos de
FIND
Propsito:
uma
29
Sintaxe:
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 C DIGO...: GET CODVAR PICTURE 9999
READ
FIND CODVAR
// pesquisa o contedo da varivel
IF FOUND( )
// se existir
DISPLAY COD,NOME,SALARIO
ENDIF
FOR. . . NEXT
Propsito:
Executa uma
estrutura
nmero de vezes.
Sintaxe:
determinado
de
controle,
um
Exemplo:
LOCAL TREGISTROS
USE CADASTRO
COUNT TO TRESGISTROS
GO TOP
FOR I = 1 TO TREGISTROS STEP 1
DISPLAY NOME, ENDERE O, TEL
// exibe o registro corrente
SKIP
// pula para o prximo registro
NEXT
? FIM
30
FUNCTION
Propsito:
Sintaxe:
Exemplo:
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
Propsito:
um
Sintaxe:
Exemplo:
USE FOLHA
31
GO 6
// v para o registro (record) numero 6
DISPLAY NOME, COD, SAL RIO
GO TOP
// v para o inicio do arquivo
DISPLAY NOME, COD, SAL RIO
GO BOTTOM // v para o fim do arquivo
DISPLAY NOME,COD,SALARIO
IF
Propsito:
expresso
Sintaxe:
Executa
instrues
somente
condicional for verdadeira.
quando
uma
IF <condio>
<instrues>
[ELSEIF < condio2>
<instrues>
[ELSE]
<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
?
RECUPERA O
ELSE
?
APROVADO
ENDIF
:
:
INIT PROCEDURE
Propsito:
Sintaxe:
da
32
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 SA DA( )
// rotina de sada do programa.
?
? TEMPO:
?? SECONDS() - nSEGUNDOS
RETURN
// finaliza definitivamente
INDEX
Propsito:
determinado
Sintaxe:
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
33
IF FOUND( )
// se existir
DISPLAY NOME, ENDERE O, CIDADE
ENDIF
? REGISTRO N O ENCONTRADO
// mostra o registro
INPUT
Propsito:
armazena
Sintaxe:
Exemplo:
LOCAL VAR
CLEAR
INPUT DIGITE QUALQUER COISA..: TO VAR
? VOC DIGITOU...:
?? VAR
JOIN
Propsito:
Sintaxe:
Exemplo:
USE VENDAS
KEYBOARD
Propsito:
expresso
Preencher o buffer
caractere.
do
teclado
com
uma
34
Sintaxe:
Exemplo:
KEYBOARD a
KEYBOARD CHR(65)
KEYBOARD CHR(130)
// resultado:
// resultado:
LABEL FORM
Propsito:
do
Sintaxe:
PRINTER]
<condio>]
[SAMPLE]
[WHILE
[FOR<condio>]
Exemplo:
USE MALA INDEX NOME
LABEL FORM ETIQUETAS TO PRINTER SAMPLE
// imprime as etiquetas
LIST
Propsito:
Sintaxe:
Exemplo:
USE MALA
LIST NOME,
LIST NOME,
ENDERE O,
ENDERE O,
CIDADE
CIDADE
TO
PRINTER
// lista impressa
LOCATE
35
Propsito:
Sintaxe:
Exemplo:
USE FOLHA
LOCATE FOR NOME =Joo
IF FOUND()
/ / se existir
DISPLAY NOME, SAL RIO, SETOR
ELSE
? no localizado
ENDIF
LOOP
Propsito:
Sintaxe:
LOOP
WHILE,
DO
LOCAL
Propsito:
Sintaxe:
Exemplo:
LOCAL VAR,VAR2:? 10
//
locais
? VAR2
LOCAL MATRIZ1 [30] [10]
declara
as
variveis
como
MEMVAR
Propsito:
ou
Sintaxe:
Privadas
Exemplo:
36
USE MALA
MEMVAR NOME
LOCAL NOME
?
?
:
NOME
MALA NOME
nome
MENU TO
Propsito:
Sintaxe:
NOTE
Propsito:
Cria
uma
Sintaxe:
NOTE <texto>
linha
de
comentrio
dentro
do
programa.
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:
Sintaxe:
PACK
para
registros
marcados
Exemplo:
USE MALA
PACK
INDE NOME
// remove fisicamente do arquivo os registros marcados
37
PARAMETER
Propsito:
de
Sintaxe:
o recebimento
Exemplo:
MENSAGEM (5, 5, OI ! )
FUNCTION MENSAGEM( )
PARAMETER LINHA, COLUNA,
@ LINHA, COLUNA
RETURN NIL
SAY
DADO
DADO
PRIVATE
Propsito:
sendo
Sintaxe:
como
Exemplo:
PRIVATE
PRIVATE
A:?8
PRIVATE
MATRIZ1
PROCEDURE
Propsito:
Sintaxe:
<procedure>
de
[(lista
campos>[IN
<apelidos>]]
38
[LOCAL
<identificador>
<inicializador>],,,]
[MEMVAR <lista
[STATIC
[:??
de
identificadores>]
<identificador>
[:
?
<inicializador],,,]
:
<instrues>
:
[RETURN]
Exemplo:
:
:
:
MENSAGEM(20,10,N O ENCONTRADO)
:
:
PROCEDURE MENSAGEM(LINHA, COLUNA,
@ LINHA, COLUNA SAY DADO
RETURN
PUBLIC
Propsito:
Sintaxe:
DADO)
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:
39
Sintaxe:
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
:
:
READ
Propsito:
Sintaxe:
READ[SAVE]
pelo
variveis
especificadas
Exemplo:
LOCAL VNOME, VENDERE O, VSAL RIO
VNOME:??SPACE(30)
VENDERE O:??SPACE(35)
VSAL RIO:??0.00
@ 10,10 SAY DIGITE O NOME...: GET VNOME PICT !
@ 12,10 SAY DIGITE O ENDERE O..: GET VENDERE O
@ 14,10 SAY DIGITE O SAL RIO...: GET VSAL RIO PICT @E 9,999.99
READ
// executa e no final libera os trs GETs pendentes
RECALL
40
Propsito:
eliminao
Sintaxe:
[WHILE<condio>]
Recupera
registros
marcados
atravs do comando DELETE.
para
<escopo>
RECALL
[FOR<condio>]
Exemplo:
USE MALA
GOTO 3
IF DELETED(
RECALL
ENDIF
REINDEX
Propsito:
Sintaxe:
REINDEX
[EVAL<Condio>]
de
[EVERY<nRegistro>]
Exemplo:
USE MALA INDEX INOME, ICOD
REINDEX
/ /
reorganiza
INOME, ICOD
:
:
os
arquivos
RELEASE
Propsito:
Sintaxe:
Exemplo:
RELEASE
ALL
LIKE
V*
// libera todas as
variveis
// comeam com a letra
V
que
41
RELEASE
VNOME
RENAME
Propsito:
Sintaxe:
// libera
varivel
VNOME
Renomear um arquivo
RENAME <nome atual> TO <novo nome>
Exemplo:
RENAME
RENAME
ARQ.TXT TO ARQ_NOVO.TXT
MALA.DBF TO POSTAL.DBF
REPLACE
Propsito:
uma
Sintaxe:
por
Exemplo:
USE MALA INDEX ICOD
APPEND BLANK
// cria um registro
REPLACE COD WITH 23, NOME WITH JO O
// preenche os campos
:
:
em
branco
REPORT FORM
Propsito:
ou
Sintaxe:
42
Exemplo:
USE FOLHA INDEX INOME
REPORT FORM REL1 TO PRINTER // relatrio impresso dos
// registros
REPORT FORM REL1 TO PRINTER HEADING ALT CONTROL - SETOR
FOR SETOR ? 4
// imprime somente os funcionrios do
4 ;
setor
REQUEST
Propsito:
Sintaxe:
RESTORE
Propsito:
(.mem)
Sintaxe:
Carregar variveis
gravadas de um arquivo
do disco.
RESTORE <nome do arquivo> [ADDITIVE]
Exemplo:
A:?4
NOME:?JO O
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:
Exemplo:
CLEAR
@ 10,10
TO
23,79
43
RETURN
Propsito:
programa
Sintaxe:
Terminar a execuo de
ou funo do usurio.
RETURN ?valor?
uma
procedure,
Exemplo:
? SITUA O (3,7,8,10)
FUNCTION SITUA O(N1, N2,
M DIA :?(N1+N2+N3+N4)/4
IF M DIA = >6
RETURN APROVADO
ELSE
RETURN REPROVADO
ENDIF
N3,
N4)
RUN
Propsito:
Sintaxe:
Executar
um
programa
operacional.
RUN <descrio>
ATUALIZAR
ATUALIZAR
A
A
sistema
ou
comando
do
Exemplo:
? FAVOR
? FAVOR
! DATE
HORA
DATA
DO
DO
SISTEMA!.
SISTEMA!.
44
SAVE
Propsito:
de
Sintaxe:
<esqueleto>]]
Exemplo:
A:?9
VNOME :? JO O
VENDE:? RUA DAS CAM LIAS 44
SAVE TO ARQVAR2 ALL LIKE V* // salva: VNOME E VENDE no arquivo
// ARQVAR2.MEM
SAVE TO ARQVAR
// salva todas as variveis no arquivo
// ARQVAR.MEM
SAVE SCREEN
Propsito:
Sintaxe:
SEEK
Propsito:
uma
Sintaxe:
Exemplo:
USE MALA INDEX INOME
SEEK JO O
// Equivalente A: DBSEEK (JO O)
IF FOUND( )
// se existir
DISPLAY NOME, ENDERE O, CIDADE
ELSE
? N O ENCONTRADO
ENDIF
45
SELECT
Propsito:
Sintaxe:
Exemplo:
USE MALA INDEX INOME
SELECT 0
// seleciona o prxima rea disponvel
USE FOLHA INDEX CODF
LIST NOME, SAL RIO, SETOR, COD
SELECT MALA
// seleciona o arquivo rea MALA
LIST COD, CLIENTE, CIDADE
LIST MALA CLIENTE, FOLHA SAL RIO
// lista registro de
// outra rea
SET ALTERNATE
Propsito:
ser
Sintaxe:
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
Propsito:
Sintaxe:
dados.
46
SET CENTURY
Propsito:
Sintaxe:
Exemplo:
SET DATE TO BRIT
? date( )
SET CENTURY ON
? date( )
SET CENTURY OFF
SET COLOR
Propsito:
Sintaxe:
<destaque>,
selecionado>] |
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
Propsito:
Sintaxe:
GETs.
Exemplo:
47
CLEAR
LOCAL VNOME
@ 10,10 SAY
READ
SET CONFIRM
@ 20,10 SAY
READ
:? SPACE(15)
SET CONSOLE
Propsito:
Sintaxe:
SET CURSOR
Propsito:
Sintaxe:
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:
Exemplo:
48
SET FIXED ON
SET DECIMALS TO 2
? 10/3
? 20/7
SET DECIMALS TO 5
? 10/3
? 20/7
SET DEFAULT
Propsito:
sero
Sintaxe:
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:
Ativar ou
eliminao.
Sintaxe:
para
desativar
os
registros
marcados
SET DELIMITERS
Propsito:
Sintaxe:
sero
SET DELIMITER TO
Propsito:
Sintaxe:
Exemplo:
49
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 ENDERE O..: GET VENDERECO
READ
SET DEVICE
Propsito:
Sintaxe:
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:
que
no
Exemplo:
SET DATE FORMAT TO DD/MM/YYYY
// formata o
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
ano
//
com
data
50
SET ESCAPE
Propsito:
tecla
Sintaxe:
SET EXACT
Propsito:
Sintaxe:
caracteres
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:
Sintaxe:
ser
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
LISTA NOME, ENDERE O
SET FILTER TO
51
SET FIXED
Propsito:
Sintaxe:
os
SET FORMAT
Propsito:
READ
Sintaxe:
Exemplo:
VNOME:?SPACE(40)
VENDERECO:?SPACE(30)
SET FORMAT TO TELA
READ
PROCEDURE TELA
@ 10,10 SAY NOME......: GET VNOME
@ 12,10 SAY ENDERE O..: GET VEDERECO
RETURN
SET FUNCTION
Propsito:
Sintaxe:
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>
//
CHR(13)
52
SET INDEX
Propsito:
dados
Sintaxe:
de
Exemplo:
USE MALA
SET INDEX TO INOME, ICEP
// organizado pelo ndice NOME
LIST NOME, ENDERE O, CIDADE
SET ORDER TO 2
// ICEP, NOME
LIST NOME, ENDERE O, CIADE
SET INDEX TO
// fecha todos os ndices
SET INTENSITY
Propsito:
Sintaxe:
de
edio
GETs
SET KEY
Propsito:
uma
Sintaxe:
Exemplo:
CLEAR
SET KEY -2 TO TERMINA( )
VNOME:?SPACE(30)
@ 23,10 SAY <F2> TERMINA O PROGRAMA
@ 10,10 SAY DIGITE O NOME...: GET VNOME
READ
53
FUNCTION TERMINA( )
CANCEL
RETURN
SET MARGIN
Propsito:
sada
Sintaxe:
para
Exemplo:
USE MALA INDEX INOME
SET MARGIN TO 10
LIST NOME, ENDERE O, CIDADE TO RPINTER
SET MESSAGE
Propsito:
exibir
Sintaxe:
para
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:
o
Sintaxe:
Exemplo:
54
SET PATH
Propsito:
ser
arquivos
Sintaxe:
Exemplo:
SET PATH TO C:\FOLHA;C:\FATURA
SET PRINTER
Propsito:
Sintaxe:
para
Exemplo:
SET PRINTER OFF
? DATE( ), TIME( )
SET PRINTER ON
? DATE( ), TIME( )
SET PROCEDURE
Propsito:
suas
ser
Sintaxe:
SET RELATION
55
Propsito:
Sintaxe:
INTO
Exemplo:
USE CURSOS.DBF INDEX CODCUR.NTX
USE ALUNOS.DBF NEW
SET RELATION INTO CURSO TO CURSOS
relao
//
estabelece
SET SCOREBOARD
Propsito:
por
Sintaxe:
SET SOFTSEEK
SEEK.
Propsito:
Sintaxe:
SET TYPEAHEAD
Propsito:
Sintaxe:
SET UNIQUE
Propsito:
Sintaxe:
um
SET WRAP
56
Propsito:
Sintaxe:
Propsito:
Sintaxe:
do
SKIP
Exemplo:
USE MALA
GO 1
SKIP 2
SKIP 4
SKIP -3
SORT
Propsito:
Sintaxe:
[C] ],
Exemplo:
USE MALA
SORT TO MALA2 ON NOME
USE MALA2
LIST NOME, ENDERE O, CIDADE
STATIC
Propsito:
Sintaxe:
57
Exemplo:
FUNCTION SENHA
STATIC VCONTROLE := 6
:
:
RETURN
STORE
Propsito:
Sintaxe:
Exemplo:
STORE 123.33 TO VAR1
? VAR1
VAR1:?VAR2:?4848
? VAR1,VAR2
// equivalente a VA1:?123.33
// mostra o valor de VAR1
// resultado: 4848
4848
SUM
Propsito:
Sintaxe:
variveis>
<condio>]
Exemplo:
USE FOLHA
SUM SAL RIO TO TOTALSAL FOR SETOR = 1 // totaliza o salrio
// dos funcionrios do setor 1
@ 10,10 SAY RESULTADO...:+STR (TOTALSAL)
TEXT
Propsito:
em
Sintaxe:
<texto>...
58
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:
2>
Exemplo:
TYPE MENU.PRG TO PRINTER
UNLOCK
Propsito:
Sintaxe:
UNLOCK[ALL]
ambiente
registro
em
Exemplo:
USE MALA SHARED
:
:
59
IF FLOCK( )
// trava todos os registros
REPLACE SAL RIO WITH VSAL*INDICE ALL
UNLOCK
// libera o travamento pendente
ELSE
? N O POSS VEL PROCESSAR OS REGISTROS NO MOMENTO
ENDIF
UPDATE
Propsito:
Sintaxe:
de
trabalho.
USE
Propsito:
opcionalmente
Sintaxe:
ndice>]
Abrir
Exemplo:
USE MALA INDEX ICOD, INOME
USE MALA READONLY
// somente para leitura
USE FOLHA INDEX CODIFO NEW
//
abre o arquivo
rea
// disponvel.
na
prxima
WAIT
60
Propsito:
que
Sintaxe:
Exemplo:
A:?4
WAIT Press. qualquer tecla para continuar
B:?5
? A+B
ZAP
Propsito:
Sintaxe:
ZAP
corrente.
Exemplo:
USE MALA INDEX ICOD, ICEP
ZAP
elemento.
Exemplo:
61
ABS( )
Propsito:
Sintaxe:
ser
Exemplo:
a
b
?
?
: =
: =
abs
abs
9
-4
(a)
(b)
// devolve 9
// devolve 4
ACHOICE( )
Propsito:
Sintaxe:
<direita>,
selecionaveis>
usurio>, <item
62
Exemplo:
/*
*/
CLEAR
// limpa a tela
LOCAL ITEM [4], SELE O [4]
ITEM [1] := CADASTRAR
// atribui os valores do vetor
ITEM [2] := PESQUISAR
ITEM [3] := ALTERAR
ITEM [4] := EXCLUIR
SELE O [1] := SELE O [2] := .T. // determina itens disponveis
SELE O [3] := SELE O [4] := .F.
//
determina
itens
//
no
disponveis
ESCOLHA := ACHOICE (12,12,14,15,ITEM,SELE O)
? 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:
Exemplo:
Local array1, array2
array1 := { 12,13,14 }
array2 := ACLONE (array1)
seja
//
array2
igual
array1,ou
// { 12,13,14 }
63
ACOPY( )
Propsito:
Sintaxe:
<incio>,
Exemplos:
Local vetor1,vetor2
vetor1 := { 10, 10, 10 }
vetor2
:= { 20, 20, 20 }
ACOPY (vetor1, vetor2,1,2} / / vetor 2 agora { 10, 10, 20 }
ADEL( )
Propsito:
Sintaxe:
Exemplo:
Private vetor
vetor := { 100,
ADEL( vetor,2)
ADIR( )
300,
Propsito:
lidas
Sintaxe:
tamanho?,
200
}
// VETOR passa a conter { 100,200, nil}
Exemplo:
Private fontes [ADIR (*.PRG)]
// cria um vetor com o
//tamanho correspondente ao nmero de
// .prgs existente no diretrio
// corrente
64
AEVAL( )
Propsito:
cada
Sintaxe:
quantidade????
Exemplo:
/*
EXEMPLO DE UTILIZA O DA FUN O 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:
Sintaxe:
<incio>,
) } )
Preenche
os elementos de vetores com a
do banco de dados que estiver aberto na rea
trabalho.
AFIELDS( [
<campos> ], [ <tipos> ], [
[<decimais> ].
Exemplos:
Local vetor [5]
Afill (vetor, 4)
65
AINS( )
Propsito:
em
Sintaxe:
Exemplo:
Private vetor
vetor := {10,
AINS(vetor,2)
20,
ALERT( )
Propsito:
Sintaxe:
30}
// resultado aps AINS ( ) ->
// vetor := {10, NIL, 20}
opes>)
que o usurio poder escolher.
Exemplo:
Local nEscolha, aOP ES := {Repetir, Abortar}
USE CLIENTES
CLEAR
DO WHILE .NOT. ISPRINTER( )
/ / SE N O EXISTE IMPRESSORA
nESCOLHA := ALERT ( IMPRESSORA N O ENCONTRADA;
aOP ES)
IF nESCOLHA = 2
RETURN
ENDIF
ENDDO
SET PRINT ON
/ / LIGA A IMPRESSORA
LIST NOME,ENDERECO
// LISTA OS DADOS
SET PRINT OFF
// DESLIGA A IMPRESSORA
ALIAS( )
Propsito:
66
Sintaxe:
Exemplo:
USE MALA NEW
REA ??SELECT( )
USE CLIENTE NEW
? ALIAS ( REA)
ALLTRIM( )
Propsito:
em
Sintaxe:
existirem
Exemplo:
PRIVATE STRING
STRING :???SPACE(30)+ GORKI + STARLIM
? STRING
? ALLTRIM (STRING)
ALTD( )
Propsito:
Sintaxe:
Exemplo:
/*
FOLHA.PRG
AUTOR: GORKI STARLIN
*/
PARAMETER A O
IF A O
A O ???
ELSE
A O ??VAL (A O)
ENDIF
ALTD (A O)
67
:
<declaraes>
:
:
ARRAY( )
Propsito:
sem
Sintaxe:
Exemplo:
MATRIZ :???ARRAY (2,3)
// cria definindo apenas as dimenses..
MATRIZ :??{{4,3,4}, {6,3,2}}
// cria atribuindo valores.
ASC( )
Propsito:
determinado
Sintaxe:
de
um
Exemplo:
? ASC (a)
? ASC (A)
? ASC ( )
// resposta: 97
// resposta: 65
// resposta: 0 (nulo)
ASCAN( )
Propsito:
de
Sintaxe:
[<quantidade>].
Exemplo:
VETOR :??{BATATA, TOMATE, FEIJ O, CARNE }
? ASCAN (VETOR, BATATA}
// resultado: 1
68
ASIKE( )
Propsito:
Sintaxe:
Exemplo:
:?? {BATATA, TOMATE, FEIJ O, 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:
Sintaxe:
[<ordem>]
Exemplo:
VETOR : {BATATA, TOMATE, FEIJ O, CARNE }
// cria o
// vetor
ASORT (VETOR)
// ordem ascendente
FOR I ??1 TO LEN (VETOR) // mostra todos os elementos do vetor
? VETOR [i]
NEXT
ASORT (VETOR,,, {|a, b| a > b })
// ordem descendente
FOR i ? 1 TO LEN (VETOR)// mostra todos os elemento do vetor
? vetor [i]
NEXT
AT( )
69
Propsito:
de
Sintaxe:
Exemplo:
VAR :??BATATA
? AT (TA, VAR)
? AT (T, VAR)
? AT (Z, VAR)
ATAIL( )
Propsito:
Sintaxe:
// resultado: 3
// resultado: 2
// resultado: 0
Exemplo:
LOCAL aNOMES :?? {MARIA, JOS , JO O, ANA}
ULTIMO :? ATAIL (aNOMES)
? LTIMO
// ANA
BIN2( )
Propsito:
para
Sintaxe:
BIN2L( )
Propsito:
para
Sintaxe:
Realiza a converso de um
um valor numrico.
BIN2L (<cadeia>).
valor
inteiro de 32 bits
BIN2W( )
70
Propsito:
bits
Sintaxe:
BOF( )
Propsito:
Sintaxe:
BOF( )
de
Exemplo:
USE MALA NEW
? BOF( )
SKIP - 1
? BOF( )
//
//
//
//
BROWSE( )
Propsito:
Sintaxe:
<linha_
Exemplo:
USE MALA NEW
L_INICIAL = 5
C_INICIAL = 5
F_FINAL
= 22
C_FINAL
= 67
71
CDOW( )
Propsito:
caracteres
Sintaxe:
expresso
Exemplo:
? DATE
? CDOW(DATE( ))
? CDOW(DATE( )+10)
//
//
//
//
CMONTH( )
Propsito:
ms
Sintaxe:
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.
COL( )
Propsito:
referente
Sintaxe:
tela
Exemplo:
CLEAR
// limpa a tela
LOCAL VNOME := JO O, VSALARIO:=39000.00
@ 05,10 SAY NOME.....: + VNOME
@ 07,10 SAY SAL RIO..:
@ 07, COL( ) +2 SAY SAL RIO
72
COLORSELEC( )
Propsito:
Sintaxe:
Exemplo:
SETCOLOR(B/W,N/W,GR/W,N/GR)
? GORKI
COLORSELECT( 1 )
? GORKI
COLORSELECT( 0 )
? GORKI
CTOD( )
Propsito:
Sintaxe:
Exemplo:
PRIVATE CAR, VARDATA
CAR := 20/1/93
?CTOD(CAR) + 365
VARDATA:= CTOD(
CURDIR( )
Propsito:
Sintaxe:
CURDIR( ).
determinada
atual
de
uma
Exemplo:
? CURDIR( )
DATE( )
Propsto:
Sintaxe:
73
Exemplo:
? DATE( )
VARDATA := DATE( )
? DATE( ) + 4
SET DATE ITAL
? DATE( )
//
//
//
//
//
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
DAY( )
Propsito:
Sintaxe:
DAY( ).
data.
Exemplo:
? DATE( )
? DAY(DATE( ))
DBAPPEND( )
Propsito:
Sintaxe:
DBAPPEND( )
dados
Exemplo:
/*
74
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 S RIOS INFORM TICA
@@ 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 FUNCION RIOS **
@@ 08,10 SAY C DIGO.......: 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 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 FUNCION RIO..: GET NOMEVAR PICT @!
@@ 12,10 SAY SETOR TRABALHO.......: GET SETORVAR PICT 9
@@ 14,10 SAY CARGO FUNCIONAL......: GET CARGOVAR PICT @!
75
DBCLEARFIL( )
Propsito:
Sintaxe:
Exemplo:
USE CLIENTES
SET FILTER TO NOME = A
BROWSE( )
DBCLEARFILTER( )
// separa os registros
// equivalente : SET FILTER TO
DBCLEARINDEX( )
Propsito:
Sintaxe:
DBCLEARINDEX( ).
de
arquivo
DBCLEARRELATION( )
Propsito:
Sintaxe:
76
DBCLOSEALL( )
Propsito:
Sintaxe:
DBCOMMIT( )
Propsito:
Sintaxe:
DBCOMMIT( ).
alteraes
em
disco,
Exemplo:
:
:
:
REPLACE NOME WITH NOMEVAR
REPLACE SETOR WITH SETORVAR
REPLACE CARGO WITH CARGOVAR
REPLACE ATIVO WITH ATIVOVAR
REPLACE DTADM WITH DATAVAR
REPLACE SAL RIO WITH SALARIOVAR
@@ 21,20 SAY ** CADASTRADO **
INKEY(O)
// aguarda qq tecla
DBCOMMIT( )
// atualiza o arquivo fisicamente.
DBCOMMITALL( )
Propsito:
Sintaxe:
DBCOMMIT( ).
suas
DBCREATE( )
Propsito:
estrutura
77
Sintaxe:
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( )
Propsito:
banco
Sintaxe:
index>,
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)
78
DBDELETE( )
Propsito:
Sintaxe:
Exemplo:
USE FOLHA INDEX INOME.NTX
SEEK JO O
IF FOUND( )
DBDELETE( )
// marca o registro encontrado
ENDIF
DISPLAY ALL NOME, SAL RIO, COD
// mostra os registros
SET DELETE ON
// filtra os registros marcados
DISPLAY ALL NOME, SAL RIO, COD
// mostra os registros
RECALL ALL
// recupera todos os registros
DISPLAY ALL NOME, SAL RIO, COD
// mostra os registros
DBEDIT( )
Propsito:
uma
Sintaxe:
<coluna_inicial>,
(<vetor de colunas>,
< vetor de mscaras>,
Folheia os registros d um
janela.
banco
DBEDIT
<linha_final>,
<funo
<mscara>,
de
dados
em
([<linha_inicial>,
<coluna_final>,
do
usurio>,
<vetor
de
79
/*
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] = SAL RIO
VETOR_CAMPOS [5] = CARGO
VETOR_CAMPOS [6] = ATIVO
VETOR_CAMPOS [7] = DTADM
// CRIA VARI VEIS P/ DEFINIR A REA DE EDI O DOS
DADOS
L_INICIAL = 5
C_INICIAL = 5
L_FINAL = 22
C_FINAL = 67
@ 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
80
SET COLOR TO
RETURN RETORNA
DBEVAL( )
Propsito:
para
Sintaxe:
Exemplo:
/*
*/
LOCAL NDICE := 20, SETVAR := 1
// cria o bloco de cdigo executvel
BLOCO := {|| SAL RIO := SAL RIO * NDICE/100 + SAL RIO}
// cria o bloco de cdigo contendo a condio FOR
CONDI O1 := {|| SETOR = SETVAR}
DBEVAL (BLOCO, CONDI O1)
// mostra e avalia os blocos de
// cdigos
? SAL RIO ATUALIZADOS !
QUIT
DBF( )
Propsito:
Sintaxe:
DBF( ).
na
Exemplo:
USE FOLHA NEW
NOME := DBF( )
? NOME
//
//
//
//
DBFILTER( )
Propsito:
filtro
referente ao
81
Sintaxe:
DBFILTER( ).
Exemplo:
USE FOLHA NEW
//
SET FILTER TO SAL RIO <
//
LIST NOME, CARGO, SETOR,
?DBFILTER( )
//
DBGOBOTTOM( )
Propsito:
Sintaxe:
DBGOBOTTOM( ).
para o
Exemplo:
USE FOLHA
DBGOBOTTOM( )
// v para o fim do arquivo
DISPLAY NOME, COD, SAL RIO
DBGOTO( )
Propsito:
um
Sintaxe:
Exemplo:
USE FOLHA
DBGOTO( 6 )
// v para o registro (record) nmero 6
DISPLAY NOME, COD, SAL RIO
DBGOTOP( )
Propsito:
primeiro
82
Sintaxe:
DBGOTOP( ).
Exemplo:
USE FOLHA
DBGOTOP( )
// v para o incio do arquivo
DISPLAY NOME, COD, SAL RIO
DBRECALL( )
Propsito:
Sintaxe:
DBRECALL( ).
de
Exemplo:
DBREINDEX( )
Propsito:
Sintaxe:
DBRELATION( )
Propsito:
a
de
SET
Sintaxe:
Exemplo:
USE FACULD NEW
83
DBRSELECT( )
Propsito:
um
Sintaxe:
Exemplo:
USE FACULDAD NEW
USE CURSOS NEW
USE ALUNOS NEW
DBSEEK( )
Propsito:
numa
Sintaxe:
Exemplo:
USE MALA INDEX INOME
USE CLIENTES INDEX IESTADO NEW
MALA (DBSEEK(JO O, .F.)) // pesquisa no mala o nome JO O
// SER SEFTSEEK OFF
IF FOUND( )
// se existir
DISPLAY NOME, ENDERE O, CIDADE
ELSE
? N O ENCONTRADO !
? RECNO( )
// EOF( )
ENDIF
84
DBSELECTAREA( )
Propsito:
Sintaxe:
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 MALA CLIENTE, FOLHA SAL RIO
// lista registro de outra
// rea
MALA (DBAPPEND( ))
// cria um registro em branco no
// arquivo mala.dbf
DBSETDRIVER( )
Propsito:
ainda
Sintaxe:
Exemplo:
:
:
DBSETDRIVER (DBFNDX)
IF (DBSETDRIVER <> DBFNDX)
? O DRIVER .NDX N O V LIDO
ENDIF
:
:
DBSETINDEX( )
Propsito:
85
Sintaxe:
DBSETINDEX(<nome do ndice>).
Exemplo:
USE FOLHA
DBSETINDEX(INOME)
DBSETINDEX(ISOBRENO)
IF FOLHA-> (DBSEEK (SILVA))
? FOLHA-> NOME, FOLHA->INDEXRECO
ELSE
? REGISTRO N O ENCONTRADO
ENDIF
DBSETORDER( )
Propsito:
mestre
Sintaxe:
Exemplo:
USE FOLHA
SET INDEX TO INOME, ISOBRENOME
:
:
:
DBSETORDER(2)
// seta o segundo ndice aberto como
// principal, isto ISOBRENOME
DBSEEK (SILVA)
DBSETRELATION( )
Propsito:
Sintaxe:
<bloco
Exemplo:
USE CLIENTES INDEX ICODCLI
USE VENDAS NEW
DBSETRELATION(CLIENTES, {|| VENDAS->CODVENCLI},;
86
VENDAS->CODVENCLI)
LIST CLIENTES->NOME, VENDAS->VALOR
DBSKIP( )
Propsito:
Sintaxe:
Exemplo:
USE FOLHA
GO 1
DISPLAY
DBSKIP( 4 )
DISPLAY
SKIP - 2
DISPLAY
// resultado:
RECNO( ) ? 5
// resultado:
RECNO( ) ??3
DBSTRUCT ()
Propsito:
Sintaxe:
DBSTRUCT ( ).
a
Exemplo:
# INCLUDE DBSTRUCT.CH
LOCAL ESTRUTURA
USE FOLHA NEW
ESTRUTURA :? DBSTRUCT( )
DBUNLOCKALL ( )
Propsito:
Sintaxe:
DBUNLOCKALL ( ).
trabalho.
87
Exemplo:
USE FOLHA SHARED NEW
USE CLIENTES SHARED NEW
FOLHA (FLOCK())
CLIENTES (FLOCK())
// trava o arquivo
DBUNLOCKALL( )
// libera todos os travamentos
DBUSEAREA ( )
Propsito:
Sintaxe:
<arquivo>
).
Exemplo:
DBUSEAREA (.T., DBFNTX,VENDAS) // abre o arquivo vendas
BROWSE( )
DELETED ( )
Propsito:
Verificar se o registro
corrente
se
encontra
(marcado) atravs do comando DELETE.
Sintaxe:
DELETED ( ).
deletado
Exemplo:
DESCEND ( )
Propsito:
Sintaxe:
88
Exemplo:
USE FOLHA NEW
// abre o arquivo de dados
INDEX ON DESCEND (nome) TO NID.NTX
// cria a chave de ndice
LIST NOME, COD, SAL RIO, 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)
DEVOUTPICT ( )
Propsito:
como
Sintaxe:
,
Exemplo:
DEVPOS (5,5)
DEVOUT(GORKI STARLIN, @!, B/W)
DIRECTORY ( )
Propsito:
nesta,
Sintaxe:
armazenar
89
Exemplo:
# INCLUDE DIRECTRY.CH
// inclui o arquivo de definies
LOCAL DIRET RIO := DIRECTRY (*.DBF, D)
// l o
diretrio
// avalia e executa o bloco de cdigo
AEVAL ( diretrio, {|arquivo| qout (arquivo [F_NAME])})
DISKSPACE ( )
Propsito:
determinada
Sintaxe:
Exemplo:
FUNCTION COPIASEG( )
// 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( )
Propsito:
Sintaxe:
DOSERROR( ).
D.O.S.
DOW( )
Propsito:
da
Sintaxe:
Exemplo:
90
DTOC( )
Propsito:
Sintaxe:
DTOC(<data>).
caractere.
Exemplo:
? 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:
Exemplo:
VCOD := SPACE(5)
@ 10,10 SAY DIGITE O C DIGO....: GET VCOD PCT 99999;
VALID .NOT. EMPTY(VCOD)
READ
EOF( )
Propsito:
Sintaxe:
EOF( ).
no
91
Exemplo:
USE MALA INDEX CODI
VCOD:= SPACE(5)
@ 10,20 SAY C DIGO DO FUNCION RIO 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, ENDERE O
ENDIF
ERRORBLOCK( )
Propsito:
Sintaxe:
ERRORBLOCK(<errorhandler>).
execuo.
ERRORLEVEL( )
Propsito:
do
Sintaxe:
EVAL( )
Propsito:
Sintaxe:
Exemplo:
BLOCO := {| ARGUMENTO| ARGUMENTO + 1}
? EVAL (BLOCO,4)
// resultado: 5
92
EXP( )
Propsito:
Sintaxe:
Calcular o E ** X.
EXP(<expoente>).
Exemplo:
? EXP(1)
// resultado: 2.72
FCLOSE( )
Propsito:
Sintaxe:
Exemplo:
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
? N O FOI POSS VEL FECHAR O ARQUIVO
ENDIF
FCOUNT( )
Propsito:
Sintaxe:
FCOUNT( ).
de
Exemplo:
USE MALA
USE CADASTRO
? FCOUNT( )
? MALA (FCOUNT( ))
// resultado: 7
// resultado: 5
FCREATE( )
93
Propsito:
Sintaxe:
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
FERASE( )
Propsito:
Sintaxe:
Exemplo:
OPERA O := FERASE(LEIAME.TXT)
IF OPERA O = -1
? ERRO !, ARQUIVO N O FOI APAGADO
ELSE
? ARQUIVO APAGADO
ENDIF
FERROR( )
Propsito:
Sintaxe:
FERROR( ).
um
FIELD( )
Propsito:
dados
Sintaxe:
do
arquivo
de
Exemplo:
94
USE MALA
? FIELD(2)
// resultado: NOME
FOR I := TO FCOUNT( )
? FIELD(I)
NEXT
FILE( )
Propsito:
Sintaxe:
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(\PRODU O\CADASTRO.DBF) // verifica no diretrio
// \PRODU O
.
.
.
FKLABEL( )
Propsito:
nome
Sintaxe:
Exemplo:
? FKLABEL(5)
? FKLABEL(7)
FKMAX( )
Propsito:
// resultado: F5
// resultado: F7
95
Sintaxe:
FKMAX( ).
Exemplo:
? FKMAX( )
// resultado: 40
FLOCK( )
Propsito:
Sintaxe:
FLOCK( ).
quando
de Redes
registros
ambiente
Exemplo:
USE MALA SHARED
// abre o arquivo compartilhado
IF FLOCK( )
? ARQUIVO TRAVADO!
REPLACE ALL SAL RIO WITH SALARIO*1.2
ELSE
? N O FOI POSS VEL TRAVAR O ARQUIVO
ENDIF
FOPEN( )
Propsito:
Sintaxe:
FOUND( )
Propsito:
Sintaxe:
FOUND( ).
bem
foi
Exemplo:
USE MALA
LOCATE NOME = JO O
IF FOUND( )
96
? REGISTRO N O ENCONTRADO
ENDIF
FREAD( )
Propsito:
arquivo,
Sintaxe:
Exemplo:
# DEFINE BLOCO 128
BUFFER := SPACE(BLOCO)
HANDLE := FOPEN(LEIAME.TXT)
IF FERROR ( ) ! = 0
? N O FOI POSS VEL 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:
Exemplo:
# DEFINE FILEIO.CH
HANDLE := FOPEN (LEIAME.TXT, FC_NORMAL)
IF FERROR( ) ! = 0
? ERROR DE ABERTURA
CANCEL
ELSE
STRING
FCLOSE(HANDLE)
ENDIF
97
FRENAME( )
Propsito:
Sintaxe:
Exemplo:
IF FRENAME(LEIAME.TXT, NAOLEIAM.TXT) <> -1
? ARQUIVO RENOMEADO
ELSE
? FALHA NA OPERA O!!!
ENDIF
FSEEK( )
Propsito:
posio
Sintaxe:
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
? N O FOI POSS VEL ABRIR O ARQUIVO
ENDIF
FWRITE( )
Propsito:
arquivo
Sintaxe:
um
98
GETENV( )
Propsito:
sistema
Sintaxe:
varivel
do
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:
Exemplo:
USE CLIENTES
SET PRINT ON
? HARDCR(OBS)
SET PRINTER OFF
//
//
//
//
//
//
//
HEADER( )
Propsito:
Sintaxe:
HEADER( ).
de
Exemplo:
99
USE CLIENTES
? HEARDER( )
IF( )
Propsito:
Sintaxe:
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:
Sintaxe:
INDEXEXT( ).
de
Clipper,
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( )
Propsito:
Sintaxe:
INDEXKEY(<ordem>).
especificado.
Exemplo:
100
INDEXORD( )
Propsito:
Fornecer a ordem
corrente.
Sintaxe:
INDEXORD( ).
ndice
de
abertura
do
arquivo de
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:
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 C DIGO..: + STR(TECLA)
INT( )
Propsito:
Sintaxe:
Exemplo:
VAR1:=VAR2:=2929.93
? INT(VAR1), VAR2
// resultado: 2929
2929.93
101
ISALPHA( )
Propsito:
caractere
Sintaxe:
Exemplo:
VAR1:= RUA 13 DE MAIO
VAR2:= 1928
? ISALPHA(VAR1)
? ISALPHA(VAR2)
// resultado: .T.
// resultado: .F.
ISCOLOR( )
Propsito:
Sintaxe:
ISCOLOR( ).
aplicao
ISDIGIT( )
Propsito:
expresso
Sintaxe:
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>).
102
Exemplo:
VAR1:= RUA 13 DE MAIO
VAR2:= 1928
? ISLOWER(VAR1)
// resultado: .T.
? ISLOWER(VAR2)
// resultado: .F.
? ISLOWER(EDITORA ERICA)
// resultado: .F.
ISPRINTER( )
Propsito:
Sintaxe:
ISPRINTER( ).
pronta
na
LPT1
est
Exemplo:
:
RESPOSTA := S
@ 22,10 SAY CONFIRMA SA DA DO RELAT RIO...: GET RESPOSTA
READ
IF .NOT. ISPRINTER( )
// verifica se a impresso no se
// encontra pronta.
@ 23,10 SAY IMPRESS O N O 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.
103
? ISLOWER(VAR2)
// resultado: .F.
? ISLOWER(EDITORA ERICA)
// resultado: .T.
I2BIN( )
Propsito:
Sintaxe:
I2BIN( ).
inteiro
LASTKEY( )
Propsito:
Sintaxe:
LASTKEY( ).
foi
inteiro
ltima tecla
para
que
Exemplo:
//
SE O DE @..GETS
READ
IF LASTKEY( ) = 27
RETURN
ENDIF
LASTREC( )
Propsito:
Sintaxe:
LASTREC( ).
dados
de
Exemplo:
USE CLIENTES
? RECCOUNT( ), LASTREC( )
SET FILTER TO ESTADO = SP
? LASTREC( )
COUNT TO TOTALREG
? TOTALREG
// resultado: 212
212
// resultado: 212
// resultado: 46
LEFT( )
Propsito:
de
104
Sintaxe:
Exemplo:
LEN( )
Propsito:
o
Sintaxe:
Exemplo:
LOCAL VAR
? LEN(RUA)
// resultado: 3
VAR := RUA 13 DE MAIO
? LEN(VAR)
// resultado: 14
LENNUM( )
Propsito:
Sintaxe:
Exemplo:
VAR := 299.999
? LENNUM(VAR)
LOG( )
// resultado: 7
Propsito:
Sintaxe:
LOG(<exp.numrica>).
numrica.
Exemplo:
105
? LOG(10)
? LOG(2.71)
// resultado: 2.30
// resultado: 1.00
LOWER( )
Propsito:
Sintaxe:
Exemplo:
NOME := JO O DA SILVA
? LOWER(NOME)
// resultado: JO O DA SILVA.
LTRIM( )
Propsito:
uma
Sintaxe:
Exemplo:
VALOR := 100
STRING := STR(VALOR)
? STRING
? LTRIM(STRING)
LUPDATE( )
// resultado: 100
// resultado: 100
Propsito:
Sintaxe:
LUPDATE( ).
dados
Exemplo:
USECLIENTES
? LUPDATE( )
L2BIN( )
Propsito:
32
// resultado: DD/MM/AA
106
Sintaxe:
L2BIN(<exp.numrica>).
MAX( )
Propsito:
numricas
Sintaxe:
Exemplo:
? MAX (200, 292)
// resultado: 292
MAXCOL( )
Propsito:
Sintaxe:
MAXCOL( ).
da
Exemplo:
MAXROW( )
Propsito:
Sintaxe:
Exemplo:
OBS := SPACE(10)
MEMOEDIT(OBS,0,0, MAXROW( ), MAXCOL( ) )
MEMOEDIT( )
Propsito:
ou
Sintaxe:
inicial>,
<modo
107
da linha>,
<coluna
<tamanho da tabulao>,
buffer>, <linha da janela>).
<linha buffer>,
Exemplo:
FALTA EXEMPLO
CLEAR
USE CLIENTES
LOCATE FOR NOME = JO O
// 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
// :
// :
************************************************************
*
ACENTUA O DE CAMPOS MEMOS EM CLIPPER 5.0/5.01
*
POR: GORKI STARLIN C. OLIVEIRA
*
DATA: NOV. 92
************************************************************
FUNCTION ACENTO ( MODO, LINHA, COLUNA) // DEFINIR A FUN O
# 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( )
IF LASTKEY( ) = - 1
// se teclar <F2>
RETORNA :? 23
// retorna <CTRL>+<W>
ELSEIF
LASTEKEY( ) = INSERT
CURSOR = !READINSERT( )
SETCURSOR(IF (CURSOR,2,1) )
RETORNA :? 22
108
ENDIF
DO CASE
RETURN (retorna) // retorna o controle para DBEDIT( ).
// ATIVA AS FUN ES 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
KEYBOAD CARACTER
ENDCASE
RETURN .T.
FUNCTION CRAZE
109
110
MEMOLINE( )
111
Propsito:
ou
Sintaxe:
<nmero
<rolagem>).
Exemplo:
//
IMPRESS O 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:
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)
? N O FOI POSS VEL GRAVAR O TEXTO
ENDIF
112
MEMORY( )
Propsito:
do
Sintaxe:
Exemplo:
IF MEMORY(2)>= 128
RUN RELOGIO.EXE
ELSE
ENDIF
MEMOTRAN( )
Propsito:
Sintaxe:
MEMOTRAN(<campo>,
return/line
caractere.
manual>,
<substituio automtica>).
<substituio
Exemplo:
REPLACE OBS WITH MEMOTRAN(OBS, , )
// retira todos os
// caracteres de controle do texto.
MEMOWRIT( )
Propsito:
ou
Sintaxe:
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
113
MIN( )
Propsito:
expresses
Sintaxe:
ou
Exemplo:
? MIN (300,252)
// resultado: 252
? MIN (DATE( ), DATE( ) + 5)
// resultado: o valor de date( )
MLCOUNT( )
Propsito:
ou
Sintaxe:
da
Exemplo:
// IMPRESS O 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
MLPOS( )
114
Propsito:
um
Sintaxe:
linha>,
Exemplo:
TEXTO :? MEMOREAD(TESTE.TXT)
POSICAO :? MLPOS(TEXTO, 40, 5)
? SUBSTR(TEXTO, POSICAO, 15)
MOD( )
Propsito:
Sintaxe:
MOD(VALOR1, VALOR2).
outro.
MONTH( )
Propsito:
um
Sintaxe:
para
Exemplo:
SET DATE TO BRIT
? DATE( )
? MONTH(DATE( ) )
NETERR( )
Propsito:
Sintaxe:
NETERR( ).
de
Exemplo:
115
NETNAME( )
Propsito:
Sintaxe:
NETNAME( ).
Rede
corrente
na
Exemplo:
// resultado: ESTA O 3
? NETNAME( )
NEXTKEY( )
Propsito:
Sintaxe:
NEXTKEY( ).
no
caractere
pendente
Exemplo:
KEYBOARD A
? NEXTKEY( ), LASTKEY( )
? INKEY( ), LASKTKEY( )
? NEXTKEY( )
OS( )
Propsito:
Sintaxe:
Exemplo:
? OS( )
116
PAD( )
Propsito:
em
ou
Sintaxe:
Exemplo:
DADO1:? RICA
DADO2:? RICA
DADO1:? RICA
? PADC(DADO1,20,?)
? PADL(DADO1,20,?)
? PADR(DADO1,20,?)
PCOL( )
Propsito:
Sintaxe:
PCOL( ).
da
coluna
Exemplo:
SET DEVICE TO PRINT
@ 10,10 SAY DATE( )
@ 10, PCOL( ) +5 SAY TIME( )
SET DEVICE TO SCREEN
PCOUNT( )
Propsito:
Sintaxe:
PCOUNT( ).
rotina
Exemplo:
117
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:
Exemplo:
FUNCTION COMPARA(VALOR1, VALOR2)
IF PCOUNT( ) ? 0 // se no foi passado nenhum parmetro
? ERRO, N O FORAM PASSADOS OS VALORES PARA COMPARA O
RETURN
ENDIF
? PROCLINE( )
// resultado: 11
IF VALOR1 = VALOR2
RETURN .T.
ELSE
RETURN .F.
ENDIF
PROCNAME( )
Propsito:
sendo
Sintaxe:
que
foi
ou
est
118
PROW( )
Propsito:
Sintaxe:
PROW( ).
da
Exemplo:
QOUT( )
Propsito:
Sintaxe:
Exemplo:
QOUT (DATE( ), TIME( ) )
QOUT (EDITORA ERICA)
QQOUT( )
Propsito:
mesma
Sintaxe:
no
console
na
ocorrncia
de
Exemplo:
QQOUT (DATE( ), TIME( ) )
QQOUT (EDITORA ERICA)
RAT( )
Propsito:
uma
119
Sintaxe:
Exemplo:
? RAT(RJ, SP_RJ_RS,PA)
READEXIT( )
Propsito:
Sintaxe:
READEXIT(<.T.>|<.F.>).
para
seta
Exemplo:
CLEAR
READEXIT(.T.)
// liga a sada atravs das teclas
ENDERECO:? NOME:? SPACE(30)
@ 10,10 SAY NOME...........: GET NOME
@ 12,10 SAY ENDERE O.......: GET ENDERE O
READ
READINSERT( )
Propsito:
Sintaxe:
Exemplo:
CLEAR
ENDERECO:? NOME:? SPACE(30)
@ 23,10 SAY TECLE <F2> PARA INSER O
@ 10,10 SAY NOME........: GET NOME
@ 12,10 SAY ENDERE O....: GET ENDERE O
SET KEY -1 TO INSERE( )
READ
FUNCTION INSERE( )
IF READINSERT( )
// insert ligado
READINSERT(.F.)
@ 00,65 SAY
120
ELSE
READINSERT(.T.)
@ 00, 65 SAY INSERE
ENDIF
RETURN
READKEY( )
Propsito:
Sintaxe:
READ.
READKEY( ).
um
que encerrou
READMODAL( )
Propsito:
Sintaxe:
READVAR( )
Propsito:
Sintaxe:
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 ENDERE O.................: GET ENDERE O
READ
FUNCTION TESTE( )
IF READVAR + NOME
? VOC ESTA PROCESSANDO A VARI VEL DO NOME
ELSEIF READVAR ? ENDERE O
? VOC ESTA PROCESSANDO A VARI VEL DO ENDERE O
ENDIF
RETURN
121
RECCOUNT( )
Propsito:
Sintaxe:
RECCOUNT( ).
atual.
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
Exemplo:
USE MALA
GO 1
? RECNO( )
SKIP + 3
? RECNO( )
// resultado: 1
// resultado: 4
RECSIZE( )
Propsito:
Sintaxe:
Exemplo:
USE MALA
? TAMANHO TOTAL DO ARQUIVO
?? RECSIZE( ) * LASTREC( ) + HEADER( )
REPLICATE( )
122
Propsito:
repetio
Sintaxe:
Exemplo:
? REPLICATE(=, 5)
? REPLICATE(CASA, 3)
// resultado: =======
// resultado: CASACASACASA
RESTSCREEN( )
Propsito:
uma
Sintaxe:
<L_Final>,
Exemplo:
CLEAR
@ 10,10 TO 20,70 DOUBLE
// desenha uma moldura
A:= SAVESCREEN(10,10,20,70) // salva a tela
CLEAR
// limpa a tela
RESTCREEN(10,10,20,70,A)
RIGHT( )
Propsito:
uma
Sintaxe:
partir
de
Exemplo:
? RIGHT (EDITORA ERICA, 5)
// resultado: ERICA
123
RLOCK( )
Propsito:
Sintaxe:
RLOCK( ).
em
do banco
de
dados
Exemplo:
USE MALA SHARED
SEEK JO O
IF RLOCK( )
DELETE
? REGISTRO DELETADO!!!
ELSE
? REGISTRO N O PODE SER TRAVADO (ALTERADO) NESTE;
MOMENTO
ENDIF
ROUND( )
Propsito:
Sintaxe:
Exemplo:
? ROUND(103.338556,2)
? ROUND(103.33855, 0)
// resultado:
// resultado:
103.34
103.00
ROW( )
Propsito:
Sintaxe:
ROW( ).
se
Exemplo:
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
10
NA LINHA 13
NA LINHA 12
20
NA LINHA 21
124
RTRIM( )
Propsito:
uma
Sintaxe:
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>,
<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
SCROLL( )
Propsito:
Sintaxe:
<L_Final>,
Exemplo:
125
SECONDS( )
Propsito:
Sintaxe:
SECONDS( ).
do
Exemplo:
? TIME( )
? SECONDS( )
SELECT( )
Propsito:
Sintaxe:
// resultado: 10:00
// resultado: 36000
Exemplo:
USE MALA NEW
? SELECT( )
USE CLIENTES NEW
? SELECT( )
? SELECT(MALA)
// resultado: 1
// resultado: 2
// resultado: 1
SETCANCEL( )
Propsito:
Sintaxe:
Exemplo:
/*
PROGRAMA: PRINCIPAL.PRG
AUTOR: GORKI STARLIN
*/
SET DELETE ON
SET CONFIRM ON
SETCANCEL(.F.)
126
SETCOLOR( )
Propsito:
configurao
Sintaxe:
verificar
Exemplo:
ATUAL
:? SETCOLOR( )
PADR O :? BR+/N
DESTAQUE :? R+/N
SET COLOR(PADR O, DESTAQUE)
SETCURSOR( )
Propsito:
Sintaxe:
Exemplo:
CLEAR
NOME :? ENDERE O :? SPACE(30)
// inicializa as variveis
SETCURSOR(1)
@ 10,10 SAY NOME.................: GET NOME
SETCURSOR(3)
@ 12,10 SAY ENDERE O.............: GET ENDERE O
READ
SETKEY( )
Propsito:
uma
Sintaxe:
SETPOS( )
Propsito:
Sintaxe:
127
Exemplo:
?
?
?
?
SETPOS(10,20)
TESTE
SETPOS(20,10)
TESTE
SETPRC( )
Propsito:
Sintaxe:
Exemplo:
SET DEVICE TO PRINTER
SETPRC(10,15)
@ PROW( ), PCOL( ) SAY TESTE
// na linha 10 coluna 15 do
// papel.
SOUNDEX( )
Propsito:
expresso
Sintaxe:
uma
Exemplo:
USE MALA
INDEX ON SOUNDEX(NOME) TO INOME.NTX
SEEK SOUNDEX (JO O)
// pesquisa a fontica do nome JO O
IF FOUND( )
DISPLAY NOME, ENDERE O, CIDADE
ELSE
? N O ENCONTRADO
ENDIF
128
SPACE( )
Propsito:
Sintaxe:
Exemplo:
NOME :? SAPCE( ) // armazena 30 espao dentro da varivel
? TESTE! + SPACE(20) + TESTE2
SQRT( )
Propsito:
Sintaxe:
Exemplo:
? SQRT(2)
? SQRT(4)
// resultado:
// resultado:
1.41
2.00
STR( )
Propsito:
expresso
Sintaxe:
Exemplo:
SAL RIO :? 3020.29
? SRT(SALARIO,4)
? SRT(SALARIO,7,3)
STRTRAN( )
Propsito:
campo
Sintaxe:
<substituio>,
// resultado:
3030
// resultado:
3020.290
129
Exemplo:
TEXTO:? CLIPPER 5.X E CLIPPER 87
? STRTRAN(TEXTO,CLIPPER, VERS O)
STUFF( )
Propsito:
Sintaxe:
Exemplo:
// somente inserir
TESTE :? JCARLOS
? STUFF(TESTE1, 2, 0, OAO)
// extrair e depois inserir
? STUFF(TESTE1, 2, 6, OAO)
SUBSTR( )
Propsito:
Sintaxe:
// resultado: JO O CARLOS
// resultado: JO O
Exemplo:
TESTE1 :? JO O CARLOS
? SUBSTR(TESTE1, 1, 4)
? SUBSTR(TESTE1, 5, 7)
// resultado: JO O
// resultado: CARLOS
TIME( )
Propsito:
Sintaxe:
Exemplo:
CLEAR
@ 10,10 SAY HORA ATUAL......: + TIME( )
130
TONE( )
Propsito:
durao
Sintaxe:
com
uma
Exemplo:
BEEP( )
FUNCITION BEEP
TONE(300,18)
TONE(200,26)
TRANSFORM( )
Propsito:
de
Sintaxe:
uma
cadeia
Exemplo:
? TRANSFORM(EDITORA ERICA, @!) // resultado: EDITORA ERICA
TYPE( )
Propsito:
Sintaxe:
Exemplo:
VALOR :? 1919
NOME :? JO O
BLOCO :??{|| L++}
? TYPE(VALOR)
? TYPE(NOME)
? TYPE(BLOCO)
// resultado: N
// resultado: C
// resultado: B
UPDATED( )
131
Propsito:
Sintaxe:
UPDATED( ).
em
Exemplo:
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 ENDERE O.......: GET VENDERECO PICT @!
READ
IF .NOT. UPDATED( )
// se no foi alterado
LOOP
// sobe ao DO WHILE
ENDIF
APPEND BLANK
REPLACE NOME WITH VNOME
REPLACE ENDERE O WITH VENDERECO
ENDDO
UPPER( )
Propsito:
Sintaxe:
Exemplo:
NOME :??EDITORA ERICA
? UPPER(NOME)
// resultado:
EDITORA ERICA
@ 20,20 SAY NOME........: + UPPER(NOME)
USED( )
Propsito:
Sintaxe:
USED( ).
de
Exemplo:
132
VAL( )
Propsito:
valor
Sintaxe:
Converter uma
numrico.
VAL(<string>).
expresso
caractere
em
um
Exemplo:
SAL RIO :? 2929.20
? VAL (SAL RIO) * 2
TESTE :? COMPUTADOR
? VAL(TESTE)
VALTYPE( )
// resultado: 0
Propsito:
Sintaxe:
VALTYPE(<dado>).
expresso.
Exemplo:
?
?
?
?
VALTYPE(STR( ) )
VALTYPE(SQRT( ))
VALTYPE(2929)
VALTYPE(JO O)
//
//
//
//
retorna: C
retorna: N
retorna: N
resultado: C
VERSION( )
Propsito:
Sintaxe:
Exemplo:
133
? VERSION( )
WORD( )
Propsito:
um
Sintaxe:
// resultado:
Clipper 5.2
Exemplo:
CALL progC WITH WORD (10200),
um texto qualquer
YEAR( )
Propsito:
Sintaxe:
Exemplo:
SET DATE BRIT
? YEAR (DATE( ) )
// resultado:
DATA :? CTOD (20/12/93)
? YEAR (DATA)
// resultado:
93
93
134