FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour FICHEROS .MEM
Posts: 196
Joined: Tue Jul 01, 2008 06:34 PM
FICHEROS .MEM
Posted: Tue Oct 13, 2009 02:56 PM
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
Posts: 400
Joined: Tue Oct 16, 2007 05:51 PM
Re: FICHEROS .MEM
Posted: Wed Oct 14, 2009 02:52 AM
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...

:-)
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
Posts: 196
Joined: Tue Jul 01, 2008 06:34 PM
Re: FICHEROS .MEM
Posted: Sat Oct 17, 2009 04:03 AM

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
Posts: 400
Joined: Tue Oct 16, 2007 05:51 PM
Re: FICHEROS .MEM
Posted: Tue Oct 20, 2009 03:07 PM
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
Posts: 299
Joined: Mon Oct 22, 2007 03:03 PM
Re: FICHEROS .MEM
Posted: Tue Oct 20, 2009 03:11 PM

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

Continue the discussion