我正在使用 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