Цитата Iska:
И попросите коллегу megaloman убрать конвертацию ANSI→UTF8 из кода. »
|
Не надо просить!!! Уже сделал
Код:

FileIn = "Z:\Soft_Arc\Словарь\1251.txt"
nword = 3
On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
With FSO.OpenTextFile(FileIn, 1, False)
If Err.Number <> 0 Then
MsgBox "File " + FileIn + vbCrLf + Err.Description + "(" + CStr(Err.Number) + ")"
WScript.Quit 2
End If
On Error GoTo 0
Alls = Split(.ReadAll, vbCrLf)
.Close
End With
On Error GoTo 0
With CreateObject("VBScript.RegExp")
.IgnoreCase = True
.Global = True
Mask = ""
Do
Mask = InputBox("Маска содержит русские буквы и точки, например" + vbCrLf + ".и...ц", "Поиск слов по маске", Mask)
If Mask = "" Then Exit Do
.Pattern = "^" + Trim(Mask) + "$"
out = ""
i = 0
For Each word In Alls
word = Trim(word)
If .Test(word) Then
If i = 0 Then out = out + word Else out = out + vbTab + word
i = i + 1
If i = 3 Then
i = 0
out = out + vbCrLf
End If
End If
Next
If out = "" Then
R = MsgBox("По маске " + """" + Mask + """" + vbCrLf + "Ничего не найдено", vbRetryCancel)
Else
R = MsgBox(out, vbRetryCancel, "Маска " + """^" + Trim(Mask) + "$"". Найдено:")
End If
If R = 2 Then Exit Do
Loop
End With
Словарь, скрипт 1251. На моём десятилетнем ноуте загрузка словаря занимает ~30сек, поиск ~15. Но с Вашими проблемами с кодировками не уверен, что у Вас получится - проблемы в консерватории.
Кстати, findstr и словарь в 866 кодировке работает в 3 раза быстрее.
Мой Excel это кол-во строк не съел. Не знаю, может в настройках можно нашаманить.