使用一些文本在文本文件writeline中添加垂直文本的每个项目

时间:2013-05-14 11:02:57

标签: vb.net

我正在填充一个包含一些文字和列表的列表框;将输出保存到textfile(sObj.txt)

'Saving items of lb1 in a file under C:\temp
    Dim i As Integer
    W = New IO.StreamWriter("C:\temp\sObj.txt")
    For i = 0 To lb1.Items.Count - 1
        W.WriteLine(lb1.Items.Item(i))
    Next
    W.Close()

此文本文件包含3个(例如)条目,假设第1行为abc,第2行为def; ghi在第3行。

现在我想使用sObj.txt条目追加另一个文本文件(MPadd.txt),以便得到如下内容:

'Appending listbox items to the file MPadd.txt

    Using SW As New IO.StreamWriter("c:\temp\MPadd.txt", True)
        SW.WriteLine("some text" & abc & "some text")
        SW.WriteLine("some text" & def & "some text")
        SW.WriteLine("some text" & ghi & "some text")
    End Using

请帮助您正确使用它。感谢。

1 个答案:

答案 0 :(得分:1)

只需读取第一个文件中的所有行(只有三行所以它不是问题)然后循环遍历这些行,添加前缀和后缀文本,如你所愿

修改 关注你的上一个例子

Dim commands() = 
{
    "cdhdef -t ftpv2 -c r -f {0} -x ",
    "cdhdsdef -v CPUSRG {0} ",
    "cacls K:\AES\data\Cdh\ftp\{0}\Archive /E /G OSSUSER:C"
} 

Dim counter As Integer = 0
Dim objLines = File.ReadAllLines("C:\temp\sObj.txt")
Using SW As New IO.StreamWriter("c:\temp\MPadd.txt", True)
    ' Loop only for the number of strings in commands (max 3 now)
    for x = 0 to commands.Length - 1
        line = objeLines(x).Trim
        ' This check will prevent empty lines to be used for the output 
        If line <> string.Empty Then
            SW.WriteLine(string.Format(commands(counter), line))
            counter += 1
        End If
    Next
End Using

此示例使用composite formatting定义格式字符串和要插入其他值的渐进占位符。

当然,只有在输入文件中只有3行

时,这才有效