jueves, 3 de noviembre de 2011

SEGUIMOS CON FUNCIONES

AADD()         Agregar un nuevo elemento al final de una matriz
ABS()          Devolver el valor absoluto de una expresión numérica
ACHOICE()      Ejecutar un menú de despliegue repentino
ACLONE()       Duplicar una matriz anidada o multidimensional
ACOPY()        Copiar elementos de una matriz a otra
ADEL()         Borrar un elemento de una matriz
ADIR()*        Llenar una serie de matrices con información del directorio
AEVAL()        Ejecutar un bloque de código por cada elemento de una matriz
AFIELDS()*     Llenar una serie de matrices con la estructura de un archivo
AFILL()        Llenar una matriz con un valor especificado
AINS()         Introducir un elemento nulo (NIL) en una matriz
ALERT()        Visualiza una ventana de diálogo de modal sencilla
ALIAS()        Devolver el seudónimo de un área de trabajo determinada
ALLTRIM()      Eliminar los espacios iniciales y finales de una cadena
ALTD()         Invocar el Depurador de Clipper
ARRAY()        Crear una matriz sin inicializar de dimensiones especificadas
ASC()          Obtener el valor ASCII de un carácter
ASCAN()        Explorar una matriz en busca de un valor determinado
ASIZE()        Expandir o encoger una matriz
ASORT()        Clasificar una matriz
AT()           Devolver la posición de una subcadena dentro de una cadena
ATAIL()        Devuelve el elemento de una matriz de numeración más alta
BIN2I()        Convertir un entero de 16 bits con signo a valor numérico
BIN2L()        Convertir un entero de 32 bits con signo a valor numérico
BIN2W()        Convertir un entero de 16 bits sin signo a valor numérico
BOF()          Detectar la marca de principio de archivo
BREAK()        Salir de una construcción BEGIN SEQUENCE...END
BROWSE()       Hojear los registros dentro de una ventana
CDOW()         Convertir un valor de fecha al nombre del día de la semana
CHR()          Convertir un código ASCII a un valor de carácter
CMONTH()       Convertir una fecha al nombre del mes
COL()          Obtener la posición de columna del cursor de la pantalla
CTOD()         Convertir una cadena de fecha a un valor de fecha
CURDIR()       Devolver el directorio en curso del DOS
DATE()         Obtener la fecha del sistema en forma de valor de fecha
DAY()          Obtener el día del mes en forma de valor numérico
DBAPPEND()     Agregar un registro nuevo
DBCLEARFIL()   Borrar una condición de filtro
DBCLEARIND()   Cerrar índices
DBCLEARREL()   Borrar las relaciones activas
DBCLOSEALL()   Cerrar todas las áreas de trabajo ocupadas
DBCLOSEAREA()  Cerrar un área de trabajo
DBCOMMIT()     Grabar al disco las actualizaciones pendientes
DBCOMMITALL()  Grabar al disco todas las actualizaciones de todas las áreas
DBCREATE()     Crear un archivo (dbf) desde una matriz de estructura (dbf)
DBCREATEIND()  Crear un  archivo de índice
DBDELETE()     Marcar un registro para ser borrado
DBEDIT()*      Hojear los registros en forma de tabla
DBEVAL()       Evaluar un bloque de código por cada registro especificado
DBF()*         Devolver el nombre del seudónimo (alias) en curso
DBFILTER()     Obtener la expresión de filtro como cadena de caracteres
DBGOBOTTOM()   Moverse al último registro lógico
DBGOTO()       Moverse a un registro particular
DBGOTOP()      Moverse a primer registro lógico
DBRECALL()     Rehabilitar un registro marcado para ser borrado
DBREINDEX()    Crear de nuevo todos los índices activos
DBRELATION()   Devuelve la expresión de enlace de una relación especificada
DBRSELECT()    Retorna el número del área de trabajo destino de una relación
DBSEEK()       Buscar un valor clave
DBSELECTAR()   Cambiar el área de trabajo en curso
DBSETDRIVER()  Fijar el driver de base de datos por omisión
DBSETFILTER()  Asignar una condición de filtro
DBSETINDEX()   Abrir un índice
DBSETORDER()   Fijar el orden de control
DBSETRELAT()   Relacionar dos áreas de trabajo
DBSKIP()       Moverse en relación con el registro en curso
DBSTRUCT()     Crear una matriz con la estructura de un archivo (.dbf)
DBUNLOCK()     Borrar todos los bloqueos del área de trabajo en curso
DBUNLOCKALL()  Borrar todos los bloqueos de todas las áreas de trabajo
DBUSEAREA()    Usar un archivo de base de datos en un área de trabajo
DELETED()      Devuelve el estado de borrado del registro actual
DESCEND()      Crear un valor clave de índice descendente
DEVOUT()       Escribir un valor en el dispositivo en curso
DEVPOS()       Mover el cabezal de la impresora a una nueva posición
DIRECTORY()    Crear una matriz con información del directorio y archivos
DISKSPACE()    Devolver el espacio disponible en el disco especificado
DISPBEGIN()    Comenzar el almacenamiento temporal de salida de pantalla
DISPBOX()      Visualizar un cuadro en la pantalla
DISPEND()      Visualizar actualizaciones de pantalla almacenadas
DISPOUT()      Escribir un valor en la pantalla
DOSERROR()     Devolver el número del último error del DOS
DOW()          Convertir una fecha en el valor numérico del día de la semana
DTOC()         Convertir un valor fecha a cadena de caracteres
DTOS()         Convertir una fecha en una cadena con el formato aaaammdd
EMPTY()        Determinar si el resultado de una expresión está vacío
EOF()          Determinar cuando se encuentra el final del archivo
ERRORBLOCK()   Situar un bloque de código que ejecute cuando ocurra un error
ERRORLEVEL()   Fijar el código de retorno de Clipper
EVAL()         Evaluar un bloque de código
EXP()          Calcular e**x
FCLOSE()       Cerrar un archivo binario y grabar los DOS buffers al disco
FCOUNT()       Devolver el número de campos en el archivo (.dbf) activo
FCREATE()      Crear y/o truncar un archivo binario de longitud cero
FERASE()       Borrar un archivo del disco
FERROR()       Comprobar errores después de una operación de archivos
FIELDNAME()    Devolver el nombre de un campo del archivo (.dbf) en curso
FIELDBLOCK()   Devolver un bloque de código set-get para un campo
FIELDGET()     Recuperar el valor de un campo mediante la posición del campo
FIELDPOS()     Devolver la posición de un campo de un área de trabajo
FIELDPUT()     Asignar el valor de la variable de campo mediante su posición
FIELDWBLOCK()  Devolver un bloque de código set-get correspondiente al campo
FILE()         Determinar si existen archivos en la ruta implícita
FKLABEL()*     Devolver el nombre de una tecla de función
FKMAX()*       Devolver el número de teclas de función como constante
FLOCK()        Bloquear un archivo de base de datos abierto y compartido
FOPEN()        Abrir un archivo binario
FOUND()        Determinar si tuvo éxito la operación de búsqueda anterior
FREAD()        Leer caracteres del archivo binario y pasarlos a una variable
FREADSTR()     Leer caracteres de un archivo binario
FRENAME()      Cambiar el nombre de un archivo
FSEEK()        Colocar el puntero de archivo en una nueva posición
FWRITE()       Escribir en un archivo binario abierto
GETACTIVE()    Devolver el objeto Get activo en curso
GETENV()       Devolver el contenido de una variable de entorno del DOS
HARDCR()       Sustituir todos los retornos de carro temporales de una serie
HEADER()       Devolver la longitud de la cabecera del archivo (.dbf) activo
IF()           Devolver el resultado de la expresión basada en una condición
INDEXEXT()     Devolver la extensión por omisión de los archivos de índice
INDEXKEY()     Devolver la expresión clave del índice especificado
INDEXORD()     Devolver la posición del índice de control
INKEY()        Extraer un carácter de la memoria intermedia del teclado
INT()          Convertir en entero una valor numérico
ISALPHA()      Determinar si es alfabético el carácter inicial de una cadena
ISCOLOR()      Determinar si la computadora puede visualizar colores
ISDIGIT()      Determinar si es un dígito el carácter inicial de una cadena
ISLOWER()      Determinar si es minúscula el carácter inicial de una cadena
ISPRINTER()    Averiguar si se halla disponible la impresora
ISUPPER()      Determinar si es mayúscula el carácter inicial de una cadena
I2BIN()        Convertir un valor numérico en entero binario de 16 bits
LASTKEY()      Devolver el valor de la última tecla en el buffer del teclado
LASTREC()      Determinar el número de registros en el archivo (.dbf) actual
LEFT()         Extraer una subserie a partir del primer carácter de la serie
LEN()          Devolver la longitud de una cadena de caracteres o matriz
LOG()          Calcular el logaritmo natural de un valor numérico
LOWER()        Convertir letras mayúsculas en minúsculas
LTRIM()        Eliminar los espacios en blanco que anteceden a una cadena
LUPDATE()      Devolver la fecha de la última modificación de un archivo
L2BIN()        Convertir un valor numérico en un entero binario de 32 bits
MAX()          Devolver el mayor de dos valores numéricos o de fecha
MAXCOL()       Determinar el número máximo de columnas visibles en pantalla
MAXROW()       Devolver el número máximo de filas visible en una pantalla
MEMOEDIT()     Visualizar o editar cadenas de caracteres y campos memo
MEMOLINE()     Extraer una línea de texto de una cadena o de un campo memo
MEMOREAD()     Devolver el contenido de un archivo como cadena de caracteres
MEMORY()       Determinar la cantidad de memoria libre disponible
MEMOTRAN()     Sustituir retornos de carro y avances de línea en cadenas
MEMOWRIT()     Grabar una cadena de caracteres en un archivo específico
MEMVARBLOCK()  Devolver un bloque de código set-get para una variable
MIN()          Devolver el menor de dos valores numéricos o de fecha
MLCOUNT()      Contar el número de líneas en una cadena o campo memo
MLCTOPOS()     Devolver la posición del byte de una cadena formateada
MLPOS()        Determinar la posición de una línea en una serie o campo memo
MOD()*         Devolver el residuo dBASE III PLUS de dos números
MONTH()        Convertir un valor de fecha en el número del mes
MPOSTOLC()     Devolver la posición de línea y columna
NETERR()       Determinar si un comando de redes ha fracasado
NETNAME()      Obtener el identificador de la estación de trabajo en curso
NEXTKEY()      Leer la tecla pendiente en la memoria intermedia del teclado
NOSNOW()       Conmutar la eliminación de la nieve
OS()           Devolver el nombre del sistema operativo
OUTERR()       Escribir la lista de valores al dispositivo de error estándar
OUTSTD()       Escribir una lista de valores al dispositivo de salida
PAD()          Rellenar valores de caracteres, fecha, y numéricos
PCOL()         Devolver la posición de columna del cabezal de la impresora
PCOUNT()       Determinar la posición del último parámetro real pasado
PROCLINE()     Devolver número de línea del código fuente de una activación
PROCNAME()     Devolver nombre del procedimiento o función, actual o previa
PROW()         Devolver la posición de fila del cabezal de la impresora
QOUT()         Visualizar una lista de expresiones en la consola
RAT()          Devolver la posición de la última ocurrencia de una subserie
READEXIT()     Conmutar flecha arriba y flecha abajo como teclas de salida
READINSERT()   Conmutar la modalidad actual de inserción de READ y MEMOEDIT
READKEY()*     Determinar la tecla usada para terminar un READ
READMODAL()    Activar la modalidad de edición para un GetList
READVAR()      Devolver el nombre de la variable de GET/MENU en curso
RECCOUNT()*    Averiguar el número de registros en el archivo (.dbf) activo
RECNO()        Devolver el número del registro actual de un área de trabajo
RECSIZE()      Determinar la longitud de registro de un archivo (.dbf)
REPLICATE()    Devolver una cadena replicada un número especificado de veces
RESTSCREEN()   Visualizar una región salvada de la pantalla en una zona
RIGHT()        Devolver una subcadena a partir del último carácter
RLOCK()        Bloquear el registro en curso en el área de trabajo activa
ROUND()        Devolver un valor numérico redondeado a un número de dígitos
ROW()          Devolver la posición de fila del cursor en la pantalla
RTRIM()        Eliminar los espacios en blanco al final de una cadena
SAVESCREEN()   Salvar un área de la pantalla para visualizarla más tarde
SCROLL()       Desplazar un área de la pantalla hacia arriba o hacia abajo
SECONDS()      Devolver los segundos transcurridos desde la medianoche
SELECT()       Determinar el número del área de trabajo de un alias
SET()          Inspeccionar o cambiar un ajuste global
SETBLINK()     Conmutar la interpretación del asterisco (*) en SETCOLOR()
SETCANCEL()    Activar y desactivar Alt-C y Ctrl-Break como tecla de termina
SETCOLOR()     Devolver los colores en curso y opcionalmente fijar nuevos
SETCURSOR()    Fijar el tipo de cursor
SETKEY()       Asignar un bloque de acción a una tecla
SETMODE()      Cambiar la modalidad de visualización de filas y columnas
SETPOS()       Colocar el cursor en una nueva posición
SETPRC()       Fijar los valores de PROW() y PCOL()
SOUNDEX()      Convertir una cadena de caracteres en código "soundex"
SPACE()        Obtener una cadena de espacios en blanco
SQRT()         Obtener la raíz cuadrada de un número positivo
STR()          Convertir una expresión numérica en cadena de caracteres
STRTRAN()      Buscar y sustituir caracteres en una cadena o campo memo
STUFF()        Borrar e insertar caracteres en una cadena
SUBSTR()       Extraer una subcadena de una cadena de caracteres
TIME()         Devolver la hora del sistema
TONE()         Emitir un sonido con una determinada frecuencia y duración
TRANSFORM()    Convertir un valor en una cadena de caracteres con formato
TYPE()         Determinar el tipo de una expresión
UPDATED()      Determinar si se ha modificado un GET durante un READ
UPPER()        Convertir letras minúsculas en mayúsculas
USED()         Determinar si un archivo (.dbf) está siendo usado (USE)
VAL()          Convertir una cadena de caracteres numéricos en tipo numérico
VALTYPE()      Determinar el tipo de datos devuelto por una expresión
VERSION()      Devuelve la versión de Clipper
WORD()*        Convierte en enteros, parámetros numéricos de precisión doble
YEAR()         Extraer el año de un valor de fechas, en forma numérica

