De 123456 a 0000012345 con Transform()
De 123456 a 0000012345 con Transform()
Hola a todos,
Debo estar un poco espeso.
Si tengo nMivalor := 12345
con Transfrom( nMiValor, "@Z 9999999999" ), no debería obtener 0000012345 ?
No sé que hago mal.
¿Cómo se hace?
Muchas gracias.
Debo estar un poco espeso.
Si tengo nMivalor := 12345
con Transfrom( nMiValor, "@Z 9999999999" ), no debería obtener 0000012345 ?
No sé que hago mal.
¿Cómo se hace?
Muchas gracias.
Un Saludo
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Re: De 123456 a 0000012345 con Transform()
Code: Select all | Expand
#include "FiveWin.ch"
FUNCTION Main()
LOCAL nMivalor := 12345
? STRZERO( nMivalor, 12, 2 )
RETURN NIL
// FIN / END
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: De 123456 a 0000012345 con Transform()
OR,
Regards, saludos.
Code: Select all | Expand
? XPADL( ALLTRIM( STRZERO( nMiValor,12,0 ) ), 12 )
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: De 123456 a 0000012345 con Transform()
Carlos:
El picture "@Z" precisamente elimina los ceros a la izquierda, si quieres que se muestren
utiliza la función StrZero().
Saludos
El picture "@Z" precisamente elimina los ceros a la izquierda, si quieres que se muestren
utiliza la función StrZero().
Saludos
FiveWiDi wrote:Hola a todos,
Debo estar un poco espeso.
Si tengo nMivalor := 12345
con Transfrom( nMiValor, "@Z 9999999999" ), no debería obtener 0000012345 ?
No sé que hago mal.
¿Cómo se hace?
Muchas gracias.
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Re: De 123456 a 0000012345 con Transform()
Creo que lo voy a resolver así:
En el código donde tengo Transform() pondré Mi_Transform() modificando el PICTURE.
Evidentemente no es perfecta, pero me servirá.
Y ya está, chimpum.
Muchas gracias a todos
Code: Select all | Expand
// Permite indicar como PICTURE "@E 999,999,999.99", "PZ@E 999,999,999.99", "PZ999999", etc.
// 27/09/2024
FUNCTION Mi_Transform( nValue, cPicture )
Local cString := ""
Local lPutZeros := .F.
If At( "PZ", cPicture ) = 1
cPicture := SubStr( cPicture, 3 )
lPutZeros := .T.
EndIf
cString := Transform( nValue, cPicture )
If lPutZeros
cString := StrTran( cString, " ", "0" )
EndIf
Return cString
/* *********************************************************************************** */
Evidentemente no es perfecta, pero me servirá.
Y ya está, chimpum.
Muchas gracias a todos
Un Saludo
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Re: De 123456 a 0000012345 con Transform()
Amigo Carlos:
Algo más simple
Donde: 12500.10 es el valor y 12,2 determina los enteros y decimales
Saludos
Algo más simple
Code: Select all | Expand
? "PZ" + StrZero(12500.10,12,2)
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Re: De 123456 a 0000012345 con Transform()
Gracias Armando,Armando wrote:Amigo Carlos:
Algo más simple
Donde: 12500.10 es el valor y 12,2 determina los enteros y decimalesCode: Select all | Expand
? "PZ" + StrZero(12500.10,12,2)
Saludos
Pero no es eso.
Lo que persigo es que con un TransForm() (o algo parecido) pueda generar una respuesta de este tipo: '000025'.
Utilizo TransForm() en una rutina que recibe campos de diferentes DBF (indicados en un fichero TXT) y si son del tipo "N" automáticamente aplico TransForm() con un PICTURE que también se indica en ese TXT; por tanto no puedo discernir si al campo recibido del tipo "N" le debo aplicar TransForm() o las otras soluciones que me proponéis.
Es mucho más fácil 'crear' un nuevo PICTURE (PZloquesea) y que Mi_Transform() lo gestione y que acepte también los propios de Transfrom().
Gracias de nuevo.
Un Saludo
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
- carlos vargas
- Posts: 1721
- Joined: Tue Oct 11, 2005 5:01 pm
- Location: Nicaragua
Re: De 123456 a 0000012345 con Transform()
Si,hay un picture que hace el mismo trabajo que strzero
@L
@L
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
Carlos Vargas
Desde Managua, Nicaragua (CA)
Re: De 123456 a 0000012345 con Transform()
Muchisímas gracias Carlos,carlos vargas wrote:Si,hay un picture que hace el mismo trabajo que strzero
@L
He obviado mi función, con lo que indicas tengo suficiente.
Un Saludo
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10