CLIPPER BÁSICO

Embed Size (px)

Citation preview

CLIPPER BSICOOBJETIVO TERMINAL: Al finalizar el curso el alumno estar en condiciones de elaborar programas en Clipper que le permitan manejar archivos de datos en aplicaciones varias. DURACIN: 16 HORAS. CONTENIDO 1.- Conceptos Bsicos 1.1. Archivo. 1.2. Base de Datos 1.3. Operaciones con archivos 2.- Generalidades del Clipper 2.1. Que es Clipper 2.2. Caractersticas de Clipper 2.3. Requerimientos de Clipper 3.- Programando con Clipper 3.1. Variables y Operadores 3.2. Estructuras de Decisin 3.3. Estructuras de Repeticin 3.4. Edicin de un programa 3.5. Entrada y salida de datos 4.- Compilacin y prueba de un Programa 5.- Manejo de Archivos 5.1- Creacin de archivos 5.2- Apertura y cierre de archivos 5.3- reas de trabajo 5.4- Adicin de registros 5.4.1- Comando append 5.4.2- Comando replace 5.5- Movimiento dentro del archivo 5.5.1- Comando goto : bottom / top 5.5.2- Comando skip 5.6- Borrado de registros 5.6.1- Marcar registros para eliminacin 5.6.2- Funcin delete( ) 5.6.3- Comando set delete 5.6.4- Recuperacin de los registros 5.6.7- Eliminacin fsica de los registros 5.7- Bsqueda secuencial en un archivo 5.7.1- Comando locate 5.7.2- Comando continue 5.8- Creacin y apertura de archivos indexados 5.8.1- Orden Index on ( ) to 5.8.2- Orden Set index to 5.9- Bsqueda indexada en un archivo 5.9.1- Comando find 5.9.2- Comando seek 6.- Procedimientos y Funciones en Clipper 7.- Manejo de arreglos en Clipper 8.- Presentacin de datos en Pantalla 9.- Diseo, elaboracin y prueba de un sistema sencillo. 10.- Compilacin y Encadenamiento - Libreras Pre-encadenadas - Compilacin por Mdulos - Encadenamiento con Archivos ( .LNK ) - Creacin de Archivos Overlay ( .OVL ) - Encadenamiento de Libreras Externas. 11.- Macro-Sustitucin y Bloques de Cdigo. 12.- La Funcin Achoice() 13.- La Funcin Dbedit() 14.- Manejo de Mouse - Funcin MouseMenu() - Funcin ChoiceMenu() 15.- Introduccin a la Programacin Orientada a Objetos ( POO ) - La Clase Get() - La Clase Tbrowse() 16.- Manejo de Ayudas - La Funcin Memoedit(). - Creacin de un Editor de Texto. 17.- Manejo del Clipper en una Red de rea Local ( L.A.N. ) - Introduccin - Funciones y Comandos - Limitaciones y Recomendaciones - Creacin de Funciones para la Apertura de Archivos. - Creacin de Funciones para el Bloqueo de Archivos y Registro

1 de 30

CONCEPTOS BSICOS1.- Dato Del Latn data que significa hecho, entidades independientes sin evaluar. Los datos pueden ser numricos o no numricos. Un conjunto de datos se convierten en informacin cuando son evaluados y procesados. Para que este conjunto de datos se procese eficientemente debe estar organizado lgicamente en archivos. 1.- Archivo Un conjunto de registros del mismo tipo recibe el nombre de Archivo. Un registro, a su vez es un conjunto de campos con relacin entre s, y un campo es la unidad ms pequea a la que se puede referir un dato. La figura siguiente nos muestra de una forma grfica lo que sera un archivo, un registro y un campo.REGISTRO 1 CAMPO 1 DEL REGISTRO 1 CAMPO 1 DEL REGISTRO 3 CAMPO 2 DEL REGISTRO 1 CAMPO 2 DEL REGISTRO 3

REGISTRO 2 REGISTRO 3

