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

Вниз

Расширения   Найти похожие ветки 

 
Steep ©   (2007-03-29 07:48) [0]

Как при открытии файла определить расширение?
т.е. воспользовавшись ExtractFileExt узнаем расширение, а потом пытаемся что-то сделать на определенное расширение (или группу расширени..)
(в плеере при открытии видио должна открываться форма видио, а если аудио, то чтоб и не появлялась
или чтобы производить какие-то действия в графической программе например рисовать)
а потом делать case format{string} of "avi","wma" :begin и тд.
но делфик выдает ordinal type required
и несовместимость форматов integer и string
вот... а как быть? Неужели каждый раз писать if str="***" then...


 
Elen ©   (2007-03-29 07:50) [1]


> Неужели каждый раз писать if str="***" then..

А почему нет?


 
ASoft   (2007-03-29 07:51) [2]

array, SET из всевозможных форматов


 
Steep ©   (2007-03-29 08:13) [3]


> А почему нет?

Как-то неудобно...


 
Steep ©   (2007-03-29 08:14) [4]


> array, SET из всевозможных форматов

Пасип, а как его потом сравнивать?


 
Джо ©   (2007-03-29 08:25) [5]

const
 Audio: array [0..2] of string = ("wav","mp3","ogg");
 Video: array [0..2] of string = ("avi","wmv","mts");

...

function IsExtension (Ext: string; Exts: array of string): Boolean;
var
 I: Integer;
begin
 Result := False;
 for I := Low(Exts) to High(Exts) do
   if Ext = Exts[I] then
   begin
     Result := True;
     Break
   end
end;

...

 if IsExtension(Ext,Audio) then ... else
 if IsExtension(Ext,Video) then  ... else
 ...


 
Steep ©   (2007-03-29 08:30) [6]

хм.. чето не подумал насчет перебора (все на case тянет ;) )
Спасибо!!


 
Джо ©   (2007-03-29 08:31) [7]

Продолжаем извращенческие фантазии :)

const
 Audio: array [0..2] of string = (".wav",".mp3",".ogg");
 Video: array [0..2] of string = (".avi",".wmv",".mts");

type
 TFileProcessorProc = procedure (FileName: string);

function IsExtension (Ext: string; Exts: array of string): Boolean;
var
 I: Integer;
begin
 Result := False;
 for I := Low(Exts) to High(Exts) do
   if Ext = Exts[I] then
   begin
     Result := True;
     Break
   end
end;

function HandleVideo (FileName: string): Boolean;
begin
 Result := IsExtension(ExtractFileExt(FileName),Video);
 if Result then
 begin
   // обрабатываем файл
 end;
end;

function HandleAudio (FileName: string): Boolean;
begin
 Result := IsExtension(ExtractFileExt(FileName),Audio);
 if Result then
 begin
   // обрабатываем файл
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 FileName: string;
begin
 if not HandleVideo(FileName) then
 if not HandleAudio(FileName) then
end;


 
Steep ©   (2007-03-29 08:35) [8]

Джо ©   ты крут!! я б тах не смог ;)


 
Джо ©   (2007-03-29 08:37) [9]

> [8] Steep ©   (29.03.07 08:35)
> Джо ©   ты крут!! я б тах не смог ;)

Показать на COM-интерфейсах? ;->


 
Steep ©   (2007-03-29 08:38) [10]


> Показать на COM-интерфейсах? ;->

Давай! я хоть пасматрю.. ;)


 
Джо ©   (2007-03-29 08:45) [11]

Нет, хватит уже извращений, пожалуй :)


 
ASoft   (2007-03-29 09:16) [12]

если расширение файла будет заглавными буквами? Имхо, нужно приводить к Lower или Uppercase.


 
Steep ©   (2007-03-29 11:11) [13]


> если расширение файла будет заглавными буквами? Имхо, нужно
> приводить к Lower или Uppercase.

Ты прав! молодец ASoft !


 
Правильный Вася   (2007-03-29 12:04) [14]


> Как-то неудобно...

неудобно штаны через голову одевать


 
begin...end ©   (2007-03-29 12:55) [15]

uses StrUtils;

if AnsiIndexText(Ext, ["avi", "wma"]) >= 0 then ...



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

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

Наверх




Память: 0.5 MB
Время: 0.049 c
4-1164319174
Goric
2006-11-24 00:59
2007.04.15
CreateService


2-1175002454
Tor
2007-03-27 17:34
2007.04.15
ComboBox с таблицей


2-1174974898
Neket
2007-03-27 09:54
2007.04.15
Небольшой вопрос по БД


2-1174633027
Ega23
2007-03-23 09:57
2007.04.15
Наследование фреймов


15-1174227698
Суслик
2007-03-18 17:21
2007.04.15
Дети в тестировании