AkulaBig
|
Posted: Thu Apr 24, 2025 21:38 Post subject: |
|
|
Orion9 wrote: | "BigHint", которое я давно уже поменял на "JoinHint" |
Это я заметил сразу. Не в этом дело.
Orion9 wrote: | чтобы сохранить старый хинт с полями плагина TCMediaInfo как хинт по умолчанию |
Скорей всего у всех так. Но мне вариант без доп клавиш больше нравится.
Orion9 wrote: | P.S. Не знаю, почему у вам CapsLock не работает. Только что еще раз проверил - у меня всё норм. |
Я даже проверять не стал, как просек фишечку про клавиши-модификаторы.
Orion9 wrote: | Русский добавить можно где-то так |
Вот ведь обидно как. Ведь для CLI я в свое время разобрался и написал:
Code: |
"MediaInfo.exe" "--Language=file://ru.csv" "--Complete=0" "bestcity.mp3" --LogFile=Complete0.txt"
|
А тут не догадался, что надо полный путь прописать. Похоже у меня там библиотека и язык лежали рядом со скриптом. А я как только уже не попробовал. Этот-то вариант не заработал сразу.
Orion9 wrote: | "d" нужно отдельно парсить. |
Я это уже понял. Так как сейчас тестовые файлы на С кинул для удобства тестирования. Сейчас эти шероховатости устраню, надо будет решать с крякозябрами. В au3 я эту проблему решил, посмотрим, можно-ли здесь это сделать.
Orion9 wrote: | Как я понял, у каждого файла свои. В этом вся и сложность задачи. Без шаблонов и фильтров источников не обойтись. |
Ну да, у меня просто сомнение возникло. Видимо можно связать их между собой, но головняк это. Нет смысла с этим связываться.
Добавлено спустя 22 минуты:
Язык прописал:
Code: |
Local lng_MI ="file://" & COMMANDER_PATH & "\Utilities\MediaInfo\ru.csv"
DllCall(sLib & '\MediaInfo_Option', 'ptr', hMI, "wstr", "Language", "wstr", lng_MI, "wstr")
|
Добавлено спустя 1 час 32 минуты:
Вот причесанный код. Язык добавлен. Парсинг поправлен:
Code: |
Func JoinHint(FileName, FieldIndex, UnitIndex)
Static pipe
Static sLib = "MediaInfo" & (auX64 ? "" : "_i386") & ".dll"
Static hLib = DllCall("LoadLibrary", _
"wstr", COMMANDER_PATH & "\Utilities\MediaInfo\" & sLib, _
"ptr")
If hLib = 0 Then
Return "Error LoadLibrary " & sLib
EndIf
If FieldIndex = 1 Then
Local hMI = DllCall(sLib & "\MediaInfo_New", "ptr")
If hMI = 0 Then
Return "MediaInfo_New returned 0"
Endif
Local lng_MI ="file://" & COMMANDER_PATH & "\Utilities\MediaInfo\ru.csv"
DllCall(sLib & "\MediaInfo_Option", _
"ptr", hMI, "wstr", "Language", "wstr", lng_MI, _
"wstr")
If DllCall(sLib & "\MediaInfo_Open", _
"ptr", hMI, "wstr", FileName, _
"uint") <> 1 Then
DllCall(sLib & "\MediaInfo_Delete", "ptr", hMI)
Return "MediaInfo_Open failed to open file " & FileName
EndIf
DllCall(sLib & "\MediaInfo_Option", _
"ptr", hMI, "wstr", "Complete", "wstr", "0", _
"wstr")
pipe = DllCall(sLib & "\MediaInfo_Inform", _
"ptr", hMI, "uint", 0, _
"wstr")
DllCall(sLib & "\MediaInfo_Delete", "ptr", hMI)
Endif
Return TrimSpaces(StrPart(pipe, auLF, FieldIndex))
EndFunc
Func TrimSpaces(String)
Local a, b
If Not StrPos(String, ":") Then Return String
a = StrPart(String, ": ", 1)
b = StrPart(String, ": ", 2)
Return StrTrim(a) & ": " & StrTrim(b)
EndFunc
|
|
|