Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.044 c
4-1102071646
ecm
2004-12-03 14:00
2005.01.23
DLL_PROCESS_DETACH - не ловится... :(


1-1104923290
t4
2005-01-05 14:08
2005.01.23
Расщепление строки


10-1081171895
LittleSpo
2004-04-05 17:31
2005.01.23
COM и события


1-1104990911
Алина
2005-01-06 08:55
2005.01.23
Edit-Combobox


14-1105001181
Vaitek
2005-01-06 11:46
2005.01.23
Devices





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский