Существует ли более быстрая альтернатива ADODB.Stream? - PullRequest
0 голосов
/ 03 июня 2018

Я с некоторым успехом читаю и пишу файлы utf-8 в своем приложении VBA, используя ADODB.Stream.Единственная реальная проблема заключается в том, что ADODB.Stream довольно медленный по сравнению с собственным чтением файлов VBA.Обычно я бы использовал стандартные функции VBA Open, Input, Print, Close и т. Д., Которые достаточно быстрые.Я не пробовал ни одного API-интерфейса Windows или решения DLL, так как существует тенденция, правильная или неправильная, отключать вызовы API, библиотеки DLL и т. Д.

Я использую это для редактирования XML-файлов Open Office группыдокументов, прежде чем объединить их вместе.

Вот мои функции чтения и записи для файлов utf-8.Они были скопированы из Интернета.

Public Function readUtf8(fn As String) As String
    Dim stream As ADODB.stream: Set stream = New ADODB.stream
    stream.Charset = "utf-8"
    stream.Open
    On Error GoTo nofile
    stream.LoadFromFile fn
    readUtf8 = stream.ReadText() & ""
    stream.Close
    Set stream = Nothing
    Exit Function

nofile:
    stream.Close
    Set stream = Nothing
    readUtf8 = ""
End Function

Функция записи более или менее похожа на обратную.

Public Function writeUtf8(fn As String, txt As String) As Integer
    Dim stream As ADODB.stream: Set stream = New ADODB.stream
    stream.Charset = "utf-8"
    stream.Open
    stream.WriteText txt
    stream.SaveToFile fn
    stream.Close
    Set stream = Nothing
    writeUtf8 = 0

End Function

Есть ли более быстрая альтернатива ADODB.Stream?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...