将组合框中的信息写入文本文件

时间:2011-06-15 03:04:04

标签: vb.net visual-studio-2010 text combobox

我正在尝试将组合框中的信息修改为文本文件,以便保存。如果组合框中的信息是John,Marry,Jack我希望它出现在文本文件中,如下所示:

John
Mary
Jack

我目前使用的代码在文本文件

中给出了JohnMaryJack的结果
For Each item As Object In cmbworld.Items
        Dim test As String
        test = item
        sb.AppendFormat("{0}", item)
        Dim FILE_NAME As String = "D:\Documents\test.txt"
        If System.IO.File.Exists(FILE_NAME) = True Then
            Dim objWriter As New System.IO.StreamWriter(FILE_NAME)
            objWriter.Write(test)
            objWriter.WriteLine()
            objWriter.Close()
            MsgBox("Text written to file")
        Else
            MsgBox("File Does Not Exist")
        End If

    Next

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

首先,我会将文件写入For Each-loop。这样你只需要写一次文件。 其次,您可以稍微调整@BiggsTRC的答案

sb.AppendFormat("{0} {1}", item, Environment.NewLine)

此外,您使用变量test来写入文本文件,而不是您使用的stringbuilder。这样,格式化永远不会进入文件。

所以你的代码看起来像这样:

Dim sb as new StringBuilder()

For Each item As Object In cmbworld.Items
        'Dim test As String
        'test = item
        sb.AppendFormat("{0} {1}", item, Environment.NewLine)
Next

Dim FILE_NAME As String = "D:\Documents\test.txt"
If System.IO.File.Exists(FILE_NAME) = True Then
    Dim objWriter As New System.IO.StreamWriter(FILE_NAME)
    objWriter.Write(sb.ToString()) 'Use the stringbuilder here
    objWriter.WriteLine()
    objWriter.Close()
    MsgBox("Text written to file")
Else
    MsgBox("File Does Not Exist")
End If

可能会有一些语法错误,因为我很长一段时间都在编写VB而且目前还没有VS出现,但我认为你得到了图片; - )

答案 1 :(得分:0)

我认为你只需改变这一行:

sb.AppendFormat("{0}", item)

是这样的:

sb.AppendFormat("{0}\r\n", item)

(注意{0}之后的空格)

这会在每个人的姓名之后给你一个空格,这样你最终会在每一行中找到一个名字,并在最后一行之后返回。

答案 2 :(得分:0)

IO.File.WriteAllLines(filename, (From p As String In cmbworld.Items).ToArray)