lunes, 26 de julio de 2010

Aqui estamos de nuevo.

BUENO...despues de un buen de tiempo comenzamos con:

CLIPPER (R) Version 5xCopyRight (c) Nantucket Corp.

Como todo lenguaje de programacion requiere un entorno para su optimo funcionamiento. Pero este entorno lo rige el sistema operativo, entonces necesitamos adecuarlode alguna manera.

Requerimientos tecnicos:
Sistema operativo: Desde windows 95 a windows XP, NT, WSERVER.
Memoria RAM : 256 Mb en adelante
Ambiente : DOS
Dentro de este ambiente modificaremos algunos ficheros:
------------------------
Para W95, W98, NT.
fichero:

Config.sys

se le modificara o agregara la siguiente linea

files = 100
rem para poder abrir 100 ficheros, si se ocupan mas se modifica el numero

fichero:

autoexec.bat

se le agregará la siguente linea

set clipper=f100rem esto define el entorno de files para clipper
-------------------------
Para XP, Windows SERVER.

Config.nt

Se encuentra en c:\windows\system32 se le modificara o agregara la siguiente linea

files = 100
rem para poder abrir 100 ficheros, si se ocupan mas se modifica el numero

En la linea de comandos
set clipper=f100

nota: esto define el entorno de files para clipper
--------------------------
Y por logica tener instalado el paquete de programacion con el cual realizaremoslos programas.
he aqui las extenciones de los distintos ficheros que se utilizaran para esto

