2014-06-22 38 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))))