Ir para conteúdo

POWERED BY:

Arquivado

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

alexandremanowar

manipular arquivos csv

Recommended Posts

E a e galera!

 

Eu preciso aprender manipular arquivos csv com o vb.net 2005 para desktop.

É o seguinte eu tenho o arquivo csv e os dados dentro dele vem da seguinte forma:

dados1;dados2;dados3

dados4;dados5;dados6

dados7;dados8;dados9

 

E tenho uma tabela em mysql com os seguintes campos:

campo1,campo2,campo3

 

Preciso aprender como abrir esse arquivo e gravar as informações de cada linha dentro da minha tabela.

 

Como eu faço isso? Preciso de explicação ou tutorial para aprender por favor!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ea e galeraAndei lendo alguns tutoriais e consegui trabalhar manipulando o arquivo, ou seja, abrir, gravar, etc.Olha um exemplo:Esse código Abre o arquivo:

Dim AbrirComo As OpenFileDialog = New OpenFileDialog()		Dim caminho As DialogResult		Dim fluxoTexto As IO.StreamReader		Dim Arquivo As String		AbrirComo.Title = "Abrir Como"		AbrirComo.FileName = "Nome do arquivo"		AbrirComo.Filter = "Arquivos Textos (*.csv)|*.csv"		caminho = AbrirComo.ShowDialog		Arquivo = AbrirComo.FileName		If Arquivo = Nothing Then			MessageBox.Show("Arquivo inválido", "Abrir Como", MessageBoxButtons.OK)		Else			fluxoTexto = New IO.StreamReader(Arquivo)			txtLinhas.Text = fluxoTexto.ReadToEnd			txtArquivo.Text = AbrirComo.FileName			fluxoTexto.Close()		End If
Esse código escreve no arquivo:
Dim fluxoTexto As IO.StreamWriter		Dim linhaTexto As String		If IO.File.Exists(txtArquivo.Text) Then			fluxoTexto = New IO.StreamWriter(txtArquivo.Text, True)			fluxoTexto.WriteLine(txtNovaLinha.Text)			fluxoTexto.Close()		Else			MessageBox.Show("Arquivo não existe")		End If
Esse código salva o arquivo com outro nome:
Dim salvarComo As SaveFileDialog = New SaveFileDialog()		Dim caminho As DialogResult		Dim fluxoTexto As StreamWriter		Dim Arquivo As String		salvarComo.CheckFileExists = False		salvarComo.Title = "Arquivos Textos (*.csv)|*.csv"		caminho = salvarComo.ShowDialog		Arquivo = salvarComo.FileName		If Arquivo = Nothing Then			MessageBox.Show("Arquivo inválido", "Salvar Como", MessageBoxButtons.OK)		Else			fluxoTexto = New IO.StreamWriter(Arquivo)			fluxoTexto.Write(txtLinhas.Text)			fluxoTexto.Close()		End If
Preciso agora aprender o seguinte usar o código que abre o arquivo e fezer ele ler linha por linha igual o código acima e quando ele for lendo a linha ele vai gravando na tabela igual mencionei acima

Eu preciso aprender manipular arquivos csv com o vb.net 2005 parea desktop.É o seguinte eu tenho o arquivo csv e os dados dentro dele vem da seguinte forma:dados1;dados2;dados3dados4;dados5;dados6dados7;dados8;dados9E tenho uma tabela em mysql com os seguintes campos:campo1,campo2,campo3Preciso aprender como abrir esse arquivo e gravar as informações de cada linha dentro da minha tabela.Como eu faço isso? Preciso de explicação ou tutorial para aprender por favor!

Alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara valeu pela força e o link que você deixou, achei também uns tutoriais na net e consegui fazer.

Porém agora estou me deparando com outro problema que é o seguinte:

 

O programa que estou fazendo abre o arquivo csv e armazena em um banco de dados, porém os arquivos csv são grandes por exemplo todos eles tem 41 colunas, a quantidade de linhas é variável.

Eu fiz um teste com um arquivo de 2000 linhas e o programa funcionou normal porém, fiz teste com um de 4.730, e ele armazenou tudo no banco mas assim que ele termina de armazenar ele deu uma msn de erro que é seguinte

 

Imagem da msn de erro:

Imegem do msn de erro

 

Pelo que eu entendi ele excedeu alguma coisa mas o que?

Já fiz teste tipo quebrando a linha do insert com & _ mas não funcionou dei na mesma.

o interessante é que ele armazena tudo numa boa depois de armazenar é que da esse problema.

Por que esse erro e como corrijo?

 

