我有一个连续有 5 个值的 .CSV 文件,我想以某种方式修改文件,我应该在行的开头/结尾/中间添加一个值。
如何在 .CSV 文件中添加具有一组值的新行?
如何以简单的方式做到这一点?
没有什么神奇的方法可以将内容插入流文件(例如任何文本文件,包括 CSV 文件)的中间。
因此,这意味着您需要读取旧文件并在写入新文件时对其进行修改。
虽然有很多方法可以做到这一点:
最简单和最通用的方法是逐行读取/修改/写入。对于中小型文件,这可能比“blob”方法慢,但不会冒在必须处理大文件时可能导致的头痛的风险。
对于非常大的文件,这可以通过读取、解析、修改然后写入“块”来优化,以最小化 I/O 成本。但这也可能更复杂,无法正确编程。
这段代码可能会有所帮助,这不是答案,但会有所帮助
Dim line As String
Dim arrayOfElements() As String
Dim linenumber As Integer
Dim i As Integer
Dim opLine As String
Dim fso As New FileSystemObject
Dim ts As TextStream
line = ""
Open strPath For Input As #1 ' Open file for input
Do While Not EOF(1) ' Loop until end of file
linenumber = linenumber + 1
Line Input #1, line
arrayOfElements = Split(line, "|")
If Not linenumber = 1 Then
If UBound(arrayOfElements) = 2 Then
line = line & "|x|y"
opLine = opLine & line & vbCrLf
End If
Else
line = line & "|col4|col5"
opLine = opLine & line & vbCrLf
End If
环形
Close #1 ' Close file.
Set ts = fso.CreateTextFile(strPath, True)
ts.WriteLine (opLine)
ts.Close
fso需要关闭!
Set fso = Nothing