Я изо всех сил пытаюсь найти решение следующей проблемы, с которой я столкнулся.
У меня есть файл XML длиной около 30000 символов, который я хочу поместить в переменную String. В этой переменной я хочу заменить определенные символы другими символами, используя функцию замены.
Я использую приведенный ниже код, чтобы попытаться сделать это, но ни Replace, ни Instr не обнаруживают искомые символы. Что забавно, когда я сокращаю XML до 3000 символов, код работает.
Есть идеи, что может вызвать проблемы? Строки могут быть длиной до 2 миллиардов символов, так что понятия не имею, что здесь происходит ... Единственное, что мне приходит в голову, это то, что str - это String, а Instr / Replace требует в качестве аргумента выражение String. Может ли быть так, что существует ограничение длины String Expression, которую могут обрабатывать эти функции?
Dim str As String
Dim arrInvalidChars() As String
Dim arrValidChars() As String
Dim i As Integer
arrInvalidChars = Split(Expression:="ä, ü, ö, ß, é, ç", Delimiter:=", ")
arrValidChars = Split(Expression:="ae, ue, oe, ss, e, c", Delimiter:=", ")
For i = LBound(arrInvalidChars) To UBound(arrInvalidChars)
On Error Resume Next
Debug.Print InStr(1, str, arrInvalidChars(i), vbTextCompare)
str = Replace(str, arrInvalidChars(i), arrValidChars(i), , , vbTextCompare)
On Error GoTo 0
Next i