Главная страница
    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.068 c
1-1104923290
t4
2005-01-05 14:08
2005.01.23
Расщепление строки


3-1103532135
Developerr
2004-12-20 11:42
2005.01.23
Как програмно добавить поле в базу данных?


14-1104905410
ghg
2005-01-05 09:10
2005.01.23
сколько весит первый update для D2005?


14-1104401819
DD
2004-12-30 13:16
2005.01.23
Сохранение файла поверх старого???


4-1102250021
DuchmanSoft
2004-12-05 15:33
2005.01.23
Программа в программе





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский