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

Вниз

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

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

Наверх





Память: 0.48 MB
Время: 0.048 c
15-1174410324
@!!ex
2007-03-20 20:05
2007.04.15
Препод сказал: Возражаю.


15-1174651657
Bless
2007-03-23 15:07
2007.04.15
А у нас пыльная буря!


15-1174469649
isasa
2007-03-21 12:34
2007.04.15
Пароль SYSDBA для Interbase?


2-1174552885
sergeyst
2007-03-22 11:41
2007.04.15
TRegistry


1-1171808925
Wahnsinng
2007-02-18 17:28
2007.04.15
Где в реестре можно отключить зук в Internet Explorere?





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