Я извиняюсь, что пишу это сообщение здесь, но мне посоветовали.
Здравствуйте. Пишу WDX-плагин, точнее, уже написал. Всё время думал, что у меня какая-то ошибка, я чего-то не понимаю - плагин периодически вёл себя не так, как нужно. На глюки тотала я не пенял. Но вчера полностью убедился. При поиске дубликатов при помощи WDX-плагина тотал выдаёт не все результаты. Это - точно. Вот что я написал в описании своего плагина: "При сравнении (точнее - при поиске) 4-х файлов с разной кодировкой, но одинаковым исходным хэшем ("Строка необработанных данных"), а также при наличии 5-го - "другого", на некоторых коэффициентах усреднения один из файлов "выкидывался" из группы дублей. При удалении 5-го, "другого" файла дубли "опять становятся" дублями."
Вот ссылка на плагин: https://yadi.sk/d/aQFqheQaO_2iEA
Добавлено спустя 2 минуты:
Данная ошибка есть на всех версиях Total Commander, начиная с восьмой.
Ошибки программы Total Commander при работе с плагинами
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Дополнение к теме
Хочу прибавить ясности.
Компилируем данный код в Лазарусе (Lazarus) -> dll:
Подключаем получившийся плагин к Total Commander.
Затем создаём папку на рабочем столе, а в этой папке - 5 пустых файлов с именами: 1.htm, 2.htm, 3.htm, 4.htm, 5.txt
Если бы Total Commander работал правильно, то при поиске дубликатов с применением данного WDX-плагина он выдал бы в качестве результатов 4 htm-файла. Ан нет. Только три.
Архив с исходником и тестовыми файлами: https://yadi.sk/d/IZTk2y_3NZt_Hg
Компилируем данный код в Лазарусе (Lazarus) -> dll:
Код: Выделить всё
Library TestForError;
{$EXTENSION 'wdx'}
Uses
SysUtils;
{=================================}
Function ContentGetSupportedField(FieldIndex: Integer; FieldName: PChar; Units: PChar; MaxLen: Integer): Integer; StdCall;
Begin
If FieldIndex > 100 Then
Result := 0
Else
Begin
If FieldIndex = 0 Then StrPCopy(FieldName, 'Строка необработанных данных');
If FieldIndex = 1 Then StrPCopy(FieldName, 'Отсортированный массив данных');
If FieldIndex > 1 Then StrPCopy(FieldName, 'Усреднение значений на ' + IntToStr(FieldIndex - 1));
Result := 8;
End;
End;
{=================================}
Function ContentGetValue(FilePath: PChar; FieldIndex, UnitIndex: Integer; FieldValue: PChar; MaxLen, Flags: Integer): Integer; StdCall;
Var
HashString: String = '';
Begin
Result := 8;
HashString := '0003060U101L1R202F2O';
If ExtractFileExt(FilePath) = '.txt' Then HashString := '0003060X101L1O232F2R';
StrPCopy(FieldValue, HashString);
End;
{=================================}
Exports
ContentGetValue,
ContentGetSupportedField;
{=================================}
End.
Затем создаём папку на рабочем столе, а в этой папке - 5 пустых файлов с именами: 1.htm, 2.htm, 3.htm, 4.htm, 5.txt
Если бы Total Commander работал правильно, то при поиске дубликатов с применением данного WDX-плагина он выдал бы в качестве результатов 4 htm-файла. Ан нет. Только три.
Архив с исходником и тестовыми файлами: https://yadi.sk/d/IZTk2y_3NZt_Hg
SortUpper=1
При работе ключа SortUpper=1 в секции [Configuration] данная ошибка присутствует. При значениях 0, 2 и 3 - ошибка отсутствует.
Я, конечно, понимаю, что можно предварительно выставлять нужный ключ для нормальной работы плагина, но хотелось бы стабильности: кто знает, может быть и с другими ключами плагин работает неверно, просто ошибку не удаётся засечь.
Я, конечно, понимаю, что можно предварительно выставлять нужный ключ для нормальной работы плагина, но хотелось бы стабильности: кто знает, может быть и с другими ключами плагин работает неверно, просто ошибку не удаётся засечь.
- Вахмурка
- Сообщения: 2587
- Зарегистрирован: Пн дек 27, 2004 14:47
- Откуда: Большая деревня Москва
- Контактная информация:
Re: Ошибки программы Total Commander при работе с плагинами
2gryja
Почему бы тебе не обратиться к разработчику напрямую? Кроме него, ошибки в программе никто не исправит
Почему бы тебе не обратиться к разработчику напрямую? Кроме него, ошибки в программе никто не исправит
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)