Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

PCREsearch как пользоваться?
Goto page Previous  1, 2, 3, 4
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Monarch-LFV



Joined: 22 Jul 2019
Posts: 227

Post (Separately) Posted: Wed Mar 09, 2022 04:37    Post subject: Reply with quote

Skif_off
Да, вы правы, вставил 2 байта в hex-редакторе и заработало. Попробую связаться с автором плагина.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Wed Mar 09, 2022 06:11    Post subject: Reply with quote

Monarch-LFV
Возможно, есть смысл со скрипта начать? Типа
Code:
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 минут:

Чутка оптимизировал, чтобы поиск закрывающего тега шёл не с самого начала.
Back to top
View user's profile Send private message
Monarch-LFV



Joined: 22 Jul 2019
Posts: 227

Post (Separately) Posted: Wed Mar 09, 2022 06:57    Post subject: Reply with quote

Skif_off
За скрипт для WinScriptsAdv большое спасибо, немного адаптировал: отключил ошибку (на всякий случай, версии файлов DWG бывают разные, воможно принцип отличается), чтение большего массива из файла (16кБ, где-то в этих пределах в файле лежат нужные данные) и убрал последний символ "<"
Code:
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 еще настройка:
Code:
; allow binary zeros (two joined zero bytes) for detecting UTF-16 files (does not affect UTF-8 detection)
UnicodeZerosValid=false

Поменял на true, тестовый файл стал правильно читаться, но вот dwg также не считываются... подвох все же есть с нулями где-то. Но, думаю, уже и не надо, скрипт выше работает - и это главное.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Wed Mar 09, 2022 16:19    Post subject: Reply with quote

Monarch-LFV wrote:
и убрал последний символ "<"

Прошу прощения, обсчитался (не проверял, с телефона) Smile, насчёт 16000-16кб: метод Read читает по символам, не по байтам, по идее - для двухбайтной UTF-16 тут должно быть достаточно 8000.

За UnicodeZerosValid не подскажу, но выглядит так, будто связан с чтением бинарных файлов, только там 00 (или 0000 для двухбайтной) может быть не в конце строки.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4
Page 4 of 4

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group