cambiar store a to b por b:=a
28/08/2010
En estos dias el trabajo se ha reducido a cambiar algunas cosas de
forma mas que de fondo.
1. Cambie la forma STORE a to b, por b:=a que me parece mas acorde
a las formas mas estandar tipo java y C
2. Cambie la if (a = b) por if (a == b)
3. He cambiado el nombre de las variables del tipo Mis_Variable a miVariable
esto me ha ocacionado algunos problemas, pues el modelo de
programas que tenia implementado usa algunas variableas que son
publicas al cambiar el nombre en algunas partes ya no las encuentra
causando errores
4. Estoy cualifificando el uso de las variables asociadas a Tablas
pues uso indistintametne variables del sistema con las de tablas
lo que a veces crea confusion al leer el codigo
de forma indistinta usaba mayusculs y minisculas para referirme
a estas variable definid que las variables de tablas las escribo
todas en mayusculas asociadas a la tabla a la que pertenecen asi
CLAVE -> nombre :: CLAVE -> NOMBRE
5. empleo el use de las tablas con minisculas y el alias con
mayusculas
antes:
select 1
use CLAVES alias claves
ahora
select 1
use claves alias CLAVES
como lo exprese al principio de este documento me estaba
presentando muchos problemas para encontrar las tablas en la forma
anterior, entones las cambie por minusculas y resolvi el problema
al quedar la tabla nombrada en mayusculas pense, que el cualificador
deberia tambien quedar todo mayusculas como lo anuncie en el paso 4.
6 el general he ido camboando los nombre de los comandos a minusculas
solas:
antes:
Do While .T.
EndDo
actual:
do while .T.
enddo
7. Empece a cambiar el proceso de documentacion informal que tenia
del tipo XBase por uno mas standar tipo Doxygen
antes:
***************************************
* Este es un comentario del programa *
* Carlos Arturo castano *
* 28/08/2010 *
* XMes = Guarda el mes de trabajo *
* retorna el Saldo de las transacion /
***************************************
actual
/**
Este es un comentrio del programa
@author Carlos Arturo Castano
@date 28/08/2010
@param xMes Guarda el mes de trabajo
@return saldo retorna el valor de la transacion
*/
8. He ido cambiando
antes:
procedure CalcularSaldo
parameters XMes
.
.
.
return
actual:
FUNCTION CalcularSaldo(xMes)
.
.
.
RETURN xMes
Con esto defino el llamado a las funciones definidas por mi
se inician con mayuscula a diferencia de las definidas por el
sistema que la invoco todas minusculas.
9. Cambia la asignacion de las variables cadena largas
antes:
STORE "Esta es una cadena" to textoTmp
STORE textoTmp + "muy larga" to textoTmp
actual
textoTmp := "Esta es una cadena"
textoTmp += "muy larga"
los mensajes en general empiezan con mayusculas todo el el resto
del texto esta en minusulas salvo que se presente un punto y
aparte.
10. Todos los mensajes en cadena, estan precidos por la funcion Tr()
que aunque aun n la tengo definida tiene como objeto hacer la
traduccion a los distintos lenguajes español, ingles, portugues.
Implemene un capturdador de error , intente usar el Try ... catch
pero en harbour no existe, aqui se hace con el bloque errorBlock()
y las instrucciones BEGIN SEQUENCE , RECOVE , ENDSEQUENCE
ejemplo como quedo la inicializacion de tablas del sistema
FUNCTION Inicio()
bError := errorBlock( { |e| Break(e)} )
BEGIN SEQUENCE
select 1
use &xMov index &xIndi1,&xIndi2,&xIndi3,&xIndi4 alias MOVIMIENTO
select 2
use &XCuenta index &XCue_Cue alias CUENTAS
select 3
use fuentes index ftes_cod alias FUENTES
select 4
use nit index nit_nit,nit_nom alias NIT
select 5
use costos index cost_cod alias COSTOS
select 6
use auditor alias AUDITOR
select 7
use auditorm alias AUDITORM
select 8
use &XPresupu index &XPre_Cue alias PRESUPUE
RECOVER
textoTmp := Tr("Indices perdidos") + "
"
textoTmp += Tr("integridad del sistema") + "
"
textoTmp += Tr("va tratar de recuperalos")
ms:= MsgInfo(textoTmp,MSG_CRITICO)
integrid()
ENDSEQUENCE
RETURN NIL
Trate de encontrar que era lo que genera el error, a la salida
del programa:
Exception SIGSEGV at address 0x8
Encontre una referencia muy completa en internet donde aclaran
que este tipo de error se presenta en Linux, por mal uso de la
memoria por parte Qt, se puede corregir a costa de recompilar las
librerias Qt , con una opcion que deja por fuera las bondades de
algunas librerias y funciones graficas. pienso que para mi por lo
menos de momento no es muy importante lo unico molesto en el fondo
es que va llenando la carpeta de operacion, de archivos CORE DUMP
con nombre aleatorios, de momento lo unico que hecho con esto
es tratar de capturarlos a la salida de errores con
konta.out 2>cac.log
Aunque limpia y lleva el contenido a ca.log , aun genera un archivo
CORE DUMP vacio.
Es un problema porque llena la carpeta de basura y no he encontrada
la forma de redirigirlos a un lugar donde se puedan borrar sin ningun
problema, queda esta tarea pendiente.
En estos dias el trabajo se ha reducido a cambiar algunas cosas de
forma mas que de fondo.
1. Cambie la forma STORE a to b, por b:=a que me parece mas acorde
a las formas mas estandar tipo java y C
2. Cambie la if (a = b) por if (a == b)
3. He cambiado el nombre de las variables del tipo Mis_Variable a miVariable
esto me ha ocacionado algunos problemas, pues el modelo de
programas que tenia implementado usa algunas variableas que son
publicas al cambiar el nombre en algunas partes ya no las encuentra
causando errores
4. Estoy cualifificando el uso de las variables asociadas a Tablas
pues uso indistintametne variables del sistema con las de tablas
lo que a veces crea confusion al leer el codigo
de forma indistinta usaba mayusculs y minisculas para referirme
a estas variable definid que las variables de tablas las escribo
todas en mayusculas asociadas a la tabla a la que pertenecen asi
CLAVE -> nombre :: CLAVE -> NOMBRE
5. empleo el use de las tablas con minisculas y el alias con
mayusculas
antes:
select 1
use CLAVES alias claves
ahora
select 1
use claves alias CLAVES
como lo exprese al principio de este documento me estaba
presentando muchos problemas para encontrar las tablas en la forma
anterior, entones las cambie por minusculas y resolvi el problema
al quedar la tabla nombrada en mayusculas pense, que el cualificador
deberia tambien quedar todo mayusculas como lo anuncie en el paso 4.
6 el general he ido camboando los nombre de los comandos a minusculas
solas:
antes:
Do While .T.
EndDo
actual:
do while .T.
enddo
7. Empece a cambiar el proceso de documentacion informal que tenia
del tipo XBase por uno mas standar tipo Doxygen
antes:
***************************************
* Este es un comentario del programa *
* Carlos Arturo castano *
* 28/08/2010 *
* XMes = Guarda el mes de trabajo *
* retorna el Saldo de las transacion /
***************************************
actual
/**
Este es un comentrio del programa
@author Carlos Arturo Castano
@date 28/08/2010
@param xMes Guarda el mes de trabajo
@return saldo retorna el valor de la transacion
*/
8. He ido cambiando
antes:
procedure CalcularSaldo
parameters XMes
.
.
.
return
actual:
FUNCTION CalcularSaldo(xMes)
.
.
.
RETURN xMes
Con esto defino el llamado a las funciones definidas por mi
se inician con mayuscula a diferencia de las definidas por el
sistema que la invoco todas minusculas.
9. Cambia la asignacion de las variables cadena largas
antes:
STORE "Esta es una cadena" to textoTmp
STORE textoTmp + "muy larga" to textoTmp
actual
textoTmp := "Esta es una cadena"
textoTmp += "muy larga"
los mensajes en general empiezan con mayusculas todo el el resto
del texto esta en minusulas salvo que se presente un punto y
aparte.
10. Todos los mensajes en cadena, estan precidos por la funcion Tr()
que aunque aun n la tengo definida tiene como objeto hacer la
traduccion a los distintos lenguajes español, ingles, portugues.
Implemene un capturdador de error , intente usar el Try ... catch
pero en harbour no existe, aqui se hace con el bloque errorBlock()
y las instrucciones BEGIN SEQUENCE , RECOVE , ENDSEQUENCE
ejemplo como quedo la inicializacion de tablas del sistema
FUNCTION Inicio()
bError := errorBlock( { |e| Break(e)} )
BEGIN SEQUENCE
select 1
use &xMov index &xIndi1,&xIndi2,&xIndi3,&xIndi4 alias MOVIMIENTO
select 2
use &XCuenta index &XCue_Cue alias CUENTAS
select 3
use fuentes index ftes_cod alias FUENTES
select 4
use nit index nit_nit,nit_nom alias NIT
select 5
use costos index cost_cod alias COSTOS
select 6
use auditor alias AUDITOR
select 7
use auditorm alias AUDITORM
select 8
use &XPresupu index &XPre_Cue alias PRESUPUE
RECOVER
textoTmp := Tr("Indices perdidos") + "
"
textoTmp += Tr("integridad del sistema") + "
"
textoTmp += Tr("va tratar de recuperalos")
ms:= MsgInfo(textoTmp,MSG_CRITICO)
integrid()
ENDSEQUENCE
RETURN NIL
Trate de encontrar que era lo que genera el error, a la salida
del programa:
Exception SIGSEGV at address 0x8
Encontre una referencia muy completa en internet donde aclaran
que este tipo de error se presenta en Linux, por mal uso de la
memoria por parte Qt, se puede corregir a costa de recompilar las
librerias Qt , con una opcion que deja por fuera las bondades de
algunas librerias y funciones graficas. pienso que para mi por lo
menos de momento no es muy importante lo unico molesto en el fondo
es que va llenando la carpeta de operacion, de archivos CORE DUMP
con nombre aleatorios, de momento lo unico que hecho con esto
es tratar de capturarlos a la salida de errores con
konta.out 2>cac.log
Aunque limpia y lleva el contenido a ca.log , aun genera un archivo
CORE DUMP vacio.
Es un problema porque llena la carpeta de basura y no he encontrada
la forma de redirigirlos a un lugar donde se puedan borrar sin ningun
problema, queda esta tarea pendiente.
Comentarios
Publicar un comentario