Вверх ↑
Ответов: 1926
Рейтинг: 172
#1: 2017-09-23 22:39:31 ЛС | профиль | цитата
nesco, думаю, вот как должно быть:


procedure THIFilePartElm._work_doPart3;  // ext name
begin
FPart := ReadString(_Data, _data_FileName, '');
if FPart = '' then exit;
// FPart := ExtractFileExt(FPart);
if Pos('/', FPart) <> 0 then
FPart := rparse(FPart, '/')
else
FPart := rparse(FPart, '\');
if Pos('.', FPart) <> 0 then
begin
FPart := rparse(FPart, '.');
FPart := '.' + FPart;
end else FPart := '';
_hi_CreateEvent(_Data, @_event_onPart, FPart);
end;

procedure THIFilePartElm._work_doPart4; // ext name WOPoint
begin
FPart := ReadString(_Data, _data_FileName, '');
if FPart = '' then exit;
// FPart := ExtractFileExt(FPart);
// delete(FPart, 1, 1);
if Pos('/', FPart) <> 0 then
FPart := rparse(FPart, '/')
else
FPart := rparse(FPart, '\');

if Pos('.', FPart) <> 0 then FPart := rparse(FPart, '.')
else FPart := '';
_hi_CreateEvent(_Data, @_event_onPart, FPart);
end;

А то при отсутствии расширения даже пустой строки не выдавал.

А для path name WOExt:


procedure THIFilePartElm._work_doPart6;  // path name WOExt
var ne:string;
begin
FPart := ReadString(_Data, _data_FileName, '');
if FPart = '' then exit;

if Pos('/', FPart) <> 0 then
begin ne := rparse(FPart, '/'); FPart := FPart + '/'; end
else
begin ne := rparse(FPart, '\'); FPart := FPart + '\'; end;
if Pos('.', ne) <> 0 then rparse(ne, '.');
FPart := FPart + ne;
_hi_CreateEvent(_Data, @_event_onPart, FPart);
end;

Уже проверил у себя - работает.

ps. С форума неправильно вставляет в [ code] символы '<' и '>' - похожие, но не рабочие.
карма: 9
0