Главная страница
    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.064 c
1-1171994788
Andrey.Ru
2007-02-20 21:06
2007.04.15
Как получить первые 4 бита из байта...


9-1145892476
grisme
2006-04-24 19:27
2007.04.15
Помогите с моделями.


2-1174781634
sergeyxxx
2007-03-25 04:13
2007.04.15
Хелп с принтером


3-1169787958
Шмфтнср
2007-01-26 08:05
2007.04.15
сортировка в SQL по нескольким параметрам, поможите


2-1174917088
Sergionio
2007-03-26 17:51
2007.04.15
combobox и список таблиц





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