Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
19.11.2015, 06:15
|
|||
---|---|---|---|
|
|||
Изъятие изображения из текстового файла |
|||
#18+
Приветствую всех форумчан. Доброго времени суток. Столкнулся с интересной, на мой взгляд, проблемой. Имеется текстовый файл, в который помещено изображение в виде двоичного кода. Ума не приложу, как его оттуда извлечь? Пробовал открывать в текстовом и бинарном режиме, но, если использовать текстовый режим, двоичные данные не сохраняются, а в бинарном режиме не могу определить начало изображения. Есть ли какая-нибудь возможность извлечь это изображение? К слову, удаление текста вручную и сохранение файла с расширением изображения дают желаемый результат. А вот автоматизировать процесс не получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.11.2015, 09:12
|
|||
---|---|---|---|
Изъятие изображения из текстового файла |
|||
#18+
IvanCИмеется текстовый файл, в который помещено изображение в виде двоичного кода. Вероятно, использован некий формат хранения. Он известен? IvanCудаление текста вручную и сохранение файла с расширением изображения дают желаемый результат.А как это согласуется с тем, что IvanCесли использовать текстовый режим, двоичные данные не сохраняются ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.11.2015, 09:21
|
|||
---|---|---|---|
|
|||
Изъятие изображения из текстового файла |
|||
#18+
Это дамп заливки файла на хостинг. Сверху заголовок, потом сам файл и снизу какой-то текст. В том и дело, что, если не трогать двоичные данные, а просто удалить текст, то двоичные данные сохраняются, а, если попытаться скопировать двоичные данные из текста, то при вставке в другой файл, от них остается только 2 строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.11.2015, 13:13
|
|||
---|---|---|---|
Изъятие изображения из текстового файла |
|||
#18+
IvanCЭто дамп заливки файла на хостинг. Сверху заголовок, потом сам файл и снизу какой-то текст.Образец в студию... IvanCесли не трогать двоичные данные, а просто удалить текст Как именно? Я могу слёту назвать пяток разных (идеологически!) способов это проделать - и везде результаты будут разными. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.11.2015, 14:00
|
|||
---|---|---|---|
|
|||
Изъятие изображения из текстового файла |
|||
#18+
Лично я редактировал в NotePad++, просто руками удалял все читаемые строчки, сохранял файл и менял расширение - получал картинку. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.11.2015, 14:16
|
|||
---|---|---|---|
Изъятие изображения из текстового файла |
|||
#18+
Так это же обычное письмо. Можно его загрузить в CDO.Message и повыдергивать файлы через него. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.11.2015, 14:18
|
|||
---|---|---|---|
Изъятие изображения из текстового файла |
|||
#18+
Хотя скорее всего не письмо, а post-запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.11.2015, 15:02
|
|||
---|---|---|---|
|
|||
Изъятие изображения из текстового файла |
|||
#18+
А можно поподробнее про CDO.Message? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.11.2015, 16:18
|
|||
---|---|---|---|
Изъятие изображения из текстового файла |
|||
#18+
IvanCкак его оттуда извлечь? Ну собсно из структуры хорошо видно, как именно извлекать. "Ограничители" блоков прекрасно детектируются - это 30 символов тире и 12 единиц. Сразу за ними идёт заголовок - описание контента текущего блока. А затем собственно сам блок. Из заголовка легко извлекаются сведения как об имени файла, так и его тип. Скажем, в данном случае это изображение в формате PNG, файл с именем index.png. Начало файла формата PNG прекрасно опознаётся по сигнатуре 137,80,78,71. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.11.2015, 16:31
|
|||
---|---|---|---|
|
|||
Изъятие изображения из текстового файла |
|||
#18+
Ну про "скобки" я понял, меня больше интересует, как их можно извлечь? пробовал регулярным выражением, да что-то не выходит. Точнее, я преобразовывал весь файл в шестнадцатеричный формат, а потом извлекал в hex и после обратного преобразования вставлял в файл и все получалось, но, с учетом, если файл небольшого размера, а вот большие файлы не конвертируются, да и долго как-то получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.11.2015, 16:59
|
|||
---|---|---|---|
Изъятие изображения из текстового файла |
|||
#18+
Да просто загрузи весь файл в строковую переменную (если не лезет - буферизуй), split на блоки в массив, а потом каждый блок отдельно обрабатывай. Про регулярки - забудь, каждый тип содержимого придётся извлекать по-своему. Пиши код детекта типа и код извлечения для типа. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.11.2015, 21:03
|
|||
---|---|---|---|
|
|||
Изъятие изображения из текстового файла |
|||
#18+
IvanC, вообще, существуют программы для извлечения картинок, звуков и т.д. из двоичных файлов, например Resource Hacker http://www.softportal.com/software-23669-resource-hacker.html А я попробовал открыть с помощью IrfanView ( http://www.irfanview.com/ ) - получилось! Соответственно, можно запустить пакетное преобразование всех файлов из какой-то папки и сохранение в .png. Конечно, если в исходном файле картинка была в другом формате, она будет преобразована в .png. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.11.2015, 07:38
|
|||
---|---|---|---|
|
|||
Изъятие изображения из текстового файла |
|||
#18+
Ок, буду пробовать, отпишусь! Спасибо за помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.11.2015, 10:27
|
|||
---|---|---|---|
Изъятие изображения из текстового файла |
|||
#18+
IvanC, Если этот файл действительно получен по вебу и первым заголовком идёт "HTTP 200 OK" или похожее на него, то согласно протоколу, данные отделяются от заголовка двумя переводами строк CRLF + CRLF. Из приложенного файла, как раз условие выполняется. Остаётся загрузить всё в переменную, а далее через Mid + Instr обрезать лишнее ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.11.2015, 10:29
|
|||
---|---|---|---|
Изъятие изображения из текстового файла |
|||
#18+
+ Если файлов много и все разного типа, то не проблема читать их заголовка их Mime-Type и на основе него принимать решение о расширении файла, например. Имя файла, в данном конкретном случае тоже имеется ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=60&mobile=1&tid=2155726]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 306ms |
total: | 429ms |
0 / 0 |