Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pachevisk

Zerar a Direita

Recommended Posts

Galera, estou com uma dúvida.

Tenho essa função e gostaria de fazer o inverso, ou seja, zerar a direita.

Function PadZero(strIn, lngPad)
    If Len(strIn) < lngPad Then strIn = left(String(lngPad+1,"0") & strIn, lngPad)
    PadZero = strIn
End Function


Response.Write(PadZero("zerar a direita",50))

Está resultando: 000000000000000000000000000zerar a direita

 

Preciso: zerar a direita000000000000000000000000000

Como faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa função não pode retornar isso, veja porque:

Function PadZero(strIn, lngPad)

 

Declara a função com nome PadZero e vai receber dois valores: StrIn e IngPad

 

Response.Write(PadZero("zerar a direita",50))

 

Aqui você imprime ela passando para strIn: zerar a direita, e para ingPad: 50

 

If Len(strIn) < lngPad Then

 

Diz que se o tamanho dos carateres do strIn (zerar a direita) for menor que o ingPad (50) ele vai para a instrução seguinte ("zerar a direita" tem 15 caracteres e é menor que 50 então ele vai para instrução seguinte):

 

strIn = left(String(lngPad+1,"0") & strIn, lngPad)

 

Aqui strIn vai receber o seguinte:

- left pega tantos carateres à esquerda do que foi passado left(string,qtde de carateres);
Ex.: Left("Pachevisk",4) resultaria em Pach;

- String(qtde de carateres,string) vai repetir a string varias vezes até a qtde de caracteres;
Ex.: String(5,"/") resultaria em /////;

 

Então ali no código diz que é para repetir o "0" por 51 vezes (String(lngPad+1,"0") depois com left pede pegar pegar os 50 primeiros caracteres (la no código tá em roxo - lngPad) da junção dos seus 51 zeros mais o strIn (zerar a direita)...

 

Isto é: se eu pegar os 50 primeiros caracteres à esquerda da junção de 51 zeros e "zerar a direita", serão apenas 50 zeros que ficarão na variavel;

 

PadZero = strIn

 

 

Aqui ele setou a variavel PadZero com o valor da variavel StrIn (que agora são 50 zeros)

 

End Function

 

Aqui fechou a função

Então, não vejo como retornar o valor que colocou ali usando essa função, mas talvez tenha feito um exemplo errado, se foi isso tenta o seguinte:

Nessa parte: left(String(lngPad+1,"0") & strIn, lngPad)

Deixe assim: left(strIn & String(lngPad+1,"0"), lngPad)

O que eu fiz foi pegar a variavel StrIn (zerar a direita) e colocar ela antes dos 51 zeros...

Claro, agora na contagem de pegar os 50 primeiros cacteres da variavel, serão 15 caracteres do texto "zerar a direita", mais 35 zeros...



Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou colocar no lab. de script também

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.