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

Компьютерный форум 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

 

Аватара для 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')
FileWrite($hWrite, $line)
FileClose($hWrite)
$Content = FileRead($hRead)
FileClose($hRead)
$hWrite = FileOpen($sFile_new, 16 + 1)
FileWrite($hWrite, $Content)
FileClose($hWrite)

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


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



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

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


Аватара для madmasles

Ветеран


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

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


У меня, вроде, так получилось:
Код: Выделить весь код
$sFile = @ScriptDir & '\test.png'
$sFile_new = @ScriptDir & '\test2.png'
$hRead = FileOpen($sFile)
$hWrite = FileOpen($sFile_new, 2)
Do
    $line = FileReadLine($hRead)
Until StringLen($line) = 0
$Buf = FileRead($hRead)
FileWrite($hWrite, $Buf)
FileClose($hRead)
FileClose($hWrite)

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


Аватара для morgan1991

Старожил


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

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


kaster, madmasles, не так не так не работает...

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


Отправлено: 01:26, 14-04-2010 | #13


Аватара для madmasles

Ветеран


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

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


morgan1991,
Я переименовал Ваш файл 1.txt в test.png и своим скриптом его обработал. Держите оба файла:

Последний раз редактировалось madmasles, 20-05-2010 в 14:42.

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

Отправлено: 01:47, 14-04-2010 | #14


Аватара для morgan1991

Старожил


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

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


madmasles, всё верно, но косяк в том что заголовок может быть и таким:
Код: Выделить весь код
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 14 Apr 2010 06:30:22 GMT
Content-Type: image/png
Connection: close
X-Powered-By: PHP/5.2.6-1+lenny6
Set-Cookie: PHPSESSID=d60c21e5cc25be80aa294dad7955eb0b; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Cache-control: no-cache
Content-Length: 4601

‰PNG
А может и таким:
Код: Выделить весь код
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 14 Apr 2010 06:30:22 GMT
Content-Type: image/png
Connection: close
X-Powered-By: PHP/5.2.6-1+lenny6
Set-Cookie: PHPSESSID=d60c21e5cc25be80aa294dad7955eb0b; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Cache-control: no-cache

12dc5
‰PNG
Тогда ваш скрипт не работает:
12dc5 - меняется... Причём я незнаю при каких обстоятельствах...

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


Отправлено: 12:05, 14-04-2010 | #15


Аватара для madmasles

Ветеран


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

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


morgan1991,
Не знаю, случайно это или нет, но в Ваших обоих примерах строка с ‰PNG под № 13. Если так всегда, то так попробуйте:
Код: Выделить весь код
$sFile = @ScriptDir & '\test.png'
$sFile_new = @ScriptDir & '\test2.png'
$hRead = FileOpen($sFile)
$hWrite = FileOpen($sFile_new, 2)
For $i = 1 To 12
    $line = FileReadLine($hRead)
Next
$Buf = FileRead($hRead)
FileWrite($hWrite, $Buf)
FileClose($hRead)
FileClose($hWrite)
У меня так с обоими заголовками работает.

PS
А так не важно, с какой строки начинается ‰PNG:
Код: Выделить весь код
#include <file.au3>

Dim $aFile
$sFile = @ScriptDir & '\test.png'
$sFile_new = @ScriptDir & '\test2.png'
_FileReadToArray($sFile, $aFile)
For $ii = 1 To $aFile[0]
    If StringInStr($aFile[$ii], "‰PNG") <> 0 Then ExitLoop
Next
$hRead = FileOpen($sFile)
$hWrite = FileOpen($sFile_new, 2)
For $i = 1 To $ii - 1
    $line = FileReadLine($hRead)
Next
$Buf = FileRead($hRead)
FileWrite($hWrite, $Buf)
FileClose($hRead)
FileClose($hWrite)

Последний раз редактировалось madmasles, 14-04-2010 в 13:25.

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

Отправлено: 13:12, 14-04-2010 | #16


Аватара для morgan1991

Старожил


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

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


Неа не работает...
$Buf = FileRead($hRead) - считывает только строчку ‰PNG и следующую а остальное игнорирует...
А если забить в цикл $Buf = FileReadLine($hRead) - то он игнорить часть данных, например NUL и в добавок к этому:
Цитата madmasles:
но в Ваших обоих примерах строка с ‰PNG под № 13 »
Иногда №14 а иногда №13...
А на какой вы версии AutoIt роверяли? У меня стоит: 3.3.0.0

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


Отправлено: 13:29, 14-04-2010 | #17


Аватара для madmasles

Ветеран


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

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


morgan1991,
У меня AutoIt 3.3.6.0 и все отрабатывает. Я проверил.

Последний раз редактировалось madmasles, 20-05-2010 в 14:42.

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

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


Аватара для morgan1991

Старожил


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

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


madmasles, поставил 3.3.6.0 и всё действительно заработало, но заголовок по прежнему возвращается иногда такой:
Код: Выделить весь код
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 14 Apr 2010 08:11:06 GMT
Content-Type: image/png
Connection: close
X-Powered-By: PHP/5.2.6-1+lenny6
Set-Cookie: PHPSESSID=a011606fac4847769797371c247a50e4; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Cache-control: no-cache
Content-Length: 4707

‰PNG
А иногда такой:
Код: Выделить весь код
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 14 Apr 2010 08:12:37 GMT
Content-Type: image/png
Transfer-Encoding: chunked
Connection: close
X-Powered-By: PHP/5.2.6-1+lenny6
Set-Cookie: PHPSESSID=07618803a61b299120d3709617ee59c1; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Cache-control: no-cache

1255
‰PNG
Может можно какимто регулярным выражением удалить всё до ‰PNG ???

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


Отправлено: 13:45, 14-04-2010 | #19


Аватара для madmasles

Ветеран


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

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


morgan1991,
Попробуйте моим последним кодом обработать test.png. У меня так обрабатывает нормально независимо от заголовка.
Это сообщение посчитали полезным следующие участники:

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



Компьютерный форум 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




 
Переход