2014-06-22 34 views
0

Hy! 如何使用“,”隔开将列表框项目保存到文本文件?Lisbox项目保存为带有“,”的文本文件seprarate

我的代码:

Using sfd As SaveFileDialog = New SaveFileDialog 

     With sfd 
      .FileName = String.Empty 
      .Filter = "Text|*.txt" 
      .InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) 
     End With 

     If sfd.ShowDialog = DialogResult.OK Then 
      Dim logint() As String = Login.Text.Split({Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries) 
      Dim passt() As String = Pass.Text.Split({Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries) 
      Dim contents As String = String.Empty 
      For x As Integer = 0 To logint.Length - 1 
       contents &= String.Format("{1},{2}{0}", Environment.NewLine, logint(x), passt(x)) 
      Next 
      If contents.Length > 0 Then 
       contents = contents.Remove(contents.Length - 1) 
      End If 
      My.Computer.FileSystem.WriteAllText(sfd.FileName, contents, False) 
     End If 
    End Using 

它的工作,如果我点击列表框的项目,但如果我不这样做,那么项目保存不起作用。

+0

当然它不”如果你不选择一个项目,保存任何东西。 “文本”属性包含所选项目的显示文本。如果没有选定的项目,你期望它包含什么?你试图将所有的项目保存在列表框中还是只保存选定的项目? – jmcilhinney

+0

谢谢。所有列表框项目。我要求一个例子? – user3750275

回答

0

试试这个:

If sfd.ShowDialog = DialogResult.OK Then 
    Dim contents As String = String.Empty '*** 
    Dim c As Integer = Login.Items.Count '*** 
    Dim y As Integer '*** 
    For y = 0 To c - 1 '*** 
     Dim logint() As String = Login.Items.Item(y).Split({Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries) '*** 
     Dim passt() As String = Pass.Items.Item(y).Split({Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries) '*** 
     For x As Integer = 0 To logint.Length - 1 
      contents &= String.Format("{1},{2}{0}", Environment.NewLine, logint(x), passt(x)) 
     Next 
     If contents.Length > 0 Then 
      contents = contents.Remove(contents.Length - 1) 
     End If 
    Next '*** 
     My.Computer.FileSystem.WriteAllText(sfd.FileName, contents, False) 
End If 

变化都标有'***

0

你可以用一点LINQ做它在一个单行:

IO.File.WriteAllLines("file path here", 
         Enumerable.Range(0, Login.Items.Count). 
           Select(Function(n) String.Format("{0},{1}", 
                    Login.Items(n), 
                    Pass.Items(n))))