Добавлено: Чт мар 12, 2026 12:52
Orion9
Два вопроса, как к заму сансея
Вот причесаный ваш код. Не обращайте названия на названия переменных. Они просто из вашего примера. Код работает, но просто ужасно медленно. Нет идей, как его ускорить?
И еще. Вышеприведенная функция нифига не работает со значениями на кириллице. Но есть плагин, который лишь иногда крякозябры выводит. Можно ли взять значение из плагина и прогнать его через известную функцию фикса кодировки?
Два вопроса, как к заму сансея
Вот причесаный ваш код. Не обращайте названия на названия переменных. Они просто из вашего примера. Код работает, но просто ужасно медленно. Нет идей, как его ускорить?
Код: Выделить всё
Func FieldET(FileName, FieldIndex, UnitIndex)
Local gGeoOut = List(), gGeoData = List("", "")
Local gGeoList = List("Title", "Author")
Static lst, dat, idx
If StrPos(FileGetAttr(FileName), "D") Then Return
If FieldIndex = 1 + 60 Then
gGeoOut.Count = 0
gGeoOut.Text = ProcessExecGetOutput(util_ET, '"' & FileName & '"')
# OutputDebugString(gGeoOut.Text)
For idx = 0 To gGeoData.Count - 1
gGeoData[idx] = ""
Next
For geo In gGeoOut
If StrPos(geo, ":") Then
lst = StrTrim(StrPart(geo, ":", 1))
dat = StrTrim(StrPart(geo, ":", 2))
idx = gGeoList.IndexOf(lst)
If idx <> -1 Then gGeoData[idx] = dat
EndIf
Next
Endif
Return gGeoData[FieldIndex - 1 - 60]
EndFunc