FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour STRZERO
Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
STRZERO
Posted: Tue Oct 23, 2007 07:02 AM
Que puede estar ocurriendo para que me falle, precisamente la funcion STRZERO, parece como si no la tubiera FWH25.
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
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
STRZERO
Posted: Tue Oct 23, 2007 07:20 AM

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
Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
STRZERO
Posted: Tue Oct 23, 2007 07:41 AM

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.

Saludos



Andrés González desde Mallorca
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
STRZERO
Posted: Tue Oct 23, 2007 08:00 AM

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
Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
STRZERO
Posted: Tue Oct 23, 2007 08:08 AM

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
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
STRZERO
Posted: Tue Oct 23, 2007 08:28 AM

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
Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
STRZERO
Posted: Tue Oct 23, 2007 11:57 AM

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

Saludos



Andrés González desde Mallorca
Posts: 299
Joined: Mon Oct 22, 2007 03:03 PM
STRZERO
Posted: Tue Oct 23, 2007 12:29 PM

prueba con STRZERO(PAB->(RECNO()))

Saludos



Angel, Valencia, Venezuela



xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Posts: 299
Joined: Mon Oct 22, 2007 03:03 PM
STRZERO
Posted: Tue Oct 23, 2007 12:33 PM

PERDON: PRUEBAB CON STRZERO(COMUNICA->(RECNO()))

Saludos



Angel, Valencia, Venezuela



xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Posts: 139
Joined: Fri Nov 25, 2005 04:38 PM
STRZERO
Posted: Tue Oct 23, 2007 12:53 PM

voicê precisa informar o tamanho para a strzero(nro, tamanho), ou então use simplesmente o str()

Ronaldo Minacapelli
Sistemas, Hospedagem e Criação de WebSites
http://www.bazevani.com.br
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
STRZERO
Posted: Wed Oct 24, 2007 06:51 AM

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!

Continue the discussion