Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.07.2010, 00:28   #1
VadEr
Форумчанин
 
Аватар для VadEr
 
Регистрация: 24.03.2009
Сообщений: 375
По умолчанию Типы файлов (Delphi)

Уважаемые знатоки!
Предположим имеются файлы различного типа (картинки, видео, музыка и пр.), но не имеющие расширения. Существуют способы узнать тип файла и его расширение? Если да, поделитесь пожалуйста.
VadEr вне форума Ответить с цитированием
Старый 16.07.2010, 00:41   #2
Vikenty
Заслуженный флудер
Участник клуба
 
Аватар для Vikenty
 
Регистрация: 31.03.2010
Сообщений: 1,473
По умолчанию

используй ExtractFileExt(FileName);
Vikenty вне форума Ответить с цитированием
Старый 16.07.2010, 00:43   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

расширение легко, а вот настоящую сущность очень трудно.(именно узнать)
легко проверить является ли файл такого то типа.(например BitMaP)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.07.2010, 01:02   #4
VadEr
Форумчанин
 
Аватар для VadEr
 
Регистрация: 24.03.2009
Сообщений: 375
По умолчанию

Цитата:
Сообщение от Vikenty Посмотреть сообщение
используй ExtractFileExt(FileName);
в имени файла нет расширения

Цитата:
легко проверить является ли файл такого то типа
т.е. а как проверить?
VadEr вне форума Ответить с цитированием
Старый 16.07.2010, 01:12   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну скажем для BMP/JPG/PNG и многих других это просто проверить сигнатуру файла в известном месте(обычно начало)
ну а для mp3 нужно найти первый mp3 фрэйм(там данные так пишутся).

говорите конкретные форматы, ибо их миллиарды, тогда поговорим
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.07.2010, 01:20   #6
VadEr
Форумчанин
 
Аватар для VadEr
 
Регистрация: 24.03.2009
Сообщений: 375
По умолчанию

- а как проверяется сигнатура и фрэймы?
- к примеру форматы avi, mp4, jpeg, mp3, flv, wmv
VadEr вне форума Ответить с цитированием
Старый 16.07.2010, 01:30   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

загрузка куска файла в буфер и поиск по нему искомого, если не нашли то грузим след кусок. и тд(это фрейм)
для сигнатур достаточн загрузить некоторое количество байт сначало файла(например GIF-3байта, у BMP-2) и сравнить с некоторым значением(у GIF-сравниваем с 'GIF', у BMP вроде BM(или учитывая что берется байтами чаще, то сравнивается с их численным представленим))
вот так, насчет mp3 я рассказал(на фооруме есть тема в разделе Делфи про mp3)насчет видео не очень знаю...
про jpeg не помню, ибо не люблю этот формат. вообще надо спецификации читать
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.07.2010, 01:42   #8
VadEr
Форумчанин
 
Аватар для VadEr
 
Регистрация: 24.03.2009
Сообщений: 375
По умолчанию

Спасибо за разъяснения!
а с чем связана не любовь к jpeg-у?
VadEr вне форума Ответить с цитированием
Старый 16.07.2010, 02:03   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

то что сжатие с потерями.(Paint не позволяет качество задать, поэтому в приоритете PNG)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск файлов в Delphi Николай ПН Помощь студентам 5 17.12.2010 19:15
Delphi и машинный код. Создание файлов в Delphi 7. organic Помощь студентам 6 21.04.2010 13:16
Типы файлов в Паскале hohol90 Помощь студентам 2 06.11.2009 16:23
Типы в Delphi guffer Общие вопросы Delphi 6 09.07.2009 23:22