Fuentes de programas(.PRG)
Objetos de programas(.OBJ)
Ejecutables(.EXE)
Overlay(.OVL)
Bases de datos (.DBF)
Indices por default(.NTX)
Indices con drivers(.CDX)
Datos Memoria(.DBT)

LAS SIGUENTES REFERENCIAS FUERON TOMADOS DEL NORTON GUIDE DE CA-Clipper de Peter Norton

COMANDOSPARA CONFIGURAR EL MEDIO AMBIENTE DE PROGRAMACION
SET ALTERNATE Dirigir la salida de consola a un archivo de texto
SET BELL Activar o desactivar el sonido del timbre
SET CENTURY Modificar el formato de fechas acerca del siglo
SET COLOR* Definir los colores de la pantalla
SET CONFIRM Conmutar el requerido de tecla para terminar el GET
SET CONSOLE Conmutar la visualización en la pantalla
SET CURSOR Activar y desactivar el cursor de la pantalla
SET DATE Fijar el formato de fecha para su entrada
SET DECIMALS Fijar el número de decimales visualizados
SET DEFAULT Determinar la unidad y directorio de Clipper
SET DELETED Conmutar el filtro de registros para ser borrados
SET DELIMITERS Conmutar o definir los delimitadores de los GETs
SET DEVICE Dirigir los @...SAY a la pantalla o impresora
SET EPOCH Controlar la interpretación de fechas
SET ESCAPE Conmutar el uso de Esc para terminar un READ
SET EXACT* Conmutar la comparación exacta de cadenas
SET EXCLUSIVE* Establecer el uso compartido o exclusivo de un .dbf
SET FILTER Ocultar los registros que no cumplen una condición
SET FIXED Conmutar si se fija el número de decimales
SET FORMAT* Activar un formato cuando se ejecuta READ
SET FUNCTION Asignar una cadena a una tecla de función
SET INDEX Abrir archivos índice en el área de trabajo actual
SET INTENSITY Conmutar la visualización realzada de GETs y PROMPT
SET KEY Asignar la invocación de procedimiento a una tecla
SET MARGIN Fijar el margen izquierdo de salidas de impresora
SET MESSAGE Fijar la fila para los mensajes de @...PROMPT
SET ORDER Fijar un nuevo índice de control
SET PATH Especificar la ruta de búsqueda para abrir archivos
SET PRINTER Conmutar el reenvío de salidas a la impresora
SET PROCEDURE* Compilar procedimientos y funciones en un archivo
SET RELATION Relacionar dos áreas de trabajo con una expresión
SET SCOREBOARD Conmutar la visualización de mensajes de READ
SET SOFTSEEK Conmutar la búsqueda (SEEK) relativa
SET TYPEAHEAD Fijar el tamaño del buffer del teclado
SET UNIQUE* Conmutar la inclusión de claves no exclusivas
SET WRAP Conmutar el desplazamiento circular en el MENU
??? Visualizar uno o mas valores en la consola
@...BOX Dibujar un cuadro en la pantalla
@...CLEAR Borrar una región rectangular de la pantalla
@...GET Crear un objeto GET y visualizarlo en la pantalla
@...PROMPT Visualizar una línea de menú y definir un mensaje
@...SAY Visualizar datos en la fila y columna especificada
@...TO Dibujar cuadros de una línea o de líneas dobles
ACCEPT Colocar la entrada del teclado en una variable
APPEND BLANK Agregar un nuevo registro al archivo (.dbf) actual
APPEND FROM Importar registros de un archivo (.dbf) o ASCII
AVERAGE Calcular el promedio de expresiones numéricas
CALL* Ejecutar un proceso en C o ensamblador
CANCEL* Terminar el procesamiento del programa
CLEAR ALL* Cerrar los archivos y poner a disposición variables
CLEAR GETS Descarta todas los objetos GET de la matriz GetList
CLEAR MEMORY Descartar todas las variables públicas y privadas
CLEAR SCREEN Borrar la pantalla y regresar el cursor
CLEAR TYPEAHEAD Vaciar la memoria intermedia del teclado
CLOSE Cerrar un conjunto específico de archivos
COMMIT Realizar una grabación para las áreas de trabajo
CONTINUE Reanudar una búsqueda (LOCATE) pendiente
COPY FILE Copiar un archivo a un nuevo archivo
COPY STRUCTURE Copiar la estructura de un archivo .dbf a otro .dbf
COPY STRUCTURE EXTENDED Copiar las definiciones de campos a un archivo .dbf
COPY TO Exportar registros a un nuevo archivo .dbf o ASCII
COUNT Contar registros y asignar el resultado
CREATE Crear un archivo .dbf de estructura ampliada vacío
CREATE FROM Crear un archivo .dbf de una estructura ampliada
DELETE Marcar registros para su eliminación
DELETE FILE Borrar un archivo del disco
DIR* Visualizar una lista de archivos de una ruta
DISPLAY Visualizar registros en la consola
EJECT Avanzar el cabezal al principio de una nueva página
ERASE Borrar un archivo del disco
FIND* Buscar en un índice una clave especificada
GO Mover el puntero a un registro específico
INDEX Crear un archivo índice
INPUT Asignar el resultado de la expresión a una variable
JOIN Crear un archivo uniendo archivos de dos áreas
KEYBOARD Rellenar el buffer del teclado con una cadena
LABEL FORM Visualizar etiquetas en la consola
LIST Visualizar una lista de registros en la consola
LOCATE Buscar un registro que cumple una condición
MENU TO Ejecutar un menú de barras luminosas para avisos
NOTE* Colocar un comentario de una línea en un programa
PACK Eliminar los registros marcados para ser borrados
QUIT Terminar el procesamiento del programa
READ Activar la modalidad de edición usando objetos GET
RECALL Reintegrar los registros marcados para ser borrados
REINDEX Reconstruir índices abiertos en un área de trabajo
RELEASE Eliminar variables de memoria públicas y privadas
RENAME Cambiar el nombre de un archivo
REPLACE Asignar nuevos valores a variables de campo
REPORT FORM Visualizar un informe en la consola
RESTORE Restaurar variables de un archivo de memoria (.mem)
RESTORE SCREEN* Visualizar una pantalla salvada
RUN Ejecutar un comando o programa de DOS
SAVE Salvar variables en un archivo de memoria (.mem)
SAVE SCREEN* Salvar la pantalla actual en un buffer o variable
SEEK Buscar en un índice el valor clave especificado
SELECT Cambiar el área de trabajo en curso
SKIP Colocar el puntero en una nueva posición
SORT Copiar a un archivo (.dbf) en orden clasificado
STORE* Asignar un valor a una o más variables
SUM Sumar expresiones numéricas a variables
TEXT* Visualizar un bloque literal de texto
TOTAL Resumir registros, de acuerdo con su valor clave
TYPE Visualizar el contenido de un archivo de texto
UNLOCK Desbloquear los archivos/registros bloqueados
UPDATE Actualizar un archivo .dbf a partir de otro archivo
USE Abrir un archivo existente y sus archivos asociados
WAIT* Suspender ejecución de un programa
ZAP Retirar todos los registros del archivo .dbf actual

