Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Отделить заголовок от html

Ответить
Настройки темы
[решено] Отделить заголовок от html

Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Вложения
Тип файла: txt 1.txt
(5.0 Kb, 28 просмотров)
Здравствуйте!
Отправляю серверу по 80 порту заголовок, получаю заголовок и файл png.
Необходимо отделить заголовок в отдельную переменную и правильно сохранить файл 1.png.

То что возвращает сервер во вложениях.
Помогите плиз.....

-------
Хочу научиться писать драйвера на с++


Отправлено: 17:15, 13-04-2010

 

Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


пробовал браузером приконнектиться к скрипту чтобы он вернул ему картинку, дак браузер выдаёт:
0x485454502F312E3120323030204F4B0D0A5365и т.д.
никак не пойму как всётаки просмотреть эту картинку в программе, а не через браузер.
InetGet не подходит... Там есть свой косяк...
Хотябы намекните ктонибудь, что это за данные вообще передаются от сервера???
почемуто если прямо через браузер зайти по ссылке, то картинка отображается нормально, а если скриптом получить весь код и передать браузеру он выводит - писал выше что выводит...
Помогите пожалуйста, очень, очень нужно...

-------
Хочу научиться писать драйвера на с++


Отправлено: 21:28, 13-04-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для kaster

Старожил


Сообщения: 367
Благодарности: 91

Профиль | Отправить PM | Цитировать


morgan1991, там бинарный код картинки. запиши эти данные (0x485454502F312E3120323030204F4B0D0A5365и т.д.) в файл в бинарном режиме. к примеру, запиши эти данные в какую нибудь переменную, предположим $s, а потом уже пиши его в предварительно открытый в бинарном режиме файл
Код: Выделить весь код
$hWrite = FileOpen(@ScriptDir & '\test.png', 16 + 2)
FileWrite($hWrite, $s)
FileClose($hWrite)
по идее, получившийся файл должен быть искомым

-------
Русское сообщество пользователей AutoIt
autoit@conference.jabber.ru - Конференция на jabber.ru


Отправлено: 22:37, 13-04-2010 | #3


Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


kaster, дак в том то и косяк...
данные передаются бинарные, но в них и заголовок, т.е. нужно получить данные
Код: Выделить весь код
TCPRecv($ConnectedSocet, 2048, 0)
С этим флагом они автоматом переведутся из бинарного вида в строку, затем отделить заголовок сервера от данных файла, затем перевести данные файла обратно в бинарный вид и записать в файл в бинарном режиме. Но это теория, а на практике я не могу отделить заголовок, а если вручную в созданном файле удалить заголовок, то файл становится не читаемым для просмотрщиков изображений.

-------
Хочу научиться писать драйвера на с++


Отправлено: 22:46, 13-04-2010 | #4


Аватара для kaster

Старожил


Сообщения: 367
Благодарности: 91

Профиль | Отправить PM | Цитировать


По всей видимости, какие-то косяки при конвертации из бинарного в текстовый и обратно. я тоже не смог переделать код в картинку. попробуй принимать данные сразу в бинарном виде, сохранить поток в файл, открыть любым умным редактором и удалить все, что до ‰PNG

-------
Русское сообщество пользователей AutoIt
autoit@conference.jabber.ru - Конференция на jabber.ru

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:54, 13-04-2010 | #5


Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Цитата kaster:
открыть любым умным редактором и удалить все, что до ‰PNG »
Открыл через Notepade++ и всё получилось, картинка стала рабочей, но как это сделать на Autoit ???

А если через Scite удаляю всё до ‰PNG, тогда картинка не открывается

-------
Хочу научиться писать драйвера на с++


Отправлено: 23:21, 13-04-2010 | #6


Аватара для kaster

Старожил


Сообщения: 367
Благодарности: 91

Профиль | Отправить PM | Цитировать


Цитата morgan1991:
но как это сделать на Autoit ? »
точно так же
после сохранения, по идее при открытии и закрытии подобных подстав уже не должно быть

Код: Выделить весь код
$sFile = @Script & '\test.png'
$sFile_new = @Script & '\test2.png'
$hRead = FileOpen($sFile, 0)
$hWrite = FileOpen($sFile_new, 2)
Do
   $line = FileReadLine($hRead)
Until StringInStr($line, '‰PNG')
$line &= FileRead($hRead)
FileClose($hRead)
FileWrite($hWrite, $line)
FileClose($hWrite)

-------
Русское сообщество пользователей AutoIt
autoit@conference.jabber.ru - Конференция на jabber.ru


Отправлено: 23:30, 13-04-2010 | #7


Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


kaster, вообщем подправил немного ошибки и коечто изменил.

Код: Выделить весь код
$sFile = @ScriptDir & '\test1.png'
				$sFile_new = @ScriptDir & '\test2.png'
				$hRead = FileOpen($sFile, 0)
				$hWrite = FileOpen($sFile_new, 2)
				Do
					$line = FileReadLine($hRead)
				Until StringInStr($line, '‰PNG')
				Do
					$line &= @CRLF & FileReadLine($hRead)
				Until @error = -1
				$line &= @CRLF & FileRead($hRead)
				FileClose($hRead)
				FileWrite($hWrite, $line)
				FileClose($hWrite)
$line &= FileRead($hRead) - не подходит, т.к. он не читает до конца а только следующие две строчки, т.к. дальще в файле такая строка:
NULNULNUL
поэтому заменил на:
Код: Выделить весь код
Do
     $line &= @CRLF & FileReadLine($hRead)
Until @error = -1
И всеравно не помогло, скрипт игнорит:
NUL, как будто их нет, я даже в не могу вручную скопировать эту строку и вставить на форум, винда её просто игнорит...

-------
Хочу научиться писать драйвера на с++


Отправлено: 23:57, 13-04-2010 | #8


Аватара для kaster

Старожил


Сообщения: 367
Благодарности: 91

Профиль | Отправить PM | Цитировать


А если так
Код: Выделить весь код
$sFile = @Script & '\test.png'
$sFile_new = @Script & '\test2.png'
$hRead = FileOpen($sFile, 16)
$hWrite = FileOpen($sFile_new, 16 + 2)
Do
   $line = FileReadLine($hRead)
Until StringInStr($line, '‰PNG')
$line &= FileRead($hRead)
FileClose($hRead)
FileWrite($hWrite, $line)
FileClose($hWrite)

-------
Русское сообщество пользователей AutoIt
autoit@conference.jabber.ru - Конференция на jabber.ru


Отправлено: 00:08, 14-04-2010 | #9


Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Тоже не катит, он ‰PNG вставляет как есть а остальное в бинарном виде и получается:
Код: Выделить весь код
‰PNG0x41E9A0A2485144309A8888800521108DA222112536343131и т.д.

-------
Хочу научиться писать драйвера на с++


Отправлено: 00:27, 14-04-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Отделить заголовок от html

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - Заголовок проводника Malfatto Microsoft Windows Vista 2 22-09-2008 21:46
Формат mkv: Как отделить субтитры от матрешки. incubb Хочу все знать 5 03-06-2008 10:42
Proxy/NAT - Отделить интернет gatecrasher Сетевые технологии 4 25-12-2007 05:23
как отделить слова от музыки Guest Хочу все знать 4 02-07-2004 02:01
Как отделить звук от клипа? vark Хочу все знать 19 07-01-2004 23:32




 
Переход