Eu tenho um arquivo csv com várias colunas que uso para gerar um outro arquivo de inserts para o SQL Server
até aí tudo bem. A questão é que eu preciso comparar o número de colunas do arquivo csv com o número de colunas
da tabela no sql server. No caso eu obtenho o número de colunas do sql server via arquivo .properties do java
Porém não sei como obter o número de colunas do arquivo csv
Já tentei matrizes, contador no tokenizer, e etc
Estou precisando urgente disso D:
segue o que eu estou tentando fazer
[code] for (int lin=0;lin<1;lin++) {
String result =linha;
Posso estar totalmente errado, mas tentarei ajudar. Se você tiver um arquivo CSV com a estrutura similar ao exemplo abaixo, as colunas serão representadas na primeira linha e separadas por ;. No momento que você for ler essa primeira linha, você poderia simplesmente inserir essa linha num array respeitando o delimitador ;. Aí nesse exemplo abaixo teríamos um array com 2 elementos, que você obteria esse valor usando o lenght que retorna um int com o total de elementos do array.
Po amigo, obrigado pela ajuda mas não é isso que eu quero
Eu quero varrer a primeira linha do arquivo para pegar o número de colunas, se eu fizer esse esquema de array, eu vou ter uma linha só obterei o número errado =/
e também, meu csv é separado por vírgulas, tendo vírgulas dentro de um campo descrição
Isso dificulta muito pois não é possivel dar o split e nem outras formas simples de divisão
[quote=DoninhaV8]Po amigo, obrigado pela ajuda mas não é isso que eu quero
Eu quero varrer a primeira linha do arquivo para pegar o número de colunas, se eu fizer esse esquema de array, eu vou ter uma linha só obterei o número errado =/
e também, meu csv é separado por vírgulas, tendo vírgulas dentro de um campo descrição
Isso dificulta muito pois não é possivel dar o split e nem outras formas simples de divisão[/quote]
Você tem como postar um exemplo da primeira linha? Outro dia fizemos algo parecido aqui no meu trabalho.
[quote=DoninhaV8]Po amigo, obrigado pela ajuda mas não é isso que eu quero
Eu quero varrer a primeira linha do arquivo para pegar o número de colunas, se eu fizer esse esquema de array, eu vou ter uma linha só obterei o número errado =/
e também, meu csv é separado por vírgulas, tendo vírgulas dentro de um campo descrição
Isso dificulta muito pois não é possivel dar o split e nem outras formas simples de divisão[/quote]
Não complique sua vida, use ponto-e-virgula para a separação ou | . Use um caracter que não está nos dados. E ai siga o que o colega já disse, basta ler a primeira linha e dar o parse. Pronto, o length do array vai dizer quantas colunas tem.
Se vc quer ir pelo caminho dificil faça o parser vc mesmo. pesquise a linha até achar uma virgula. Se achar um " sete um flag. Se a proxima virgula for encontrada e o flag estiver ativo, ignore e continue. No proximo " desative o flag. Ponha um count.
Isso vai dizer quantas colunas tem.
Outra opção é colocar o seu codigo de parsing em outra classe e usá-lo na primeira linha fora do loop. (tá meio estranho esse seu codigo)