Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.03;
Скачать: CL | DM;

Вниз

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

 
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 вся ветка

Текущий архив: 2003.02.03;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.022 c
3-4774
Whippi
2003-01-16 17:22
2003.02.03
А можно ли както использовать?


1-4947
Armageddon
2003-01-26 18:29
2003.02.03
Добавление нового события


1-4837
waw
2003-01-22 17:37
2003.02.03
Как вывести окно свойства файла?


1-4886
Fill
2003-01-24 21:43
2003.02.03
StatusBar-Image


3-4751
dahs78
2003-01-15 14:38
2003.02.03
Работа с гридом