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

Вниз

формат файла.   Найти похожие ветки 

 
Sergey V. Shadrin   (2002-10-10 12:10) [0]

на входе есть имя файла.
на выходе надо получить его формат. возможны jpg, bmp, gif..


 
Song   (2002-10-10 12:46) [1]

ShGetFileInfo()


 
Ru   (2002-10-10 15:29) [2]

Получение информации о файле сработает если на входе файл.
Если просто строка, то может поможет следующее:
t:=pos(".",name);
ts:=copy(name,t,length(name));


 
Pumpkin   (2002-10-10 15:35) [3]

2Ru ExtractFileExt
Читай заголовок файла (как ACDSee) а то мало ли какое расширение(jpeg, jpg, jpe, jfif, jif; bmp, dib, rle или еще чего).


 
Ru   (2002-10-10 15:55) [4]

ПАРДОН
во-первых:
ts:=copy(name,t,3);

во-вторых:
>Pumpkin
это конечно логично, но тогда пусть Sergey V. Shadrin укажет как он получает свое имя файла. Если читает сам файл, то без вопросов, а если нет?


 
MJH   (2002-10-10 16:14) [5]

2Ru
>ts:=copy(name,t,3);
а про расширение ".jpeg" ты слышал?


 
Ru   (2002-10-10 17:51) [6]

>MJH
Это пример, а он пусть сам решает какое у него расширение или задает следующий вопрос!


 
MJH   (2002-10-11 01:16) [7]

ну дык он так и сделает :))))
а потом будет на тебя кричать что твой код не работает :)


 
Pumpkin   (2002-10-11 11:28) [8]

2Ru
> t:=pos(".",name);
> ts:=copy(name,t,length(name));
ExtractFileExt;



 
Ru   (2002-10-11 13:05) [9]

>MJH
работать голова должна, а не код!

>Pumpkin смотри Ru © (10.10.02 15:55)


 
Pumpkin   (2002-10-11 13:19) [10]

2Ru
> смотри Ru © (10.10.02 15:55)
Если ты про copy(name,t,length(name)) то один хрен, можно и copy(name,t,MAXINT)
Я тебе про файлы типа "file.01.jpg"


 
still   (2002-10-11 13:23) [11]

Если нужно только расширение файла, то

> ExtractFileExt

а если реальный формат - то нужно сам файл ковырять и сигнатуру смотреть


 
Ru   (2002-10-11 15:14) [12]

>Pumpkin
Если ты про copy(name,t,length(name)) то один хрен, можно и copy(name,t,MAXINT)
это было Ru © (10.10.02 15:29) и до меня эта ошибка дошла несколько ранее, а насчет: Я тебе про файлы типа "file.01.jpg"
что ты скажешь на это:

ts:=copy(name,length(name)-4,4);
if ts[1]="." then delete(ts,1,1);

>still

я исхожу из условия, что на входе строка, ведь до сих пор зачинатель этой ветки не сказал обратного :)


 
Pumpkin   (2002-10-11 15:26) [13]

> что ты скажешь на это:
> ts:=copy(name,length(name)-4,4);
> if ts[1]="." then delete(ts,1,1);
А если "file.jpeg" догда ts:=copy(name,length(name)-5,5);? Ж:)))
Если уж тебе так не нравится ExtractFileExt тогда так:

i := Length(name);
while i > 0 and (name[i] <> ".") then Dec(i);
if i > 0 then ts := copy(name,i+1,MAXINT);




 
Ru   (2002-10-17 10:44) [14]

А чего это зачинщик молчит пролил бы нам свет на суть проблемы


 
Sergey V. Shadrin   (2002-10-17 11:01) [15]

э, блин. есть у меня файл. имя его на ходе дается. оно может иметь вид 1.gif. а структура у него от jpeg. кроме как анализировать код ничего не придумал.


 
Ru   (2002-10-17 12:18) [16]

>Sergey V. Shadrin (17.10.02 11:01)

??? или я тупой или вы не совсем понятно выразились


 
Sergey V. Shadrin   (2002-10-18 10:33) [17]

я тупой. :) просто есть файл у него расширение gif а на самом деле - это jpeg. просто сменили расширение


 
Anatoly Podgoretsky   (2002-10-18 10:40) [18]

Ru © (17.10.02 12:18)
Помоему он более чем ясно выразился.

Sergey V. Shadrin (18.10.02 10:33)
Тебе написали анилизируй заговки файла на определенные сигнатуры, как правило это в первых байтах файла.


 
k   (2002-10-19 00:30) [19]

столько шума.....

хех
сигнатура - первые 2 байта файла
так у бмп первые 2 байта - всегда BM, это стандарт....

для остальных - посмотри сам при помощи WinCommander"а





 
Rouse_   (2002-10-19 00:36) [20]


> k (19.10.02 00:30)

Не обязательно первые 2 байта, но совет верен, только анализируя сигнатуру сможешь узнать истинный формат файла

Желаю успехов



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

Форум: "Media";
Текущий архив: 2003.02.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.01 c
1-4966
Школьник
2003-01-27 04:13
2003.02.03
Как это работает ?


1-4977
yong
2003-01-27 09:03
2003.02.03
Разделитель в Экселе


14-5256
sniknik
2003-01-16 18:31
2003.02.03
Навеяно by Ketmar ...


3-4708
БД
2003-01-18 08:22
2003.02.03
Plese help me now!


14-5167
gsu
2003-01-17 20:53
2003.02.03
Кто-нить с BPWin работал ?





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