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,
GET con PICUTRE de 999999 y punto (.)
GET con PICUTRE de 999999 y punto (.)
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
- 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 (.)
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
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)
Re: GET con PICUTRE de 999999 y punto (.)
De hecho estuve probando un método así utilizando VALID, pero pensé que podía existir un PICTURE para ello.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 regularCode: 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 momento lo resolveré así.
Gracias César,
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
- 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 (.)
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
G. N. Rao.
Hyderabad, India
Re: GET con PICUTRE de 999999 y punto (.)
Thanks Mr. Raonageswaragunupudi 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
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
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
- 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 (.)
Code: Select all | Expand
cPic := "########"
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: GET con PICUTRE de 999999 y punto (.)
Thanks Mr. João,karinha wrote:Regards, saludos.Code: Select all | Expand
cPic := "########"
For me is ok, accept "0123456789.-+"
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