Страница 4 из 4
Добавлено: Ср мар 09, 2022 03:37
Monarch-LFV
Skif_off
Да, вы правы, вставил 2 байта в hex-редакторе и заработало. Попробую связаться с автором плагина.
Добавлено: Ср мар 09, 2022 05:29
Skif_off
Monarch-LFV
Возможно, есть смысл со скрипта начать? Типа
Код: Выделить всё
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TextStream = FSO.OpenTextFile(filename, 1, False, -1)
Str = TextStream.Read(256)
TextStream.Close
N1 = InStr(Str, "<string>")
If IsNumeric(N1) = False Then WScript.Quit
N2 = InStr(N1, Str, "</string>")
content = Mid(Str, N1 + 8, N2 - (N1 + 7))
Добавлено спустя 19 минут:
Чутка оптимизировал, чтобы поиск закрывающего тега шёл не с самого начала.
Добавлено: Ср мар 09, 2022 05:57
Monarch-LFV
Skif_off
За скрипт для WinScriptsAdv большое спасибо, немного адаптировал: отключил ошибку (на всякий случай, версии файлов DWG бывают разные, воможно принцип отличается), чтение большего массива из файла (16кБ, где-то в этих пределах в файле лежат нужные данные) и убрал последний символ "<"
Код: Выделить всё
on error resume next
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TextStream = FSO.OpenTextFile(filename, 1, False, -1)
Str = TextStream.Read(16000)
TextStream.Close
N1 = InStr(Str, "<string>")
If IsNumeric(N1) = False Then WScript.Quit
N2 = InStr(N1, Str, "</string>")
content = Mid(Str, N1 + 8, N2 - (N1 + 8))
Работает как часы.
Еще, по поводу плагина в теме (PCREsearch): есть в ini еще настройка:
Код: Выделить всё
; allow binary zeros (two joined zero bytes) for detecting UTF-16 files (does not affect UTF-8 detection)
UnicodeZerosValid=false
Поменял на
true, тестовый файл стал правильно читаться, но вот dwg также не считываются... подвох все же есть с нулями где-то. Но, думаю, уже и не надо, скрипт выше работает - и это главное.
Добавлено: Ср мар 09, 2022 15:19
Skif_off
Monarch-LFV писал(а):и убрал последний символ "<"
Прошу прощения, обсчитался (не проверял, с телефона)

, насчёт 16000-16кб: метод Read читает по символам, не по байтам, по идее - для двухбайтной UTF-16 тут должно быть достаточно 8000.
За UnicodeZerosValid не подскажу, но выглядит так, будто связан с чтением бинарных файлов, только там 00 (или 0000 для двухбайтной) может быть не в конце строки.
Добавлено: Ср янв 14, 2026 18:05
reutov-tv
Добрый день. Настроил плагин, но пока имеются проблемы
1. с отображением кириллицы (кракозябры на выходе).
2. Непонятное отображение цифровых атрибутов.
Вариант настроек А:
Атрибуты состоящие из цифр (напр. "745418.006-014") - НЕ отображаются. При этом смешанные атрибуты (напр. "PRT01_PN") - отображаются нормально.
Вариант настроек Б:
Атрибуты состоящие из цифр (напр. "745418.006-014") - отображаются нормально. При этом смешанные атрибуты (напр. "PRT01_PN") - НЕ отображаются.
Прошу подсказать по след.моментам:
-Как корректно обрабатывать ANSI (Windows‑1251) содержимое в PCREsearch, чтобы в результатах показывалась кириллица, а не «РћС…»?
-Можно ли задать кодовую страницу для чтения содержимого (отдельно от UTF‑8 ini) или лучше всегда использовать xdoc/Oracle OiT для бинарных файлов?
-Есть ли рекомендуемый способ, чтобы один regex для определенного атрибута одинаково корректно ловил и текстовые значения (напр. PRT01_PN), и чисто цифровые (напр. 745418.006‑014)?