Get com 000 no inicio

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

JuniorVaz
Usuário Nível 3
Usuário Nível 3
Mensagens: 100
Registrado em: 16 Jul 2004 15:49

Get com 000 no inicio

Mensagem por JuniorVaz »

Ola, minha pergunta desta vez acho que não é das mais complicadas, mas não sei fazer... hehehe
No get eu digito 000785, mas quando dou enter e ele pula pra outro get vira apenas 785, ele está ignorando os zeros... alguem tem alguma dica de como resolver isso? Obrigado
Alessandro
Usuário Nível 3
Usuário Nível 3
Mensagens: 141
Registrado em: 07 Jul 2004 09:39
Localização: Santo Antonio da Platina-PR

Mensagem por Alessandro »

Olá

Quando pegar o código coloque um valid.
Exemplo:

@ lin,col get CODIGO pict "999999" valid CORRIGE(@CODIGO)


function CORRIGE(CODIGO)

CODIGO := strzero(val(codigo),6,0)

//assim o CODIGO fica com zeros à esquerda

return CODIGO
Gerald
Usuário Nível 1
Usuário Nível 1
Mensagens: 39
Registrado em: 06 Jul 2004 17:50
Localização: Caldas Novas
Contato:

Re: Get com 000 no inicio

Mensagem por Gerald »

JuniorVaz escreveu:Ola, minha pergunta desta vez acho que não é das mais complicadas, mas não sei fazer... hehehe
No get eu digito 000785, mas quando dou enter e ele pula pra outro get vira apenas 785, ele está ignorando os zeros... alguem tem alguma dica de como resolver isso? Obrigado
Quando se utilizar uma variavel numerica ela desconsidera mesmo os zeros as esquerda. Para que fique com os zeros tem que transformar ela em caracter, como o amigo Alessandro explicou.
Quando disserem que seu trabalho não é o de um profissional, lembre-se: Amadores construíram a arca de Noé, profissionais, o Titanic...

www.1grau.com\comunidadeclipper
skype = "gpfranca"
novo email: geraldo@usinfo.com.br
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Prezados Colegas

O problema é que irá gerar um erro.

Se a variável usada no get é númérica ela não poderá ser convertida para caractere com o uso da função STRZERO(), só dá para fazer isso se a variável for inicializada com sendo do tipo caractere, aí ela poderá ser incrementada e com o uso da função val e retornar como cara ctere sem problemas.

Exemplo :

Código: Selecionar todos

PRIVATE MCODIGO
MCODIGO=SPACE(6)

DO WHILE .T.
   @ 10,00 GET MCODIGO PICT "999999" 
   READ
   REPLACE CODIGO WITH MCODIGO
   DBCOMMIT()

   MCODIGO:=STRZERO(VAL(MCODIGO+1),6)
ENDDO
Embora eu não acho muita função de uso desta forma, você pode usar tranquilamente uma váriavel numérica e na garvação então adcionar os zeros a esquerda.

Até logo.

Marcelo
JuniorVaz
Usuário Nível 3
Usuário Nível 3
Mensagens: 100
Registrado em: 16 Jul 2004 15:49

...

Mensagem por JuniorVaz »

sim, na verdade é que vai ser usado para impressão de duplicatas, e pro campo que estou citandu, sera digitado o numero da duplicata, que por coordenadas do cliente, teria que ser por exemplo 000785... Apenas usei a ideia de transforma-la em caractere, por ira ser usada apenas para impressão.. Mas muito obrigado a vcs que deram as dicas ai...

VLw mesmo

Nota de Moderação:
por Pablo César: Mensagem separada deste tópico. Foram unidas para dar sentido ao enunciado.
kenew
Usuário Nível 2
Usuário Nível 2
Mensagens: 97
Registrado em: 08 Set 2004 15:08
Contato:

Re: Get com 000 no inicio

Mensagem por kenew »

Gerald escreveu:
JuniorVaz escreveu:Ola, minha pergunta desta vez acho que não é das mais complicadas, mas não sei fazer... hehehe
No get eu digito 000785, mas quando dou enter e ele pula pra outro get vira apenas 785, ele está ignorando os zeros... alguem tem alguma dica de como resolver isso? Obrigado
Quando se utilizar uma variavel numerica ela desconsidera mesmo os zeros as esquerda. Para que fique com os zeros tem que transformar ela em caracter, como o amigo Alessandro explicou.
Mas no exemplo acima é só usar uma variavel string mesmo pq pela pict só aceitar numeros e qq forma q digitar no final sera convertida para zeros a esquerda, então não tem problemas no exemplo.
Responder