ARCHIVO 2.- Base de Datos Es una coleccin de archivos interrelacionados creados con un Sistema de Manejo de Bases de datos, y que pueden ligarse de diferentes maneras. 3.- Operaciones con Archivos Los datos que tienen relacin entre s se almacenan u ordenan como se dijo en los campos de un registro, estos campos pueden ser manipulados de forma tal que el usuario que los necesita pueda utilizarlos, guardndolos, cambindolos o borrndolos segn sea el caso; si esto se hace con los campos es valedero decir que lo mismo se puede hacer con los registros y por ende se hace con los archivos. Es oportuno acotar aqu que la data debe protegerse y que por lo tanto cualquier aplicacin que se desarrolle para manejar archivos, debe llenar como primer requisito la conservacin y proteccin de los datos.

GENERALIDADES SOBRE CLIPPERClipper es un manejador de archivos con ciertas caractersticas de un manejador de Base de Datos y surge como la necesidad de suplir algunas deficiencias del DBASE, siendo la mas resaltante la de ser un Compilador, motivo ste por el cual se acelera la ejecucin de un programa escrito en DBASE. Provee adems un conjunto de rdenes y funciones propias que han sido desarrolladas con el paso de los aos convirtindolo en el Manejador de Archivos ms popular. Sin Compararlo con DBASE podramos decir qu sus caractersticas son: - Compilador Profesional. - Un conjunto de rdenes y Funciones que permiten un mejor y ms fcil manejo de la programacin. - Permite programacin por capas, no existiendo por lo tanto lmite para la dimensin de un programa. - Permite la definicin de funciones por parte del usuario. - Puede conectarse con rutinas externas de otros lenguajes. En cuanto a los requerimientos de Hardware Clipper es poco exigente, sin embargo se recomienda que el equipo tenga Disco Duro y por lo menos un Mega de memoria Ram. Sin embargo no es lo mismo cuando se desarrollan aplicaciones ya que los requerimientos dependen en s ms de la aplicacin que de Clipper. De la misma forma en entorno de Software necesario es mnimo, Sistema operativo DOS, y un config.sys con Buffers no menores a 20 y Files no menores de 40. 2 de 30

PROGRAMACIN EN CLIPPER1.- Variables y Operadores Una variable de memoria es un pedazo de memoria del computador que recibe un nombre o identificador y almacena temporalmente un dato. Una variable de memoria puede almacenar nmeros, cadenas de caracteres, una fecha o un valor lgico. Los identificadores de variables en Clipper pueden tener hasta diez (10) caracteres y deben empezar por una letra, no puede tener espacios, no pueden ser palabras de uso propio de Clipper (palabras reservadas). Se pueden crear de dos formas diferentes: Con el uso del comando STORE, ejemplo STORE TO o por medio de la asignacin; ejemplo Identificador = valor Ejemplos segn tipo: NUMRICAS: store 0 to cdigo cdigo = 0 TIPO FECHA Clipper dispone de la funcin CTOD() para crear e inicializar variables del tipo fecha. store CTOD(28/04/96) to hoy Cuando se desea inicializar mas de una variable del mismo tipo se puede emplear cualquiera de la siguientes formas: - STORE TO VAR1, VAR2, VAR3 - VAR1=VAR2=VAR3= TIPO ARRAY Clipper maneja los arreglos como un conjunto de datos o variables con el mismo nombre y su declaracin es como sigue: DECLARE VAR [] Donde var corresponde al identificador del arreglo y dentro de los corchetes se coloca un nmero que le indica a Clipper cuantas variables con ese nombre va a manejar, ejemplo: Declare cliente[3] as: cliente[1] podra ser el nombre cliente[2] la direccin y cliente[3] el telfono del cliente Los arreglos en Clipper puede ser tambin multidimensionales, veamos el ejemplo de creacin de un arreglo multidimensional Declare clientes[3] [3] En este caso se trata de una matriz de 3 columnas y 3 filas Operadores Clipper maneja operadores numricos, de cadena, de relacin y lgicos; su descripcin se enumera a continuacin: 3 de 30 LGICAS store .t. to ciclo ciclo = .t.

