D1P

|
Posted: Sun Oct 08, 2006 13:20 Post subject: |
|
|
Quote: | Имхо, это задача для super_wdx... |
Функциональности "каркулятора" в этом плагине нет. И обрабатывать получаемые значения (регэкспами или ещё как) он тоже не может.
На самом деле всё очень тривиально, вот, набросал код на коленке:
Code: |
library file_size;
uses
SysUtils,
Windows;
{$R *.res}
{$E wdx}
{------------------------------------------------------------------------------}
function ContentGetSupportedField(FieldIndex:integer;FieldName:pchar;Units:pchar;maxlen:integer):integer; stdcall;
Begin
Case FieldIndex of
0: Begin
Strlcopy (FieldName,'FileSize',MaxLen-1);
result:=8;{ft_string}
end;
else result:=0; {ft_nomorefields}
End;
End;
{------------------------------------------------------------------------------}
function ContentGetValue(FileName:pchar;FieldIndex,UnitIndex:integer;FieldValue:pbyte;maxlen,flags:integer):integer; stdcall;
var
FileInfo:tWIN32FINDDATA;
FileSize:Extended;
Begin
Windows.FindClose (FindFirstFile (FileName,FileInfo));
FileSize:=(FileInfo.nFileSizeHigh*MAXDWORD)+Fileinfo.nFileSizeLow;
FileSize:=FileSize*0.53; {Сюда вписываем формулу, либо, при желании, обработчик формулы, заданной в настройках}
Strlcopy (pchar (Fieldvalue), Pchar(CurrToStr(FileSize)),maxlen-1);
result:=8;{ft_string}
End;
exports
ContentGetSupportedField,
ContentGetValue;
begin
end.
|
Сохраняем в файл file_size.dpr, компилим любой версией Delphi, полученный WDX устанавливаем как обычно. _________________ База знаний о Total Commander
Блог |
|