Jump to content
Fivewin Brasil

Como checar um campo?


kapiaba

Recommended Posts

Buenos dias señores,

Preciso saber como posso fazer para checar um campo do BD.

Exmplo:

Se o usuário digitar: SS14SILVA, ou SSSILVA14, ou 2444SILV, Não pode existir numeros misturados com o texto, ou seja só pode ser tudo ALFA ou tudo NÚMERICO.

Preciso parar o programa e avisar o uçuário que esta operação é proibida.

Como checar se tem números misturados com alfa??

Desde já, agradeço qualquer susgestão.

Obg, abraços.

João Santos - São Paulo.

joao@pleno.com.br

Fone: (11) 3106-2832

http://pt-br.facebook.com/people/Jo%C3%A3o-Santos/100001195894196

FWH 2.7 - xHARBOUR WorkShop.Exe

Link to comment
Share on other sites

Buenos dias señores,

Preciso saber como posso fazer para checar um campo do BD.

Exmplo:

Se o usuário digitar: SS14SILVA, ou SSSILVA14, ou 2444SILV, Não pode existir numeros misturados com o texto, ou seja só pode ser tudo ALFA ou tudo NÚMERICO.

Preciso parar o programa e avisar o uçuário que esta operação é proibida.

Como checar se tem números misturados com alfa??

Desde já, agradeço qualquer susgestão.

Obg, abraços.

João Santos - São Paulo.

joao@pleno.com.br

Fone: (11) 3106-2832

http://pt-br.facebook.com/people/Jo%C3%A3o-Santos/100001195894196

FWH 2.7 - xHARBOUR WorkShop.Exe

Link to comment
Share on other sites

NÃO!!!id=size5>

KKKKKKKKKKKKKKKKKKKKKKK

É aleatório, cada um cria do jeito que achar melhor.

Mas, estou modificando a tela para que o "jumento/a" tenha uma mensagem que só pode ALFA ou NÚMEROS.

João Santos - São Paulo.

joao@pleno.com.br

Fone: (11) 3106-2832

http://pt-br.facebook.com/people/Jo%C3%A3o-Santos/100001195894196

FWH 2.7 - xHARBOUR WorkShop.Exe

Editado por - kapiaba on 30/01/2012 11:07:30

Link to comment
Share on other sites

E para "piorar" o campo tem 40 caracteres e cada FPD, cria como achar melhor...

Estou colocando TOOLTIP que ´fala", e vou mostrar mensagem na tela também, acho que assim o uçuário vai entender.

João Santos - São Paulo.

joao@pleno.com.br

Fone: (11) 3106-2832

http://pt-br.facebook.com/people/Jo%C3%A3o-Santos/100001195894196

FWH 2.7 - xHARBOUR WorkShop.Exe

Link to comment
Share on other sites

Sugiro, que neste caso teste os caractes válidos, mas pde inverter tb.:


cVAR := SPACE(20)

//....ENTRA COM DADO NO GET

cVAR := "SS14SILVA "

cVAR := ALLTRIM(cVAR)

FOR nPOS:=1 TO LEN(cVAR)

//65="A" 90="Z" 97="a" 122="z"

IF !((ASC(cVAR[nPOS])>= 65 .AND. ASC(cVAR[nPOS])<= 90) .OR.;

(ASC(cVAR[nPOS])>= 97 .AND. ASC(cVAR[nPOS])<= 122))

MSGSTOP("NOME INVÃLIDO","xxx")

RETURN .F.

ENDIF

NEXT

RETURN .T.

id=code>id=code>
Link to comment
Share on other sites

citação:

Sugiro, que neste caso teste os caractes válidos, mas pde inverter tb.:


cVAR := SPACE(20)

//....ENTRA COM DADO NO GET

cVAR := "SS14SILVA "

cVAR := ALLTRIM(cVAR)

FOR nPOS:=1 TO LEN(cVAR)

//65="A" 90="Z" 97="a" 122="z"

IF !((ASC(cVAR[nPOS])>= 65 .AND. ASC(cVAR[nPOS])<= 90) .OR.;

(ASC(cVAR[nPOS])>= 97 .AND. ASC(cVAR[nPOS])<= 122))

MSGSTOP("NOME INVÃLIDO","xxx")

RETURN .F.

ENDIF

NEXT

RETURN .T.

id=code>id=code>


id=quote>id=quote>

Opa, está melhorando, vou testar e reporto.

Obrigado.

João Santos - São Paulo.

joao@pleno.com.br

Fone: (11) 3106-2832

http://pt-br.facebook.com/people/Jo%C3%A3o-Santos/100001195894196

