GET con PICUTRE de 999999 y punto (.)

Post Reply
FiveWiDi
Posts: 1209
Joined: Mon Oct 10, 2005 2:38 pm
Has thanked: 1 time

GET con PICUTRE de 999999 y punto (.)

Post by FiveWiDi »

Hola a todos,

Como debo especificar un PICTURE para un GET de una variable carácter (no numérica), que acepte sólo cifras y el punto (.)?

No doy con ello.

Muchas gracias,
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
User avatar
cmsoft
Posts: 1294
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina
Been thanked: 1 time

Re: GET con PICUTRE de 999999 y punto (.)

Post by cmsoft »

Si el punto siempre tiene que estar en la misma posicion, es posible usar el PICTURE "99999.99" (Esto tambien te dejará poner espacios)

En caso que el punto pueda estar en cualquier lado, puedes validarlo con una expresión regular

Code: Select all | Expand

....
@ 2, 2 GET oGet VAR cText OF oDlg VALID(Validar(cText))
...

STATIC FUNCTION Validar(c)
   LOCAL cRegEx := hb_regexComp("^[0-9]+([.][0-9]+)?$")   
   LOCAL aMatch

   aMatch = hb_regex( cRegEx, c )
   if Empty(aMatch) 
      MsgInfo('No válido')
   endif

return !Empty(aMatch)
 
FiveWiDi
Posts: 1209
Joined: Mon Oct 10, 2005 2:38 pm
Has thanked: 1 time

Re: GET con PICUTRE de 999999 y punto (.)

Post by FiveWiDi »

cmsoft wrote:Si el punto siempre tiene que estar en la misma posicion, es posible usar el PICTURE "99999.99" (Esto tambien te dejará poner espacios)

En caso que el punto pueda estar en cualquier lado, puedes validarlo con una expresión regular

Code: Select all | Expand

....
@ 2, 2 GET oGet VAR cText OF oDlg VALID(Validar(cText))
...

STATIC FUNCTION Validar(c)
   LOCAL cRegEx := hb_regexComp("^[0-9]+([.][0-9]+)?$")   
   LOCAL aMatch

   aMatch = hb_regex( cRegEx, c )
   if Empty(aMatch) 
      MsgInfo('No válido')
   endif

return !Empty(aMatch)
 
De hecho estuve probando un método así utilizando VALID, pero pensé que podía existir un PICTURE para ello.
De momento lo resolveré así.
Gracias César,
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
User avatar
nageswaragunupudi
Posts: 10701
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 3 times
Contact:

Re: GET con PICUTRE de 999999 y punto (.)

Post by nageswaragunupudi »

Please try:

Code: Select all | Expand

function GetDigits()

   local oDlg, oGet, cGet, cPic

   cGet  := Space( 8 )
   cPic  := "99999.99"

   DEFINE DIALOG oDlg SIZE 300,160 PIXEL TRUEPIXEL

   @ 40,40 GET oGet VAR cGet PICTURE cPic SIZE 100,20 PIXEL OF oDlg

   @ 80,40 BUTTON "OK" SIZE 60,40 PIXEL OF oDlg ACTION MsgInfo( cGet )

   ACTIVATE DIALOG oDlg CENTERED

   ? cGet
return nil 
Regards

G. N. Rao.
Hyderabad, India
FiveWiDi
Posts: 1209
Joined: Mon Oct 10, 2005 2:38 pm
Has thanked: 1 time

Re: GET con PICUTRE de 999999 y punto (.)

Post by FiveWiDi »

nageswaragunupudi wrote:Please try:

Code: Select all | Expand

function GetDigits()

   local oDlg, oGet, cGet, cPic

   cGet  := Space( 8 )
   cPic  := "99999.99"

   DEFINE DIALOG oDlg SIZE 300,160 PIXEL TRUEPIXEL

   @ 40,40 GET oGet VAR cGet PICTURE cPic SIZE 100,20 PIXEL OF oDlg

   @ 80,40 BUTTON "OK" SIZE 60,40 PIXEL OF oDlg ACTION MsgInfo( cGet )

   ACTIVATE DIALOG oDlg CENTERED

   ? cGet
return nil 
Thanks Mr. Rao

But the dot is not allways at the same position.
:(
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
User avatar
karinha
Posts: 7910
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Re: GET con PICUTRE de 999999 y punto (.)

Post by karinha »

Code: Select all | Expand

   cPic  := "########"
 
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
FiveWiDi
Posts: 1209
Joined: Mon Oct 10, 2005 2:38 pm
Has thanked: 1 time

Re: GET con PICUTRE de 999999 y punto (.)

Post by FiveWiDi »

karinha wrote:

Code: Select all | Expand

   cPic  := "########"
 
Regards, saludos.
Thanks Mr. João,

For me is ok, accept "0123456789.-+"
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Post Reply