Leitor de CSV  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
bzy
JavaGuru
[Avatar]

Membro desde: 23/08/2006 19:34:00
Mensagens: 215
Localização: São Paulo - Guarulhos
Offline

Bom, fiz um leitor de CSV, porque exportar separando por vírgula é fácil, difícil e ler e por tudo no lugar.
Tava mais é testando, usei até umas opções mais avançadas do JTable, todo o código ta bagunçado e com comentários toscos mas pode ser útil pra alguém.
O único problema que encontrei é que o Split do java, da problemas quando acha campos em branco, tipo ",, ", daí tive que colocar os campos em branco separados por hífen. Se alguém aperfeiçoar o "programinha", me avisa .

Obs. O arquivo que ele procura é o teste0.csv (o teste.csv é sem hífen) e o arquivo que ele cria é o dados_csv.txt.
 Nome do arquivo LeitorCsv.jar [Disk] Download
 Descrição
 Tamanho 13 Kbytes
 Baixado:  748 vez(es)

 Nome do arquivo teste0.csv [Disk] Download
 Descrição
 Tamanho 178 bytes
 Baixado:  317 vez(es)


SCJP - Sun Certified Java Programmer
http://meumundojava.blogspot.com/
Memento mori.
[WWW] [ICQ]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

O "split" pode separar seus campos direitinho, é questão de passar o parâmetro adequado.

[WWW]
eduveks
GUJ Ranger
[Avatar]

Membro desde: 19/04/2005 07:45:40
Mensagens: 831
Localização: Lisboa - Portugal
Offline

A idéia é boa... e se for para levar o projeto pra frente coloca isto no GoogleCode ou algum outro host de projetos...

Agora segue algumas sugestõeszinhas

Ter a opção para abrir arquivos csv, e poder definir o caracter que separa os campos, pode ser virgula, ponto e virgula, tabs, etc...

Quanto ao problema do espaços ou dos campos em branco, lembre-se que o split é regular expression, portanto vc deve fazer o split("\\,"), ou o outro caracter definido, e depois do split se for um campo em branco, sera um null então tem q se fazer um IF no FOR do split para verificar os que são nulls, tipo:




Também era interessante suportar sequencia de caracteres, por exemplo poder usar "<:>"...

E também uma maneira de filtrar os resultados, imagina que quero apenas gravar os dados do csv que tem o e-mail terminado com @gmail.com...

E se parar pra pensar mais dá para fazer mil e uma coisas, mas acho que o pessoal ainda cai no vicio de usar o Excel ou o OpenOffice pra trabalhar os csvs e fazer filtragens...

Mas se tiver recursos a mais tanto para gravar como para ler, e suportar XMLs e talz...

Agora é ter criatividade e para pra pensar um pouco e inventar...




http://www.cajuscript.org
http://eduveks.blogspot.com
[Email] [WWW]
bzy
JavaGuru
[Avatar]

Membro desde: 23/08/2006 19:34:00
Mensagens: 215
Localização: São Paulo - Guarulhos
Offline

Que show. Sabia que aquele segundo parâmertro servia para alguma coisa ! Valeu!

SCJP - Sun Certified Java Programmer
http://meumundojava.blogspot.com/
Memento mori.
[WWW] [ICQ]
bzy
JavaGuru
[Avatar]

Membro desde: 23/08/2006 19:34:00
Mensagens: 215
Localização: São Paulo - Guarulhos
Offline

Ho Du! É que esse projeto é parte de outro maior. Depois te mando, mas já que falou, tive problemas para pegar dados do CSV do Gmail, ele aparece com caracteres estranhos, se alguém puder testar ai.

Obs. O problema do Split ta corrigido, valeu thingol.
Agora o arquivo que ele lê é o "texte.csv"
Para imprimir (criar o arquivos txt) va no menu Imprime / Imprime... Valeu!
 Nome do arquivo LeitorCsv.jar [Disk] Download
 Descrição
 Tamanho 13 Kbytes
 Baixado:  267 vez(es)


SCJP - Sun Certified Java Programmer
http://meumundojava.blogspot.com/
Memento mori.
[WWW] [ICQ]
ksi
JavaBaby
[Avatar]

Membro desde: 03/10/2006 16:12:58
Mensagens: 96
Localização: São Paulo
Offline

bzy,
Dei uma olhada no seu projeto, tá legal viu...
Creio que o problema daqueles caracteres seja a codificação em questão, abri o csv do gmail no bloco de notas e salvei com codificação ANSI e ele deu um sinal de vida rs...
Pesquise sobre charsets, talvez seja o problema.
Desculpe não poder ajudar muito pois ainda nao tenho experiência com charset.


Rafael de Carvalho

..............................
[MSN]
eduveks
GUJ Ranger
[Avatar]

Membro desde: 19/04/2005 07:45:40
Mensagens: 831
Localização: Lisboa - Portugal
Offline

Exatamente, se tem problemas com os caracteres é isto q o ksi disse, tem q setar o charset quando faz o InputStream...

Alguns charsets:
UTF-8 - UTF-16LE - UTF-16 - UTF-16BE - US-ASCII

Então na hora de abrir o arquivo ou então fazer um frame de configurações gerais, poder dizer o charset q deve ser usado, o charset do Input e o do Output... para poder por charsets diferentes...

Exemplo do uso de charset:


http://www.cajuscript.org
http://eduveks.blogspot.com
[Email] [WWW]
bzy
JavaGuru
[Avatar]

Membro desde: 23/08/2006 19:34:00
Mensagens: 215
Localização: São Paulo - Guarulhos
Offline

Obrigado de novo. Irei corrigir o problema e posto aqui e quem sabe num futuro próximo eu não de uma aperfeiçoada nele para o pessoal não ter mais que usar o Excel !

Obs. Gostei do seu gif ksi

SCJP - Sun Certified Java Programmer
http://meumundojava.blogspot.com/
Memento mori.
[WWW] [ICQ]
ksi
JavaBaby
[Avatar]

Membro desde: 03/10/2006 16:12:58
Mensagens: 96
Localização: São Paulo
Offline

Eduveks
Eu até tentei fazer alguma coisa do tipo após pesquisar na internet sobre mudança de charset, acho que fiz algo do tipo na hora de salvar a String:



Mas não obtive bons resultados.

bzy
Assim que tiver uma versão mais aprimorada poste aí, pelo menos eu vou querer!
Sobre o gif fique a vontade se quiser colocar na sua assinatura tbm.
Até.


Rafael de Carvalho

..............................
[MSN]
bzy
JavaGuru
[Avatar]

Membro desde: 23/08/2006 19:34:00
Mensagens: 215
Localização: São Paulo - Guarulhos
Offline

Que bom que alguém se interessou! Eu corrigi uma parte, mas terei que reformular o programa se for colocar o Filechooser e permitir alterar o nome do arquivo que vai ser salvo. Fora corrigir alguns Bugs, então vai demorar um pouco masi do que eu pensava, mas vou colocar a última versão, só vai funcionar se escolher um arquivo logo que abrir a aplicação.
Testando mais a fundo percebi que embora tenha arruma o charset para ele lêr o CSV do Gmail, os outros ele não lê... Então, preciso ver isso também.

Lembrando que o código fonta está junto com o JAR.
 Nome do arquivo LeitorCsv.jar [Disk] Download
 Descrição Só funciona com codificação UTF-16...
 Tamanho 15 Kbytes
 Baixado:  335 vez(es)


SCJP - Sun Certified Java Programmer
http://meumundojava.blogspot.com/
Memento mori.
[WWW] [ICQ]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team