FWH 2.7 - xHARBOUR WorkShop.Exe

Link to comment
Share on other sites

Simples mas funcional


cTESTE:="SS14SILVA"

TESTACHAR(cTESTE)

FUNCTION TESTACHAR(VAR)

cNUMBERS:="1234567890"

FOR I:=1 TO LEN(cNUMBERS)

IF ALLTRIM(STR(I)) $ VAR

RETURN .T.

ENDIF

NEXT

RETURN .F.

id=code>id=code>

logoforum.jpg

Editado por - ctoas on 30/01/2012 11:40:17

Editado por - ctoas on 30/01/2012 11:41:33

Link to comment
Share on other sites

citação:

Sugiro, que neste caso teste os caractes válidos, mas pde inverter tb.:


cVAR := SPACE(20)

//....ENTRA COM DADO NO GET

cVAR := "SS14SILVA "

cVAR := ALLTRIM(cVAR)

FOR nPOS:=1 TO LEN(cVAR)

//65="A" 90="Z" 97="a" 122="z"

IF !((ASC(cVAR[nPOS])>= 65 .AND. ASC(cVAR[nPOS])<= 90) .OR.;

(ASC(cVAR[nPOS])>= 97 .AND. ASC(cVAR[nPOS])<= 122))

MSGSTOP("NOME INVÃLIDO","xxx")

RETURN .F.

ENDIF

NEXT

RETURN .T.

id=code>id=code>


id=quote>id=quote>

JMSILVA, Cuasi...

Veja:

"24kapiaba" -> barra corretamente.

"kapiaba24" -> barra corretamente.

"kapiaba" -> Deixa passar corretamente.

"24242424" -> Barra incorretamente, somente números também pode passar...

Como saio desta??? Obrigado, abraços.

João Santos - São Paulo.

joao@pleno.com.br

Fone: (11) 3106-2832

http://pt-br.facebook.com/people/Jo%C3%A3o-Santos/100001195894196

FWH 2.7 - xHARBOUR WorkShop.Exe

Link to comment
Share on other sites

Desculpe, não prestei atenção que pode só número.

SEGUE CARREÇÃO, DEVIDAMENTE TESTADA:


FUNCTION MAIN()

LOCAL CVAR,nPOS,cPRIMEIRO_CHR

cVAR := "AXXXX" //ALLTRIM(cVAR)

//DEFINE QUAL O PRIMEIRO CARACTERE SE EH CHAR OU NUMERIC

cPRIMEIRO_CHR:="X"

IF ((ASC(cVAR[1]) >= 65 .AND. ASC(cVAR[1]) <= 90) .OR.;

(ASC(cVAR[1]) >= 97 .AND. ASC(cVAR[1]) <= 122))

cPRIMEIRO_CHR := "C"

ELSEIF ASC(cVAR[1]) >= 48 .AND. ASC(cVAR[1]) <= 57

cPRIMEIRO_CHR := "N"

ENDIF

//ERRO NÃO E LETRA E NEM NUMERO

IF cPRIMEIRO_CHR == "X"

MSGSTOP("NOME INVÃLIDO","xxx")

RETURN .F.

ENDIF

FOR nPOS:=1 TO LEN(cVAR)

//65="A"

IF cPRIMEIRO_CHR == "C"

IF !((ASC(cVAR[nPOS]) >= 65 .AND. ASC(cVAR[nPOS]) <= 90) .OR.;

(ASC(cVAR[nPOS]) >= 97 .AND. ASC(cVAR[nPOS]) <= 122))

MSGSTOP("NOME INVÃLIDO","xxx")

RETURN .F.

ENDIF

ELSE

IF !(ASC(cVAR[nPOS]) >= 48 .AND. ASC(cVAR[nPOS]) <= 57)

MSGSTOP("NOME INVÃLIDO","xxx")

RETURN .F.

ENDIF

ENDIF

NEXT

MSGSTOP("NOME ACEITO","XXX")

RETURN .T.

id=code>id=code>
Link to comment
Share on other sites

citação:

Desculpe, não prestei atenção que pode só número.

SEGUE CARREÇÃO, DEVIDAMENTE TESTADA:


FUNCTION MAIN()

LOCAL CVAR,nPOS,cPRIMEIRO_CHR

cVAR := "AXXXX" //ALLTRIM(cVAR)

//DEFINE QUAL O PRIMEIRO CARACTERE SE EH CHAR OU NUMERIC

cPRIMEIRO_CHR:="X"

IF ((ASC(cVAR[1]) >= 65 .AND. ASC(cVAR[1]) <= 90) .OR.;

(ASC(cVAR[1]) >= 97 .AND. ASC(cVAR[1]) <= 122))

