Ir para conteúdo

Arquivado

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

Will Sancho

qualificador de Textos Visual Basic

Recommended Posts

Bom dia pessoal,

 

Estou com uma duvida:

 

estou tentando dar uma carga em um arquivo txt, onde a delimitação dele é ponto e virgula (;), por exemplo:

 

Imagune que o arquivo segue um padrão parecido com esse:

 

"cod";"nome";"cpf";"email";"id_status";"telfone"

1;"Fulano Costa";"21452589654";"fcosta@mail.com";1;"(11) 8547-5695"

2;"Beltrano Abreu";;"baabreu@bol.com.br";2;"(13) 3985-5478"

3;"José Maria";"124541258655";"jma@hotmail.com;br";1;"(11) 9999-9999"

 

Bem....

Rodando meu Script depois de tratar tirando as aspas duplas (") eu consigo extrair os seguintes dados para o banco de dados:

 

cod = 1

nome = Fulano Costa

cpf = 21452589654

email = fcosta@mail.com

id_status = 1

telefone = (11) 8547-5695

 

cod = 2

nome = Beltrano Abreu

cpf =

email = baabreu@bol.com.br

id_status = 2

telefone = (13) 3985-5478

 

cod = 3

nome = José Maria

cpf = 124541258655

email = jma@hotmail.com;br // É aqui que a p.... fica seria!! rs...

id_status = ?

telefone = ?

 

O Arquivo veio com ponto e virgula a mais, pode reparar que no email, no lugar do ponto, o jumento colocou ponto e virgula, isso acabou fazendo com que o meu script considerasse o "br" como outro campo!

Da mesma forma em um campo com descrição poderia conter ponto e virgula tambem.

 

O "X" da questão é:

 

Como posso fazer pra delimitar apenas no lugar certo?

 

OBS.

 

O arquivo está exatamente neste formato, com Strings dentro de aspas duplas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por que você coloca um ponto e virgula no email? Isso é tratado no momento que você digita as informações para passá-las para o arquivo...

 

Você deve delimitar usando outro delimitador, algo que ninguém mais use, como por exemplo | ou § assim você não teria o problema com o ponto e virgula.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu sei,

 

O problema é que esses arquivos eu recebo de clientes, eu não posso obrigar eles a seguir um pagrão, eu tenho que me adaptar com os padroes deles.

 

nos arquivos que eu recebo tem campos de descrição que tambem podem vim com ponto e virgula, por isso que ele coloca aspas dublas, pra poder qualificar um campo, eu só não sei como fazer essa qualificação pelo vb! :/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você não tem um padrão definido então não adianta usar separação com ";" pois ai você vai estar sempre precisando ajustar pra cada cliente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas tem 1 jeito... antes de remover as aspas faça uma rotina que verifique se tem caráteres indesejados como o ponto e vírgula... dentro dos valores entre aspas... ai sim depois remova as aspas duplas...

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas esse que é o esquema... o algoritmo se torna fácil quando se encontra uma lógica... no caso do will ele não pode impedir do cliente de tratar nas entradas para não dar conflito com um separador ... mas todos os dados vem entre aspas duplas .... em cima desta situação ele varre a string verificando somente os caracteres entre aspas... é um bom exercício de faculdade... rsrs... se o will não conseguir eu faço para ele... mas a idéia e correr caracter por caracter... loop , mid , if , else e replace vão participar desta verificação...

 

Sucesso!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gostou da "LÓGICA" ?! Rsrs... observando a string quando ela é gerada os campos ficam entre aspas e nisso independe do usuário por isso a verificação dos valores entre aspas antes de remover... pior do que um faça a liça de casa de outro é fazer o outro ganhar dinheiro com o feito kkk

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.