SEPARADORES CPF

NETOCAZUZA 02/07/2013 00:55:14
#425440
Tenho uma rotina que checa CPF, e outra que coloca separadores. Não estou conseguindo utilizar as duas juntas pois os separadores acabam interferindo no cálculo, então gostaria de fazer o seguinte: testar o número do cpf, normalmente como um número, sem separadores. Com o cálculo que já tenho isso já é possível. Agora só gostaria de ter uma rotina para para guardar o CPF na tabela com os separadores. Exemplo:
Testo o número normalmente para ver se é válido 12345678911, e na hora de guardar na tabela, guardo como 123.456.789-11 (com os separadores . e -) pois fica mais fácil de visualizar nos relatórios. Alguém sabe como fazer isso de modo mais fácil?
AJSO 02/07/2013 01:37:46
#425441
Caro NETOCAZUZA


Dim str_cpf as String

str_cpf = [Ô]12345678911[Ô]

txt_cpf.Text = Format(str_cpf, [Ô]###.###.###-##[Ô])


Boa Sorte


SAMUKA 02/07/2013 10:34:20
#425449
Resposta escolhida
NETOCAZUZA, só uma dica:

Normalmente a gente guarda o CPF só os números e formata na saída. Dessa forma vc diminui o tamanho do seu campo no banco de dados. Isso melhora a performance final. Pode parecer insignificante, se for pensar em poucos cadastros, mas se a base de dados crescer, 6 byte aqui, 6 acolá, no final isso dá grandes diferenças.

6 bytes (se for unicode)
NETOCAZUZA 02/07/2013 11:18:41
#425453
é verdade Samuka, to procurando uma solução para mostrar esses separadores no Grid, ou na hora da impressão, não precisa ser necessariamente para guardar na tabela não. Tava pedindo assim pois achei que seria mais fácil. Testei o código do AJSO e da forma como está o meu não funcionou, pode ser que funcione sozinho, mas to sem tempo pra testar agora. Por hoje acho mais conveniente gravar o cpf correto como está, depois vou tentando resolver o problema dos separadores.
SAMUKA 02/07/2013 15:48:24
#425474
Mais um acréscimo, guarde somente os números mas em formato texto.

E vc tb pode usar a instrução que o AJSO passou com o seguinte formato.

  
Dim str_cpf as String

str_cpf = [Ô][ô]00123456789[Ô]

txt_cpf.Text = Format$(str_cpf, [Ô]&&&.&&&.&&&-&&[Ô])


O & server pra texto, e o # serve pra numero.
O problema de utilizar como numero é que existem 0(zero) significativo à esquerda.
MARCELO.TREZE 04/07/2013 19:23:07
#425578
bom pra formatar o correto é isso

txt_cpf.Text = Format(str_cpf, [Ô]@@@.@@@.@@@-@@[Ô]) 

SAMUKA 05/07/2013 16:38:55
#425631
Quando vc usa o @ vc alinha o texto a direita. Ainda aconselho o &
Tópico encerrado , respostas não são mais permitidas