La Web del Programador: Comunidad de Programadores
 
    Pregunta:  244 - ARCHIVOS .CH
Autor:  Cristian
Disculpen si la pregunta es un poco tonta pero soy principiante en clipper y todavia no entiendo muchas cosas de este lenguaje, y una de ellas es para que son los archivos *.ch todavia no lo entiendo, ojala tengan paciencia conmigo y me puedan ayudar a integrarme a este lenguaje. Gracias

  Respuesta:  Juan Reyes
Crea un archivo llamado MisDef.Ch que contenga :
#Define ID_COPYRIGHT "Juan Reyes 1998"
#Define ID_VERSION "2.3.1"
#Define PRIMERO 1
#Define SEGUNDO 2
Crea un .PRG llamado Menu.Prg y coloca :
#Include "MisDef.Ch"

FUNCTION Main()
..... @ 10, 10 SAY "Sistema desarrollado por " + ID_COPYRIGHT + " Versión : " + ID_VERSION
RETURN ( NIL )

Con esto cada vez que clipper encuentre ID_VERSION te la reemplazara por "2.3.1"

Crea un programa llamado menu2.prg y coloca :

#Include "MisDef.Ch"
FUNCTION Main()
Local aDato := { 10, 20 } // Arreglo de dos posiciones e inicializado con un 10 en la primera posición y un 20 en la segunda posición.

@ 10, 10 SAY aDato[ PRIMERO ] // Aqui PRIMERO será reemplazado por el número 1
@ 11, 10 SAY aDato[ SEGUNDO ] // y SEGUNDO se reemplazara por el número 2

RETURN ( NIL )

Los .Ch tambien se utilizan para crear comandos pero eso ya es muy avanzado, empieza practicando, creando tus propios .CH.
Chao amigo, :-) Juan Reyes

  Respuesta:  Gerardo A. Mendoza
Hola Camarada:
A cerca de tu duda sobre los archivos .CH míralos como facilidades para hacer tus programas más potentes. Estos archivos son como de "sustitución" en tus programas, con lo cual puedes hacer más fáciles tus programas para darles mantenimiento, para hacerlos a tus gustos.
Por ejemplo, el famoso Impuesto sobre el Valor Agregado (IVA), que en México es el 15% del Subtotal de una cantidad. Si codificas varias líneas (10 por ejemplo) en un sistema como la que sigue:
nImp_IVA := Importe * 0.15
cuando cambie el porcentaje a 10%, supon; tendrás que buscar en todos tus programas esta línea, ... PERO ...Si codifcas un archivo .CH
CONSTANT.CH
#define IVA 0.15
y en tus programas
Programa.prg
#include "constant.ch"
..
nImp_IVA := nImporte * IVA
cuando cambie el porcentaje del iva SOLO modificas CONSTANT.CH
#define IVA 0.10
recompilas y no tienes que preocuparte de nada más.

Utiliza mayúsculas para tus constantes.

Compilas tus programas con el modificador /P y revisa el archivo .PPO que produce para que compares el contednido de éste con tu original (.PRG)

En lo que pueda sequir ayudándote, no lo dudes.:-)