Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2010, 16:24   #1
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию прочитать часть файла из интернета (делфи)

есть некий adress.com/page_32.htm
возможно ли, не скачивая всю страницу, прочитать прочитать часть ее?
например, с 100 по 110 строки из page_32.htm

если возможно, напишите пример,
или киньте ссылку где можно почитать.
на форуме и в гугле ничего про это не нашел.
xrob вне форума Ответить с цитированием
Старый 10.12.2010, 17:07   #2
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

И не найдёте... Это не возможно без считывания всего файла. Можно считать часть файла, но не конкретные строки.
Виталий Желтяков вне форума Ответить с цитированием
Старый 10.12.2010, 18:39   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

можно только разве что определенные байты, а не строки.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.12.2010, 19:23   #4
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Попробуйте это(только здесь в байтах):
Код:
IdHTTP1.Request.ContentRangeStart := Стартовая позиция';
IdHTTP1.Request.ContentRangeEnd := 'Конечная позиция';
IdHTTP1.Get(SourceURL, DownloadStream);
Но если дописывать в существующий файл часть, то и в файле задайте стартовую позицию.
Alter вне форума Ответить с цитированием
Старый 11.12.2010, 01:10   #5
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

Alter,

Код:
procedure DownLoad();
var
html:TIdHTTP;
Stream:TMemoryStream;

begin
html:= TIdHTTP.Create(nil);
Stream:=TMemoryStream.Create;

html.Request.ContentRangeStart:= 10;
html.Request.ContentRangeEnd:= 20;
html.Get('http://www.ya.ru',Stream);

Stream.SaveToFile('c:/temp.txt');
Stream.Free;

end;
это не работает - все-равно скачивает полностью файл,
хотя, как я понял, должен скачивать с 10-го по 20-й байт, да?
может там еще чего-нибудь надо отметить где-то?
xrob вне форума Ответить с цитированием
Старый 11.12.2010, 01:31   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

поидее этого хватит, но яндекс позволяет ли скачивать часть страницы?

да с 10 до 20 байт.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.12.2010, 01:46   #7
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

не позволяет?
т.е. это еще и от конкретного сайта зависит?
с 10 по 20 - это я для примера,
а что есть разница, 10-20 байт или 15000-20000 байт?
xrob вне форума Ответить с цитированием
Старый 11.12.2010, 03:01   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
а что есть разница, 10-20 байт или 15000-20000 байт?
нуу, разные куски файла как бы
Цитата:
т.е. это еще и от конкретного сайта зависит?
ну вообще то да, ибо сервер вам страницу выдает, и ему решать(точнее от настроек его) обрабатывать ли частичные запросы иль нет.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.12.2010, 12:48   #9
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

ну, про разные куски - это само собой,
просто вы так сказали...
Цитата:
да с 10 до 20 байт.
... что у меня сложилось впечатление,
что есть какие-то ограниечения на байты,
типа 15000-20000 можно слить, а 10-20 - нет.

ну а если предположить, что страница генерится на php автоматически,
то там и подавно частично не получится, да?

точнее вообще вот такой вопрос:
есть некий "http://programmersforum.ru/showthread.php?p=681474"
это ведь не файл, да?
это как я понимаю какой-то запрос,
на который сервер создает страницу с этой темой,
выковыривая сообщения из базы, так?

ну и уж коли на то пошло, совершенно конкретный вопрос:

можно ли, скачать 15000-20000 байт из того,
что формирует сервер по запросу
"http://programmersforum.ru/showthread.php?p=681474",
не скачивая всю страницу?
xrob вне форума Ответить с цитированием
Старый 11.12.2010, 13:16   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

страница и файл разницы нет, если сервер поддерживает частичный GET то получится, иначе нет.
читать
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скачивание файла из интернета по ссылке smith45 Microsoft Office Excel 24 24.01.2012 13:15
Получение файла из Интернета Balexander Microsoft Office Excel 1 19.11.2010 15:53
Закачка файла из Интернета _SERGEYX_ Работа с сетью в Delphi 3 18.01.2010 14:21
Прочитать из файла строку ds.Dante Общие вопросы .NET 22 03.09.2009 16:08
Не получается прочитать из файла...( Regloger Помощь студентам 3 09.12.2007 14:23