1

我正在使用 aria2 下载一堆文件,我现在的问题是我必须在 VBA 应用程序中对文件进行后处理。到目前为止,后处理逻辑已经用 VBA 编写,所以我正在寻找一种解决方案来读取 url,而不仅仅是从列表(由 VBA 导出)而不是从 csv 文件中读取,以使用唯一标识符存储它们。否则,如果发生名称冲突,我将无法找到下载的文件。除此之外,内容应存储在 sqlite 数据库中以提高处理速度。我说的是数千个总大小为数 GB 的文件,因此我的 VBA 应用程序的速度会受到磁盘 io 的影响。

我的问题有解决方案吗?

目前,我使用 golang 包装脚本处理问题,该脚本读取 csv 文件并使用 --out 参数生成一堆 aria2 实例来控制输出文件命名。

示例代码:

导出 csv

path = ThisWorkbook.path & "\" & dataFile

If FileHandler.FileExists(path) Then
    FileHandler.DeleteFile (path)
End If
FileHandler.CreateFile (path)

fileHandle = FreeFile
Open path For Append As #fileHandle

For WksIndex = 3 To 37
    If SettingGet("Enable", WksIndex) Then ' check if worksheets should be processed
        For Row = 1 To Worksheets(WksIndex).Cells(9999, 1).End(xlUp).Row
            If Worksheets(WksIndex).Cells(Row, 1).value <> "" And Worksheets(WksIndex).Cells(Row, 3).value <> "" Then
                Call FileHandler.AppendToFile( _
                    path, _
                    Worksheets(WksIndex).Cells(Row, 1).value & ";" & _
                    Worksheets(WksIndex).Cells(Row, 3).value, _
                    fileHandle _
                ) ' append ID;URL to file
            End If
        Next Row
    End If
Next WksIndex

Close #fileHandle
4

0 回答 0