Главная страница
    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.048 c
1-1105421082
Alex_d
2005-01-11 08:24
2005.01.23
Пропал dpr


1-1105457236
Jel
2005-01-11 18:27
2005.01.23
странное поведение ListView.OnColumnClick


1-1105360466
Yurij-7
2005-01-10 15:34
2005.01.23
Два действия на одной кнопке


3-1103266293
urmat
2004-12-17 09:51
2005.01.23
Импорт dbf на MS ACCESS


3-1103271252
Priest
2004-12-17 11:14
2005.01.23
Расширенные процедуры SQL Server





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