none
Salvar listbox como arquivo TXT RRS feed

  • Pergunta

  •  Bom dia a todos ...

    Como posso fazer pra salvar os valores de uma lista em um arquivo txt mantendo sua ordem ?

    preciso usar o savefiledialog para que o usuario possa determinar o local onde deseja salvar.

     

     

     ja tentei fazer o processo como se fosse salvar o texto de um textbox porem , altero o textbox pela variavel i  , que percorre o listbox. 

     

     Dim i as integer
    
     for i =1 to Listbox1.items.Count -1 

     Porem , o arquivo é salvo e dentro do arquivo onde deveriam estar os items fica apenas um "False" .

     

     abraços.

     


     

     

     

    quinta-feira, 9 de dezembro de 2010 15:51

Respostas

  • Falta o for eac, que vai pegar todos os elementos dentro do control listbox:

    Private Sub btnCaminhoSalvar2_Click(sender As Object, e As EventArgs)
    	For Each texto As String In listBoxListar.Items
    		Dim caminho As [String] = textBoxCaminhoSalva2.Text
    		Dim sw As StreamWriter = Nothing
    		sw = New StreamWriter(String.Format("{0}\" & Me.textBoxNome.Text.ToString() & ".txt", caminho))
    		sw.Write(texto)
    		sw.Flush()
    		sw.Close()
    	Next
    End Sub


    Just Be Humble Malange!
    sexta-feira, 10 de dezembro de 2010 15:08
    Moderador
  • Da forma que está fazendo, pode usar assim:

        Dim quebra As String = Chr(13) & Chr(10)
        Dim SFD As New SaveFileDialog


        SFD.InitialDirectory = "C:\"
        SFD.FileName = "Jogos.txt"
        SFD.Filter = "(*txt)|*.txt|Todos os Arquivos (*.*)|*.*"
        If SFD.ShowDialog() = Windows.Forms.DialogResult.OK Then
          Dim m_streamWriter As New StreamWriter(SFD.FileName)

          For Each item As String In ListBox1.Items
            m_streamWriter.WriteLine(item)
          Next

          m_streamWriter.Flush()
          m_streamWriter.Close()
        End If


    Bruno Ferreira de Souza
    MSP - Microsoft Student Partner
    MCTS .NET Framework - Windows Applications
    www.maestrodotnet.com.br
    @BrunoMaestro
    sábado, 11 de dezembro de 2010 03:18

Todas as Respostas

  • O procedimento e o mesmo esta em csharp mais a logica e a mesma:

    http://social.msdn.microsoft.com/Forums/pt-BR/vscsharppt/thread/47e122f1-8b6c-4e7d-b5cb-dc0a7c9544e1/


    Just Be Humble Malange!
    quinta-feira, 9 de dezembro de 2010 15:55
    Moderador
  •  

    Veja como ficou :

    Dim quebra As String = Chr(13) & Chr(10)
        Dim SFD As New SaveFileDialog
        
    
        SFD.InitialDirectory = "C:\"
        SFD.FileName = "Jogos.txt"
        SFD.Filter = "(*txt)|*.txt|Todos os Arquivos (*.*)|*.*"
        If SFD.ShowDialog() = Windows.Forms.DialogResult.OK Then
          Dim fs As New FileStream(SFD.FileName, FileMode.OpenOrCreate, FileAccess.Write)
          Dim m_streamWriter As New StreamWriter(fs)
          m_streamWriter.Flush()
          m_streamWriter.BaseStream.Seek(0, SeekOrigin.Begin)
          m_streamWriter.Write(ListBox1.SelectedItem)
          m_streamWriter.Flush()
          m_streamWriter.Close()
        End If
    

     O problema é que sele so salva o item selecionado .

    Se eu seleciono todos os items ele salva e aparece apenas uma linha assim :

    ListBox1.WindowsForms.ObjectCollection

     Alguma dica ?

    sexta-feira, 10 de dezembro de 2010 14:49
  • Falta o for eac, que vai pegar todos os elementos dentro do control listbox:

    Private Sub btnCaminhoSalvar2_Click(sender As Object, e As EventArgs)
    	For Each texto As String In listBoxListar.Items
    		Dim caminho As [String] = textBoxCaminhoSalva2.Text
    		Dim sw As StreamWriter = Nothing
    		sw = New StreamWriter(String.Format("{0}\" & Me.textBoxNome.Text.ToString() & ".txt", caminho))
    		sw.Write(texto)
    		sw.Flush()
    		sw.Close()
    	Next
    End Sub


    Just Be Humble Malange!
    sexta-feira, 10 de dezembro de 2010 15:08
    Moderador
  • Amigo qual a utilidade da variavel "caminho " e da linha:

    sw = New StreamWriter(String.Format("{0}\" & Me.textBoxNome.Text.ToString() & ".txt", caminho))

    O local pra ser salvo o arquivo e determinado pelo usuario , por isso ja inseri o savefiledialog pra poder haver essa interação.

    Dim
     SFD As
     New
     SaveFileDialog


    SFD.InitialDirectory = "C:\"
    SFD.FileName = "Jogos.txt"
    SFD.Filter = "(*txt)|*.txt|Todos os Arquivos (*.*)|*.*"

     

     Eu nao consegui entender seu codigo nem usar , mesmo porque vi varias coisas ai que nao deveriam existir , porem nao sei fazer a manutenção do codigo , sou iniciante.

    Eu sabia que faltava o for each para percorrer a lista tudo mais , porem , ainda nao consegui fixar essas ideias/codigos na cabeça.

     

     desde ja agradeço , obrigado !

     

    sábado, 11 de dezembro de 2010 01:10
  • Da forma que está fazendo, pode usar assim:

        Dim quebra As String = Chr(13) & Chr(10)
        Dim SFD As New SaveFileDialog


        SFD.InitialDirectory = "C:\"
        SFD.FileName = "Jogos.txt"
        SFD.Filter = "(*txt)|*.txt|Todos os Arquivos (*.*)|*.*"
        If SFD.ShowDialog() = Windows.Forms.DialogResult.OK Then
          Dim m_streamWriter As New StreamWriter(SFD.FileName)

          For Each item As String In ListBox1.Items
            m_streamWriter.WriteLine(item)
          Next

          m_streamWriter.Flush()
          m_streamWriter.Close()
        End If


    Bruno Ferreira de Souza
    MSP - Microsoft Student Partner
    MCTS .NET Framework - Windows Applications
    www.maestrodotnet.com.br
    @BrunoMaestro
    sábado, 11 de dezembro de 2010 03:18
  •  Obrigado bruno, deu certinho.

       valeu.

    sábado, 11 de dezembro de 2010 19:27