Numricos: + ---------------> Suma ---------------> Substraccin * ---------------> Producto / ---------------> Divisin ** o ^ ---------------> Exponenciacin % ---------------> Modulo Relacionales > ---------------> Mayor que .and. < ---------------> Menor que .or. = ---------------> Igual que == o ++ --------------> Exactamente igual que Menor o igual que >= ---------------> Mayor o igual que != o ---------------> Diferente + $

Cadena ---------------> Concatenacin -----------> Comparacin de subcadenas.

Lgicos ---------------> Y lgico ---------------> O lgico .not. ---------------> NO

lgico

Clipper maneja los siguientes operadores de asignacin: = := =+ -= *= /= ---------------> Asignacin simple ---------------> Asignacin en lnea ---------------> Adicin y asignacin en la lnea ---------------> Substraccin y adicin en la lnea ---------------> Producto y asignacin ---------------> Divisin y asignacin en lnea

Clipper clasifica las variables de memoria en cuatro clases: PUBLIC, PRIVATE, LOCAL Y STATIC. - Una variable declarada como PUBLIC es visible para cualquier programa del sistema. Son denominadas tambin GLOBALES. - Una variable declarada como LOCAL solo existe mientras se est ejecutando el programa en el que fue declarada. El valor se pierde al retornar al programa principal. - Las variables declaradas como STATIC funcionan de forma parecida a las locales, solo que su valor no se pierde y sigue disponible cuando se llama por segunda vez al programa donde se encuentra. - Cuando una variable se declara PRIVATE, sta es visible desde todos los programas que llame el programa en el cual fue declarada. Si una variable no es declarada especficamente automticamente se considera de tipo PRIVATE. 2.- Estructuras de Decisin En Clipper se encuentra la estructura de decisin simple si entonces, la compuesta si entonces .... de lo contrario (si no) y la de decisin mltiple caso; sus sintaxis se enumeran a continuacin: if instruccin o instrucciones endif if instruccin o instrucciones else instruccin o instrucciones endif La condicin para efectuar la toma de decisiones debe ser una condicin lgica o relacional, ejemplo: 4 de 30

if conta = 3 v=4 endif

if conta = 3 v=4 else v = v+1 endif if conta > conta1 v=4 else v = v+1

if conta = .t. v=4 endif

endif DO CASE CASE = instruccin o instrucciones CASE = instruccin o instrucciones CASE = instruccin o instrucciones ENDCASE 3.- ESTRUCTURAS DE REPETICIN Clipper trabaja con dos estructuras repetitivas, el DO WHILE y el FOR... NEXT, la sintaxis de esta son: DO WHILE instruccin o instrucciones ENDDO Esta estructura es la principal y la ms utilizada para controlar la ejecucin global de un programa en Clipper. Su funcionamiento depende de la evaluacin que se hace inicialmente de la condicin, si es verdadera se ejecutan los comandos (instrucciones) que se encuentran entre el DO WHILE y el ENDDO, al llegar al enddo el programa testea nuevamente la condicin, si esta deja de cumplirse el ENDDO entrega el control del programa a la lnea siguiente del ENDDO. El ciclo DO WHILE puede ser interrumpido usando el comando EXIT, esto es muy usado por los programadores cuando se desea interrumpir el ciclo al cumplirse un hecho o condicin. De igual forma que el ciclo puede interrumpirse, es posible ordenarle que se repita, para ello Clipper provee de la instruccin LOOP. FOR = TO [STEP ] Instruccin o instrucciones NEXT El ciclo se ejecuta de la siguiente forma: para la variable comenzando con valor inicial y variando hasta valor final se ejecutan las instrucciones entre el FOR y el NEXT el cual incrementa el valor de la variable hasta superar el valor final, momento en el cual el control del programa es transferido a la lnea siguiente al NEXT.