cPRIMEIRO_CHR := "C"

ELSEIF ASC(cVAR[1]) >= 48 .AND. ASC(cVAR[1]) <= 57

cPRIMEIRO_CHR := "N"

ENDIF

//ERRO NÃO E LETRA E NEM NUMERO

IF cPRIMEIRO_CHR == "X"

MSGSTOP("NOME INVÃLIDO","xxx")

RETURN .F.

ENDIF

FOR nPOS:=1 TO LEN(cVAR)

//65="A"

IF cPRIMEIRO_CHR == "C"

IF !((ASC(cVAR[nPOS]) >= 65 .AND. ASC(cVAR[nPOS]) <= 90) .OR.;

(ASC(cVAR[nPOS]) >= 97 .AND. ASC(cVAR[nPOS]) <= 122))

MSGSTOP("NOME INVÃLIDO","xxx")

RETURN .F.

ENDIF

ELSE

IF !(ASC(cVAR[nPOS]) >= 48 .AND. ASC(cVAR[nPOS]) <= 57)

MSGSTOP("NOME INVÃLIDO","xxx")

RETURN .F.

ENDIF

ENDIF

NEXT

MSGSTOP("NOME ACEITO","XXX")

RETURN .T.

id=code>id=code>


id=quote>id=quote>

P E R F E I T Oid=size5>

Carissimo: Thank you very much - Gracias - Obrigado.

Ficou Show()

João Santos - São Paulo.

joao@pleno.com.br

Fone: (11) 3106-2832

http://pt-br.facebook.com/people/Jo%C3%A3o-Santos/100001195894196

FWH 2.7 - xHARBOUR WorkShop.Exe

Link to comment
Share on other sites

Olá,

Pode Fazer desse jeito tb icon_smile_big.gif


cNome := "V1A2G3N4E5R"

lTemAlfa := .F.

lTemNume := .F.

For nX := 1 To Len(cNome)

If IsAlpha(cNome[nX]) ; lTemAlfa := .T. ; Endif

Next

For nX := 1 To Len(cNome)

If !IsAlpha(cNome[nX]) ; lTemNume := .T.; Endif

Next

If lTemAlfa .and. lTemNume

MsgStop("Erro")

Else

MsgStop("Correto")

Endif

id=code>id=code>

Ou Usar o IsDigit() ao invés do !IsAlpha()

Vagner Wirts

bgprofilea.jpg

"Ele não sabendo que era impossível, foi lá e fez"

Link to comment
Share on other sites


Function Verifica( cString )

Local nNum := 0, nChar := 0, i := 0, Result := {.F.,"M"}

For i := 1 to Len(cString)

If SubStr(cString,i,1) $ "0123456789"

nNum++

else

nChar++

end

If nNum > 0 .And. nChar > 0

exit

end

end

If nNum = Len(cString)

Alert("Tudo número")

Result[1] := .T.

Result[2] := "N"

elseif nChar = Len(cString)

Alert("Tudo caracter")

Result[1] := .T.

Result[2] := "C"

else

Alert("Misturado")

Result[1] := .F.

Result[2] := "M"

end

Return Result

id=code>id=code>

sambomb.jpg

RCA Sistemas - Itaocara - RJ

Link to comment
Share on other sites

Kapiaba, bom dia.

A função "AT" seria a melhor para você utilizar.

AT() é uma funçao de tratamento de dados tipo caractere utilizada para determinar a posiçao da primeira ocorrência de um substring dentro de outra cadeia de caracteres.

? AT("a", "abcde") // Resulta: 1

? AT("bcd", "abcde") // Resulta: 2

? AT("a", "bcde") // Resulta: 0

Então você pode usar um FOR de zero a nove com a "AT" dentro dele para localizar dentro da sua variável.

Att.

Sócrates Gambarra.

citação:

Buenos dias señores,

Preciso saber como posso fazer para checar um campo do BD.

Exmplo:

Se o usuário digitar: SS14SILVA, ou SSSILVA14, ou 2444SILV, Não pode existir numeros misturados com o texto, ou seja só pode ser tudo ALFA ou tudo NÚMERICO.

Preciso parar o programa e avisar o uçuário que esta operação é proibida.

Como checar se tem números misturados com alfa??

Desde já, agradeço qualquer susgestão.

Obg, abraços.

João Santos - São Paulo.

joao@pleno.com.br

Fone: (11) 3106-2832

http://pt-br.facebook.com/people/Jo%C3%A3o-Santos/100001195894196

FWH 2.7 - xHARBOUR WorkShop.Exe


id=quote>id=quote>
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...