首页 > 解决方案 > Microsoft Access VBA - 编辑文本文件

问题描述

我正在尝试使用 Microsoft access vba 编辑文本文件。我想要做的是从文本文件中删除所有逗号。

我在网上尝试了一些代码,它非常适合我的测试文件。

用“”替换文件中的“,”的代码是什么</p>

但是,当我尝试在我的实际文本文件上运行它时,访问将变为无响应,我等了 2 小时,但仍然没有响应。

我不确定是不是因为我的数据太大,我的文本文件大小为 417MB。

有没有人可以给我建议?谢谢!

我正在使用的代码

Private Sub Click()

Dim sBuf As String
Dim sTemp As String
Dim iFileNum As Integer
Dim sFileName As String
    sFileName = "C:123\123\data.txt"
    iFileNum = FreeFile
    Open sFileName For Input As iFileNum
    Do Until EOF(iFileNum)
        Line Input #iFileNum, sBuf
        sTemp = sTemp & sBuf & vbCrLf
    Loop
    Close iFileNum
    sTemp = Replace(sTemp, ",", "")
    iFileNum = FreeFile
    Open sFileName For Output As iFileNum
    Print #iFileNum, sTemp
    Close iFileNum
End Sub

标签: vbams-access

解决方案


这一行:

sTemp = sTemp & sBuf & vbCrLf

可能是什么扼杀了你的表现。请参阅此处的讨论:使用预制的 Stringbuilder 类

您会发现逐行处理文件并写入不同的文件会更快。还可以保持原始文件完好无损,以防万一您犯了错误...

Private Sub Click()

    Dim sBuf As String
    Dim iFileNum As Integer, iFileNum2 As Integer
    Dim sFileName As String, sFileNameOut As String

    sFileName = "C:123\123\data.txt"
    sFileNameOut = "C:123\123\data_out.txt"

    iFileNum = FreeFile
    Open sFileName For Input As iFileNum

    iFileNum2 = FreeFile
    Open sFileNameOut For Output As iFileNum2

    Do Until EOF(iFileNum)
        Line Input #iFileNum, sBuf
        Write #iFileNum2, Replace(sBuf, ",", "")
    Loop

    Close iFileNum
    Close iFileNum2

End Sub

推荐阅读