gryja
|
Posted: Wed Apr 22, 2020 15:21 Post subject: Дополнение к теме |
|
|
Хочу прибавить ясности.
Компилируем данный код в Лазарусе (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 |
|