martes, 21 de abril de 2009

Introduccion

Bienvenidos CLIPPERIANOS o CLIPPEROS a este su blog de programacion, donde el objetivo sera alcanzar a REPROGRAMAR de un manera eficaz los programas creados en DOS hacia el ambiente grafico del sistema operativo sea Windows o Linux. Claro partiremos desde cero a paso rapido hasta llegar a donde creamos sea la parte media o que tenga algo de complicado, lo veremos en el camino.

Sabemos de antemano que estos programas creados en nuestro queridisimo CLIPPER tienen un futuro incierto, aunque cabe mencionar que existen librerias creadas para este, que extraen las funciones del ambiente grafico para asi "Simularlos" por asi decirlo de alguna manera. Ya que las funciones del manejo de las bases de datos y de los drivers de los indices .NTX o .CDX funcionen igual.

Pero bueno..aun existen muchos miles de programas que entan funcionando en en entorno DOS, aunque la tecnologia del hardware haya avanzado enormidades y en muchos casos se presentan errores de ejecucion. Por ejemplo pasando de W98 hacia XP. la apertura de archivos, si el programa rebasa los 640 de RAM, UUUfff...y muchos ..muchos otros.

Veremos si hay oportunidad de resolver algunos problemas que los lectores puedan tener, claro y de igualmanera exponer respuestas lo mas simplificadamente posible, pero esto a medida que se vaya avanzado a paso firme.

Ojala y con el tiempo este blog podamos hacelo comuna y que sirva para todos los que amamos a este lenguaje.

gracias

jueves, 16 de abril de 2009

PROGRAMACION CLIPPER (DE DOS A MINIGUI)

Antecedentes


Programacion


De clipper a MINIGUI



MINIGUI(Roberto Lopez)