Главная страница
    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.038 c
14-1104135770
NewDelpher
2004-12-27 11:22
2005.01.23
Рэй Конопка


14-1104906582
syte_ser78
2005-01-05 09:29
2005.01.23
емейлы харьковских компьютерных фирм


3-1103263891
Frozzen
2004-12-17 09:11
2005.01.23
Проблемы работы с Tdbf!


3-1103350837
SarDoX
2004-12-18 09:20
2005.01.23
access + delphi + ado


14-1104767793
AlterEgo of WondeRu
2005-01-03 18:56
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский