STRZERO

STRZERO

Postby Andrés González » Tue Oct 23, 2007 7:02 am

Que puede estar ocurriendo para que me falle, precisamente la funcion STRZERO, parece como si no la tubiera FWH25.
Code: Select all  Expand view
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
Andrés González
 
Posts: 628
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Postby Antonio Linares » Tue Oct 23, 2007 7: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
User avatar
Antonio Linares
Site Admin
 
Posts: 41949
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Andrés González » Tue Oct 23, 2007 7: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.
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
Andrés González
 
Posts: 628
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Postby Antonio Linares » Tue Oct 23, 2007 8: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
User avatar
Antonio Linares
Site Admin
 
Posts: 41949
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Andrés González » Tue Oct 23, 2007 8: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
User avatar
Andrés González
 
Posts: 628
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Postby Antonio Linares » Tue Oct 23, 2007 8: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
User avatar
Antonio Linares
Site Admin
 
Posts: 41949
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Andrés González » 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
User avatar
Andrés González
 
Posts: 628
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Postby ADBLANCO » Tue Oct 23, 2007 12:29 pm

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

Postby ADBLANCO » Tue Oct 23, 2007 12:33 pm

PERDON: PRUEBAB CON STRZERO(COMUNICA->(RECNO()))
User avatar
ADBLANCO
 
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Postby ronaldo » Tue Oct 23, 2007 12:53 pm

voicê precisa informar o tamanho para a strzero(nro, tamanho), ou então use simplesmente o str()
User avatar
ronaldo
 
Posts: 139
Joined: Fri Nov 25, 2005 4:38 pm
Location: brasil

Postby joseluisysturiz » Wed Oct 24, 2007 6: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!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: gmart1 and 88 guests