EDICIN DE UN PROGRAMAClipper trae un editor de programas llamado PE, sin embargo permite que las aplicaciones puedan ser escritas en procesadores de texto como WordStar o el Edit del Sistema operativo. Si deseamos usar el PE debemos escribir a nivel del punto indicativo del DOS: PE y pulsar ENTER, una vez dentro del editor podemos transcribir nuestro programa; finalizada la tarea de transcripcin debemos pulsar las teclas Ctrl-W y el editor sale al dos y salva el programa con la extensin prg.

5 de 30

Si usamos otro editor debemos tener presente al salvarlo agregar la extensin prg, as si usamos el Edit del DOS podramos seguir el siguiente procedimiento: Edit para estar seguros de colocar la extensin correcta, ya que sin ella Clipper no lo compila. Clipper tiene como nica exigencia que cada orden debe estar en una lnea diferente ya que no posee un separador de rdenes, por lo tanto al momento de transcribir el programa debemos pulsar enter despus de cada instruccin para separarla de la siguiente. Cuando se desarrolla una aplicacin siempre es conveniente documentarla brevemente para ello Clipper posee cuatro formas de colocar comentarios en los programas. * Usado para una sola lnea de comentario y puede ir en cualquier parte del programa. /* .... */ Usado cuando el comentario ocupa ms de una lnea && o // se emplea cuando el comentario se coloca en la misma lnea que un comando.

ENTRADA Y SALIDA DE DATOSPara la captura de datos y presentacin de estos y mensajes Clipper provee de las instrucciones: ACCEPT, ? y ??, As por ejemplo se desea capturar un numero con la variable nmero_1, la sintaxis sera: ACCEPT 0) read @ 13,08 say "hola " + nombre if (edad11 if edad1000 .and. mensget (descuentos sobre el valor 1)) @ 18,10 say Valor3.... get valor3 color w/w read function mensget(texto) @ 23,10 say spac(60) @ 23,10 texto return .t. Esta opcin es muy til ya que nos permite la edicin del campo si el resultado de la comprobacin previa, que realiza when, es verdadera, o saltar la edicin del mismo si es falsa. Adems esta opcin permite el envo de un mensaje a la pantalla cada vez que el campo es editado; activando when invocando una funcin que visualiza el mensaje, o combinandola con otra expresin que evale la edicin del campo.

NIVEL READMODAL()Un objeto GET puede ser creado de dos formas: con la orden @..GET o con la funcin de creacin de la clase GET, que es GETNEW(). Cuando se ejecuta una aplicacin Clipper, se crea automticamente una matrz PUBLICA llamada GETLIST, sin ningn contenido. Cada vez que una rden get es ejecutada, se aade un elemento a la matrz. Ejemplo explicativo: * programa gets.prg clea Nombre=SanJuan salario=0 @ 1,5 say Introduzca su Nombre.... get Nombre @ 2,5 say Introduzca el salario.......get salario read El procesador traduce ester cdigo en: scroll(); SetPos(0,0); _KillRead(); GetList:={} Nombre=SanJuan salario=0 DevPos(1,5); DevOut( Introduzca su Nombre....); 19 de 30

SetPos(Row(),Col()+1); AAdd(GetList,_Get_(Nombre,Nombre,,,)) DevPos(2,5); DevOut(Introduzca el salario.......); SetPos(Row(),Col()+1); AAdd(GetList,_Get_(salario,salario,,,)) ReadModal(GetList); GetList:={} Del anterior bloque de cdigo se deduce que la funcin AADD incrementa en un elemento la matriz GETLIST mediante la funcin interna _GET_, la cual crea un objeto GET. Se advierte adems que read ha sido sustituido por READMODAL, y que despues de su ejecucin la Matriz GETLIST queda vaca. Otra forma de crear objetos GET es mediante GETNEW() cuya sintaxis es:

GETNEW([,],[],[