Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.23;
Скачать: CL | DM;

Вниз

Соответствие имени файла заданой маске   Найти похожие ветки 

 
Anonimus ©   (2005-01-10 14:56) [0]

Добрый день.
Кто-нибудь может подсказать функцию для проверки сабжа.
Мне это представляется таким вот образом :
function IfMask(FileName, Mask : string): boolean;


 
begin...end ©   (2005-01-10 14:58) [1]

> Anonimus ©   (10.01.05 14:56)

Модуль Masks, функция MatchesMask.


 
Anonimus ©   (2005-01-10 15:15) [2]

Сенкс, щаз попробую


 
TUser ©   (2005-01-10 15:50) [3]

Попробую сам написать

function IsValidMask(FileName: string;
                    Mask: string;
                    StartInFile: integer = 1;
                    StartInMask: integer = 1): boolean;

function HasInPosition: boolean;
var i: integer;
begin
  i:=StartInFile; result:=true;
  while result and (i <= length(FileName)) do
    if IsValidMask(FileName,Mask,i,StartInMask+1) then
      result:=false
      else inc (i);
  result:=not result;
end;

begin
 result:=true;
 while result and
       (StartInName <= length(FileName)) and
       (StartInMask <= length(Mask)) do begin
   if Mask[StartInMask] = "*" then begin
      result:=HasInPosition;
      Exit;
      end;
   result:=(Mask[StartInMask] = "?") or
           (Mask[StartInMask] = FileName[StartInFile]);
   if result then begin
     inc (StartInMask);
     inc (StartInFile);
     end;
   end;
end;


 
Antonn ©   (2005-01-10 16:02) [4]

а так:) :

ext := lowercase(ExtractFileExt(name));  
if pos(ext, lowercase("*.wav;*.pls;*.m3u;") ) > 0     then begin  
///
 end;


 
TUser ©   (2005-01-10 16:12) [5]

ExtractFileExt звездочку не возвращает. Кроме того, [2] и [3] универсальнее.


 
Antonn ©   (2005-01-10 16:16) [6]


> ExtractFileExt звездочку не возвращает.

а она и не нужна. мой пример ищет расширение файла в строке расширений. и находит, если есть. да еще он попроще:)


 
Anonimus ©   (2005-01-10 17:19) [7]

TUser ©   (10.01.05 15:50) [3]
А смысл, если есть готовое =)

Antonn ©   (10.01.05 16:16) [6]
Маска файла подразумевает не только расширение, так например
~tmp_doc.doc = ~tmp.*
~tmp_doc.doc = *.doc

если нужно скопировать все ДОКи, то не обязательно копировать временные файлы Ворда



Страницы: 1 вся ветка

Текущий архив: 2005.01.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
1-1104762803
GanibalLector
2005-01-03 17:33
2005.01.23
ИМЯ файла...


1-1105345131
HF-Trade
2005-01-10 11:18
2005.01.23
У TMainMenu можно изменить высоту?


10-1081195735
ivan
2004-04-06 00:08
2005.01.23
ActiveX control


1-1105110167
race1
2005-01-07 18:02
2005.01.23
scroll


1-1105385578
Anonimus
2005-01-10 22:32
2005.01.23
Вопрос по TListView