Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Форум .::NoWa.cc::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Программирование > Delphi

Уважаемые пользователи nowa.cc. Мы работаем для вас более 20 лет и сейчас вынуждены просить о финансовой помощи по оплате за сервер.
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: Z021474945171 Webmoney WME: E159284508897 Webmoney WMUSDT: T206853643180
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!

Ответ
 
Опции темы Опции просмотра Language
Старый 11.08.2009, 18:45   #1
Постоялец
 
Пол:Мужской
Регистрация: 11.07.2008
Адрес: Украина, Львов
Сообщений: 277
Репутация: 82
По умолчанию Delphi и текстовые файлы

Как средствами Delphi определить, является ли файл текстовым. То есть, не по расшырению, а так, скажем файл somefile.dat это текстовый файл или картинка
bssergy вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама:


Старый 12.08.2009, 12:33   #2
Vasuha
Постоялец
 
Пол:Мужской
Регистрация: 13.03.2008
Адрес: Минск
Сообщений: 257
Репутация: 231
По умолчанию Re: Delphi и текстовые файлы

Можно рассматривать заголовок файла. Иногда на практике возникает такая проблема. Открываю любой файл как текстовый там практически всегда в заголовке есть реальной расширение этого файла, а не то которое стоит после точки в названии. Может так?
__________________
Vasuha вне форума
 
Ответить с цитированием Вверх
Старый 12.08.2009, 13:15   #3
bssergy
Постоялец
 
Пол:Мужской
Регистрация: 11.07.2008
Адрес: Украина, Львов
Сообщений: 277
Репутация: 82
По умолчанию Re: Delphi и текстовые файлы

А какой заголовок имееться ввиду?
bssergy вне форума
 
Ответить с цитированием Вверх
Старый 18.08.2009, 09:27   #4
QAZII
Неактивный пользователь
 
Регистрация: 15.07.2009
Сообщений: 2
Репутация: 1
По умолчанию Re: Delphi и текстовые файлы

Vasuha, имелл ввиду что обычно первые 3-4 байта файла имею назвиние своего формата.
Например: у файлов .rar - в 3х байтах записано Rar! (52 61 72 21)
у файлов zip - PK (50 4B)

как вариант необходимо считать инфу ЗА этими 3-4мя символами и проверить их на текст(в делфи можно использовать множества, проверка типа if buf[i] in [a..z] then и тп)
QAZII вне форума
 
Ответить с цитированием Вверх
Старый 23.08.2009, 08:26   #5
irkyt
Пользователь
 
Аватар для irkyt
 
Пол:Мужской
Регистрация: 25.11.2006
Адрес: Архангельск
Сообщений: 118
Репутация: 39
По умолчанию Re: Delphi и текстовые файлы

bssergy, гуглим по запросу "Работа с нетипизированныи файлами Delphi", там и смотрим что такое заголовок, какими байтами он определяется и как его считать
__________________
Хочу машину, дачу и бабу в придачу.
irkyt вне форума
 
Ответить с цитированием Вверх
Старый 13.02.2010, 17:47   #6
aixay
Новичок
 
Пол:Мужской
Регистрация: 05.01.2010
Сообщений: 19
Репутация: 2
По умолчанию Re: Delphi и текстовые файлы

Никакими средствами ты не определишь, является ли файл строго текстовым или нет... Легко сделать бинарный файл, в котором будут только байты, отображаемые в первые 127 символов и текстовый файл, допустим в кодировке UTF - и все...

Уточни задачу...
aixay вне форума
 
Ответить с цитированием Вверх
Старый 24.02.2010, 17:08   #7
Inlight
Неактивный пользователь
 
Пол:Мужской
Регистрация: 26.03.2009
Сообщений: 4
Репутация: 1
По умолчанию Re: Delphi и текстовые файлы

Ищи управляющие символы текстовых файлов, например - перевода строки.
Inlight вне форума
 
Ответить с цитированием Вверх
Старый 24.02.2010, 18:14   #8
cloner78
Неактивный пользователь
 
Пол:Мужской
Регистрация: 21.02.2010
Сообщений: 5
Репутация: 1
По умолчанию Re: Delphi и текстовые файлы

описание форматов файлов
http://www.wotsit.org/
cloner78 вне форума
 
Ответить с цитированием Вверх
Старый 27.02.2010, 09:32   #9
johnnyboy
Неактивный пользователь
 
Пол:Мужской
Регистрация: 29.05.2007
Сообщений: 10
Репутация: 1
По умолчанию Re: Delphi и текстовые файлы

