GET con PICUTRE de 999999 y punto (.)

GET con PICUTRE de 999999 y punto (.)

Postby FiveWiDi » Mon Sep 18, 2023 8:56 pm

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
FiveWiDi
 
Posts: 1189
Joined: Mon Oct 10, 2005 2:38 pm

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

Postby cmsoft » Mon Sep 18, 2023 11:44 pm

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 view

....
@ 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)
 
User avatar
cmsoft
 
Posts: 1290
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

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

Postby FiveWiDi » Tue Sep 19, 2023 11:35 am

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 view

....
@ 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
FiveWiDi
 
Posts: 1189
Joined: Mon Oct 10, 2005 2:38 pm

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

Postby nageswaragunupudi » Tue Sep 19, 2023 5:55 pm

Please try:
Code: Select all  Expand view
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
User avatar
nageswaragunupudi
 
Posts: 10643
Joined: Sun Nov 19, 2006 5:22 am
Location: India

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

Postby FiveWiDi » Tue Sep 19, 2023 6:12 pm

nageswaragunupudi wrote:Please try:
Code: Select all  Expand view
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
FiveWiDi
 
Posts: 1189
Joined: Mon Oct 10, 2005 2:38 pm

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

Postby karinha » Tue Sep 19, 2023 6:17 pm

Code: Select all  Expand view

   cPic  := "########"
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7826
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

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

Postby FiveWiDi » Tue Sep 19, 2023 6:34 pm

karinha wrote:
Code: Select all  Expand view

   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
FiveWiDi
 
Posts: 1189
Joined: Mon Oct 10, 2005 2:38 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 45 guests