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 

Ошибки программы Total Commander при работе с плагинами

 
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
gryja



Joined: 21 Nov 2016
Posts: 11

Post (Separately) Posted: Sat Mar 21, 2020 17:58    Post subject: Ошибки программы Total Commander при работе с плагинами Reply with quote

Я извиняюсь, что пишу это сообщение здесь, но мне посоветовали.

Здравствуйте. Пишу WDX-плагин, точнее, уже написал. Всё время думал, что у меня какая-то ошибка, я чего-то не понимаю - плагин периодически вёл себя не так, как нужно. На глюки тотала я не пенял. Но вчера полностью убедился. При поиске дубликатов при помощи WDX-плагина тотал выдаёт не все результаты. Это - точно. Вот что я написал в описании своего плагина: "При сравнении (точнее - при поиске) 4-х файлов с разной кодировкой, но одинаковым исходным хэшем ("Строка необработанных данных"), а также при наличии 5-го - "другого", на некоторых коэффициентах усреднения один из файлов "выкидывался" из группы дублей. При удалении 5-го, "другого" файла дубли "опять становятся" дублями."

Вот ссылка на плагин: https://yadi.sk/d/aQFqheQaO_2iEA

Добавлено спустя 2 минуты:

Данная ошибка есть на всех версиях Total Commander, начиная с восьмой.
Back to top
View user's profile Send private message
gryja



Joined: 21 Nov 2016
Posts: 11

Post (Separately) Posted: Wed Apr 22, 2020 15:21    Post subject: Дополнение к теме Reply with quote

Хочу прибавить ясности.

Компилируем данный код в Лазарусе (Lazarus) -> dll:

Code:
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.


Подключаем получившийся плагин к 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
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
Page 1 of 1

 
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