FICHEROS .MEM

Post Reply
User avatar
LuisPonce
Posts: 190
Joined: Tue Jul 01, 2008 6:34 pm
Location: PERU
Contact:

FICHEROS .MEM

Post by LuisPonce »

Hola Antonio

Estoy pasando a xHarbour, y tengo un problema al abrir un VARIABLES.MEM, en este file guardo las variables que contienen los nombre y de las tablas FIL01:="CLIENTES", fil02:="ARTICULOS".....

Entonces cuando al momento de hacer el RESTORE FROM VARIABLES me da el siguiente error :

Restore failed, unsupported type: 65475 for: 'FIL01'

Maestro Antonio podria ayudarme ? o existe alguna otra funcion que realice este proceso, o es mejor usar un fichero .INI, cuales seria las implicancias en cuanto a Memoria

Gracias
Luis Ponce
User avatar
albeiroval
Posts: 323
Joined: Tue Oct 16, 2007 5:51 pm
Location: Barquisimeto - Venezuela

Re: FICHEROS .MEM

Post by albeiroval »

Luis,

Mejor usa un archivo INI...

Asi no dependeras de la aplicacion y podras cambiar las variables
en el momento que deses sin tener que cambiar el codigo fuente...

Usa las siguientes funciones de xHarbour...

Dir_Aplicacion = "C:\Cualquier_carpeta"
cFileIni = "cualquier_nombre.ini"

IF File( Dir_Aplicacion + cFileIni )
hIniData := HB_ReadIni( Dir_Aplicacion + cFileIni )
IF Valtype( hIniData["MAIN"] ) == "H"
Variable ..1 = hIniData["MAIN"]["Variable..1"]
.....
ENDIF
ELSE
hIni := Hash()
hIni["MAIN"] := Hash()
hIni["MAIN"]["Variable..1"] := "Asignas el valor que le quieras dar"
HB_WriteIni( Dir_Aplicacion + cFileIni, hIni, "; Inicio de Archivo", "; Final de Archivo" )
ENDIF


Espero Te siva...

:idea:
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
User avatar
LuisPonce
Posts: 190
Joined: Tue Jul 01, 2008 6:34 pm
Location: PERU
Contact:

Re: FICHEROS .MEM

Post by LuisPonce »

Gracias Albeiro

Ya hice un .ini para mi aplicacion, mo me quedaba otra, pero tengo una duda :

Solia guardar en variables los nombres de mis tablas, FIL01:="ARCHIVO1",FIL02:="ARCHIVO2" y si es un terminal, apuntar a la ruta del servidor FIL01:=cRuta+"\ARCHIVO1" y estas variables deben estar disponibles en toda la aplicacion, entonces debo pornerlas como publicas, entonces me parece un escandalo tener mas de 60 variables como PUBLIC, es esto admisible ? estoy con el temor que en cualquier momento la aplicacion colapse.

DONDE ENCUENTRO ESAS FUNCIONES HB_......

Gracias por tu respuesta
Luis Ponce
User avatar
albeiroval
Posts: 323
Joined: Tue Oct 16, 2007 5:51 pm
Location: Barquisimeto - Venezuela

Re: FICHEROS .MEM

Post by albeiroval »

Luis,

Yo uso una array para todas las variables en mis aplicaciones,

ARCHIVO DE CABECERA <CH>
// Array de Variables
MEMVAR aVarPublics

// Definicion de Variables
#define VARIABLE...1 aVarPublics[ 1 ]
#define VARIABLE...2 aVarPublics[ 2 ]
.......
#define VARIABLE...n aVarPublics[ n ]

......
#define LEN_AVARS <Numero de variables>

EN LA APLICACION :

aVarPublics = ARRAY( LEN_AVARS )

LUEGO LEES EL ARCHIVO INI Y ASIGNAS LAS VARIABLES

VARIABLE...1 := hIniData["MAIN"]["Variable...1"]
......

ALLI ESTAS USANDO SOLO UN APUNTADOR A UN ARRAY QUE CRECERA
DE ACUERDO AL NUMERO DE VARIABLES QUE ASIGNES...

OTRA OPCION ES USAR LA CLASE "TPUBLIC" QUE HACE ALGUN TIEMPO VI EN EL FORO...

SOBRE LAS FUNCIONES HB_XXXX ... SI ES EL CODIGO EL QUE NECESITAS .. NO
SE SI ESTE EN LAS CONTRIB DE XHARBOUR...

Espero te sirva,

Saludos,
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
User avatar
ADBLANCO
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Re: FICHEROS .MEM

Post by ADBLANCO »

Aunque no es recomendable, Te aseguro que si lo soporta,
De todas formas, Defínelas como MEMVAR en un archivo .ch para que no tengas que definirlas en todos los prg (Basta con un #INCLUDE)
Saludos

Angel, Valencia, Venezuela

xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Post Reply