Есть метод определения по частоте символов (в сети есть частотные словари для этого), если частота символов приближена к словарю, то это текст в наибольшей вероятностью, проблема только с кодировками, если это русский текст, то на каждую кодировку должен быть свой словарь...
johnnyboy вне форума
 
Ответить с цитированием Вверх
Старый 27.02.2010, 09:52   #10
BoaKaa
Неактивный пользователь
 
Регистрация: 24.06.2009
Сообщений: 5
Репутация: 1
По умолчанию Re: Delphi и текстовые файлы

Текстовый файл отличается тем что он разбит на разные по длине строки, отделенные символами #13#10.
BoaKaa вне форума
 
Ответить с цитированием Вверх
Старый 02.03.2010, 18:28   #11
Ustin19
Неактивный пользователь
 
Регистрация: 02.03.2010
Сообщений: 1
Репутация: 0
По умолчанию Re: Delphi и текстовые файлы

В текстовом файле по идее не должно быть символов с кодом < 32, за исключением #$09, #$0A, #$0D. Соответственно читаем файл и ищем в нём непечатные символы. Наверное можно ограничиться поиском #$00, который всегда есть в .exe, .doc, но не всегда присутсвует в rtf например. Всё зависит от ТЗ
Ustin19 вне форума
 
Ответить с цитированием Вверх
Старый 03.03.2010, 09:26   #12
s0l_ir0n
Неактивный пользователь
 
Регистрация: 31.01.2010
Сообщений: 4
Репутация: 3
По умолчанию Re: Delphi и текстовые файлы

Цитата:
Сообщение от Ustin19 Посмотреть сообщение
В текстовом файле по идее не должно быть символов с кодом < 32, за исключением #$09, #$0A, #$0D. Соответственно читаем файл и ищем в нём непечатные символы. Наверное можно ограничиться поиском #$00, который всегда есть в .exe, .doc, но не всегда присутсвует в rtf например. Всё зависит от ТЗ

А если представить, что наш файл - в DOS кодировке и в нем используется ASCII-арт, то ваше предположение рушится
Самым разумным решение все-таки представляется чтение хидера, хотя и тут без подводных камней не обойтись...
s0l_ir0n вне форума
 
Ответить с цитированием Вверх
Старый 11.10.2010, 10:24   #13
kya
Неактивный пользователь
 
Пол:Мужской
Регистрация: 10.01.2007
Сообщений: 19
Репутация: 4
По умолчанию Re: Delphi и текстовые файлы

не парьтесь ребятя имхо никак расширение файла внутри не у всех файлов есть. Вариант с символами код которых <=32 тоже не прокатит. мне однажды попадался файл с расширением .Txt внутри был текст и он смобрелся блокнотом, Однако при переименовании его расширения в .com он стартовал и работал как программа... Посему рекомендую на эту траблу забить , вознести молитву создателю файла, чтобы он вас не обманул, раз уж расширение txt то должон быть текст внутри...
kya вне форума
 
Ответить с цитированием Вверх
Старый 15.11.2010, 19:55   #14
magnus_crank
Неактивный пользователь
 
Регистрация: 15.11.2010
Сообщений: 1
Репутация: 0
По умолчанию Re: Delphi и текстовые файлы

Частотный анализ затруднен, если неизвестен язык (кодировка)
А вот символы #13 и №10 (не обязательно в паре, что тоже надо учитывать), которых в текстовом файле может не быть (ну не разбит он на строки) надо сопрягать с анализом пробела (и других разделителей), который является наиболее явным признаком текстового файла. Причем кодировка и осмысленность языка не играют никакой роли при таком анализе.
То есть ведем частотный анализ длины слов, разбитых по пробелам, табуляциям и переводам строк (а также, только это сложнее, дефисам/тире, точкам и прочим знакам препинания, но там результат не однозначен). Как-то так.
magnus_crank вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
XML файлы в Delphi 7 Чех Delphi 9 04.02.2010 12:50
ZD2T - консольный конвертер в текстовые файлы sd6719 Офис 0 01.11.2008 19:33
Castalia for Delphi 2008.1 - эксперт IDE Delphi Minotawr Компоненты 0 03.09.2008 01:17
W950i текстовые файлы... rubab Sony Ericsson 2 05.07.2007 20:18

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 20:27. Часовой пояс GMT +3.


Copyright ©2004 - 2025 NoWa.cc

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.07210 секунды с 11 запросами