STRZERO

Post Reply
User avatar
Andrés González
Posts: 625
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

STRZERO

Post by Andrés González »

Que puede estar ocurriendo para que me falle, precisamente la funcion STRZERO, parece como si no la tubiera FWH25.

Code: Select all

FUNC CTRComunicados()
LOCAL nSelect  := Select(),  nOrden   := IndexOrd()

Select(60)
USE S:COMUNICA SHARED
SET INDEX TO S:COFECHAO, S:CONUMOR, S:COFECHOR

  APPEND BLANK
  IF !NETERR()
	REPLACE CNUMOR   WITH SUBSTR(STRZERO(RECNO()),-6) <<<<<<Aqui es donde falla.
	REPLACE CFECHA   WITH CTR->FECHA
	REPLACE CCODINT  WITH "SC004"
     	REPLACE CDESC    WITH alltrim(PAP->ACTIVIDAD) + " OS. Nº "+ CTR->EXPED+ ", DIST.: " +alltrim(CTR->DISTINTIVO)+", DURACION: "+(CTR->HORAS)+". DENUNCIAS: TRAF.: " +STR(CTR->DENTRAF)+ ", OOMM.: "+ STR(CTR->DENCOR)+", INDENTIF.:"+ STR(CTR->IDENTIF)+ ", VEHICULOS: " + STR(CTR->VEHICULOS)
    	REPLACE CHORA    WITH VAL(SUBSTR(CTR->HINI,1,2))
    	REPLACE CMINU    WITH VAL(SUBSTR(CTR->HINI,4,2))
     	REPLACE CZONA    WITH VAL(PAP->ZONA)
    	REPLACE CSECT    WITH PAP->SECTOR
    	REPLACE CCALLE   WITH VAL(PAP->CALLE)
	REPLACE CNUMER   WITH ""
    	REPLACE CTEXTO   WITH ""
    	REPLACE CLISTA   WITH 0
    	REPLACE CUSUARIO WITH x_user

		dBCommit()
  ENDIF

dBClosearea()
dBselectar(nSelect)
dBsetorder(nOrden)

RETURN  .T.
Si en vez de strzero pongo solo str no me da error, pero claro el indice queda feo.
Si pongo ? STRZERO(Recno()) Falla, pero si pongo ? STR(RECNO()) no falla.

Debo de enlazar algun módulo especifico para que me cargue esa función.
Saludos

Andrés González desde Mallorca
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Andrés,

La función StrZero() no es de FWH, sino de Harbour/xHarbour.

Prueba a hacer: MsgInfo( StrZero( 123 ) )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Andrés González
Posts: 625
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Post by Andrés González »

Antonio se puede variar las condiciones de STRZERO desde el compilador, te lo digo pues ahora esto no me funciona (antes sí):

SUBSTR(STRZERO(RECNO()),-6)

Pero encambio si incluyo un segundo parametro en el strzero si funciona:

STRZERO(RECNO(), 6)

Todo el programa me falla por esta funcion, a raiz de una rotura del disco duro, en el que he tenido que volver a montarlo todo de nuevo. La primera instruccion es logica que funcione bien, primero añado ceros a la izquierda del numero hasta completar la longitud total del campo y luego hago el substr de lo que a mi me interesa.

Como el STRZERO no esta documentada ni en clipper, yo no sabia que se podia incluir el segundo parametro.

NOTA: Aunque pensandolo bien mas vale hacer la segunda instruccion que no la primera.
Last edited by Andrés González on Tue Oct 23, 2007 8:02 am, edited 1 time in total.
Saludos

Andrés González desde Mallorca
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Andrés,

Has actualizado la versión que usas de xHarbour ?

De ser así podrías reemplazar en RTL.LIB strzero.obj por el antiguo que usabas
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Andrés González
Posts: 625
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Post by Andrés González »

Utilizo FWH25 + Harbour25, y no he recompilado nada. Solo he vuelto ha montar el link de compilacion con AJMAKE. Ahora funciona bien pero solo incluyendo el segundo parametro, por eso era la pregunta si se podia cambiar la actuacion de esa funcion desde compilación.

De todas formas ahora variando la funcion y poniendo en segundo parametro funciona bien y como seguro que no encuentro la razon porque me ha pasado esto, lo voy a dejar de momento.

Gracias.
Saludos

Andrés González desde Mallorca
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Andrés,

Bueno, lo importante es que te esté funcionando :-)

Las funciones de la RTL (run time library) de Harbour no se pueden cambiar en tiempo de ejecución (bueno, existen algunas "maneras"), solo en tiempo de enlazado, habiendo modificado la librería previamente.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Andrés González
Posts: 625
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Post by Andrés González »

Gacias Antonio. De esta manera funciona igual y hace menos procesos de maquina.
Saludos

Andrés González desde Mallorca
User avatar
ADBLANCO
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Post by ADBLANCO »

prueba con STRZERO(PAB->(RECNO()))
User avatar
ADBLANCO
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Post by ADBLANCO »

PERDON: PRUEBAB CON STRZERO(COMUNICA->(RECNO()))
User avatar
ronaldo
Posts: 137
Joined: Fri Nov 25, 2005 4:38 pm
Location: brasil
Contact:

Post by ronaldo »

voicê precisa informar o tamanho para a strzero(nro, tamanho), ou então use simplesmente o str()
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Post by joseluisysturiz »

Uso es funcion pero de la siguiente manera: strzero(var,n), donde n es el tamaño de la variables que normalmente contiene solo numeros, ya sea de tipo numerico o de tipo char... o deberias de invertir las funciones...
Dios no está muerto...

Gracias a mi Dios ante todo!
Post Reply