Veja meu código:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click   		conn.Open()		Dim AbrirComo As OpenFileDialog = New OpenFileDialog()		Dim caminho As DialogResult		Dim Arquivo As String		AbrirComo.Title = "Abrir arquivo como"		AbrirComo.FileName = "Nome do Arquivo"		AbrirComo.Filter = "Arquivos CSV (*.csv)|*.csv"		caminho = AbrirComo.ShowDialog		Arquivo = AbrirComo.FileName		Dim Valor As New IO.StreamReader(Arquivo)		Dim Ler As String = Valor.ReadToEnd()		Dim Linhas As String() = Ler.Split(vbCrLf)		Dim Qt_linhas As Integer = Linhas.Length		For Each linha As String In Linhas			'' MessageBox.Show("Armazenando a linha: " & cont & "Valores:" & linha)			Dim analisar As String = linha			Dim quebra As String() = analisar.Split(";")		   			Dim cmd As New MySqlCommand("INSERT INTO acompanhamento_agricola (produto,proposta_renovada,proposta,proposta_id,data_contratacao,agencia_id,nome_agencia,nome_segurado,endereco,bairro,cidade,uf,cep,ddd,fone,cpf_cnpj,email,nome_propriedade,endereco_propriedade,municipio_propriedade,uf_propriedade,cultura,cultivo,irrigacao,produtividade_esperada,produtividade_segurada,area,valor_orcamento,area_total_plantada,seguro_subvencao_governo_federal,inicio_plantio,numero_contrato_financiamento,vigencia_contrato_financiamento,area_plantada_mais_ano,cultura_intercalada_conserciada,adesao_zoagro,sementes_certificadas,rta_cliente,premio_bruto,premio_liquido,sinistros_avisados)VALUES('" & Trim(quebra(0)) & "','" & Trim(quebra(1)) & "','" & Trim(quebra(2)) & "','" & Trim(quebra(3)) & "','" & Trim(quebra(4)) & "','" & Trim(quebra(5)) & "','" & Trim(quebra(6)) & "','" & Trim(quebra(7)) & "','" & Trim(quebra(8)) & "','" & Trim(quebra(9)) & "','" & Trim(quebra(10)) & "','" & Trim(quebra(11)) & "','" & Trim(quebra(12)) & "','" & Trim(quebra(13)) & "','" & Trim(quebra(14)) & "','" & Trim(quebra(15)) & "','" & Trim(quebra(16)) & "','" & Trim(quebra(17)) & "','" & Trim(quebra(18)) & "','" & Trim(quebra(19)) & "','" & Trim(quebra(20)) & "','" & Trim(quebra(21)) & "','" & Trim(quebra(22)) & "','" & Trim(quebra(23)) & "','" & Trim(quebra(24)) & "','" & Trim(quebra(25)) & "','" & Trim(quebra(26)) & "','" & Trim(quebra(27)) & "','" & Trim(quebra(28)) & "','" & Trim(quebra(29)) & "','" & Trim(quebra(30)) & "','" & Trim(quebra(31)) & "','" & Trim(quebra(32)) & "','" & Trim(quebra(33)) & "','" & Trim(quebra(34)) & "','" & Trim(quebra(35)) & "','" & Trim(quebra(36)) & "','" & Trim(quebra(37)) & "','" & Trim(quebra(38)) & "','" & Trim(quebra(39)) & "','" & Trim(quebra(40)) & "')", conn)			Try				cmd.ExecuteNonQuery()			Catch ex As Exception				MsgBox("Erro ao conectar", MsgBoxStyle.Critical, "Erro Fatal")			End Try		Next		MsgBox("Dados armazenados com sucesso", MsgBoxStyle.Information, "Finalizado")		conn.Close()	   	   	End Sub
Como corrigir?

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ae pessoal.Achei o problema. Ele da essa msn de erro porque a última da linha do meu arquivo é vazia! Ou seja não tem nada. Quando eu testei com menas linha eu acabei excluindo a linha vazia e ficou apenas linhas com informações. Porém o arquivo veio com 4731 mas é apenas 4730 linha com informação a última é vazia. Como eu faço para ele não tentar armazenar a linha vazia? Preciso fazer algo para ignorar a linha vazia porque o arquivo que tenho aqui é para teste, no cliente ele não vai ficar abrindo arquivo, preciso validar isso!Alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu a todos pela ajuda nesse tópico! Consegui finalizar.

O amigo Graymalkin me deu a wxplicação final para o problema da linha em branco e o comando de teste ficou assim:

if not (linha.Trim()="") then

Valeu

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.