alexandremanowar Postado Dezembro 19, 2006 Denunciar Share Postado Dezembro 19, 2006 E a e galera!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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alexandremanowar Postado Dezembro 20, 2006 Autor Denunciar Share Postado Dezembro 20, 2006 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 acimaEu 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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Andersonjb Postado Dezembro 21, 2006 Denunciar Share Postado Dezembro 21, 2006 Se eu não me engano a referência IO.StreamReader tem um módulo ReadLine(), não tem? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alexandremanowar Postado Dezembro 22, 2006 Autor Denunciar Share Postado Dezembro 22, 2006 E aí beleza!Então tem a opção ReadLine sim, mas o problema é como eu vou armazenar os campos do arquivo csv na tabela, o problema é que tem que separar o campos do arquivo csv tipo o arquivo csv esta com os seguintes dadosdados1;dados2;dados3dados4;dados5;dados6e tenho uma tabela em mysql com 3 campos que sãocampo1,campo2,campo3.Preciso fazer um código que abra o arquivo csv e quebre a linha onde esta o ponto e vírgula e armazene a informação na tabela logo a tabela fica assim-------------------------------|campo1|campo2|campo3|-------------------------------|dados1 |dados2 |dados3 ||dados4 |dados5 |dados6 |-------------------------------O problema é que não estou conseguindo fazer isso, preciso ler o arquivo csv quebrar os dados onde a divisão é o ";" e armazenar na tabela.Você pode me ajudar? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Andersonjb Postado Dezembro 23, 2006 Denunciar Share Postado Dezembro 23, 2006 há está. Faz o seguinte: passa o conteúdo para string, e existe uma função chamada Split(). Ela divide uma determinada string em parte (em um array de strings) de acordo com um caracter delimitador, ou mesmo quebrador de strings, que você tem que passar por parâmetro. Um exemplo aí:Dim jaba as Stringjaba = "Andersonjb-é-gostoso-!"jaba.Split("-")Eu não lembro bem se era assim porque eu to sem o Visual Studio aqui e não dá pra eu testar, mais é mais ou menos isso.Aqui tem um post de Exemplo:http://scriptbrasil.com.br/forum/index.php...95&hl=SplitE se você pesquisar tem outros post's sobre isso!Falows! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alexandremanowar Postado Dezembro 26, 2006 Autor Denunciar Share Postado Dezembro 26, 2006 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 é seguinteImagem da MSN de erro:Imegem do MSN de erroPelo 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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alexandremanowar Postado Dezembro 28, 2006 Autor Denunciar Share Postado Dezembro 28, 2006 E aí 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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Janeiro 1, 2007 Denunciar Share Postado Janeiro 1, 2007 Teste se a linha não está vazia:if not (linha.Trim()="") then ...Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alexandremanowar Postado Janeiro 4, 2007 Autor Denunciar Share Postado Janeiro 4, 2007 Valeu funcionou legal!Quero agradecer a todos que me deram uma força nesse tópico, tanto pelos turoriais como pelas explicações. Nesse tópico aprendi muito valeu mesmo Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
alexandremanowar
E a e galera!
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;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!
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.