Форум: "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.009 c