Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.06.2011, 22:31
us8ihj us8ihj вне форума
Прохожий
 
Регистрация: 18.06.2011
Сообщения: 19
Репутация: 10
Вопрос Загрузка текстового файла по интернет ссылке

Добрый день! Я, как новичек, хотел обратится за помощью. Есть такая задача: Нужно в Memo (либо другой контейнер) загрузить данные по ссылке http://qwer.ru/12345678.txt (это просто пример, но ссылка имеет схожий вид). Как организовать процесс ввода? Учитывать то, что файл может не находится в кэше браузера. Просто его надо открыть и загрузить в Memo. Буду благодарен за помощь.
Ответить с цитированием
  #2  
Старый 18.06.2011, 22:51
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

добавь на форму компонент idHTTP
и потом, например, на кнопку напиши
memo1.Text:=IdHTTP1.get('http://qwer.ru/12345678.txt')
Ответить с цитированием
  #3  
Старый 18.06.2011, 22:56
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Код:
TIdHTTP;
TIdHTTP.Get('qwer.ru/12345678.txt', stream);
memo1.lines.loadfromstream(stream);
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #4  
Старый 19.06.2011, 00:13
us8ihj us8ihj вне форума
Прохожий
 
Регистрация: 18.06.2011
Сообщения: 19
Репутация: 10
По умолчанию

При нажатии на кнопку выдает ошибку Socket Error #10061.Connection refused. И ничего не происходит. Вот нашел для теста ссылку на текстовый файл: http://www.typograf.ru/flog/test1.txt , пытлася его загрузить.
M.A.D.M.A.N., при запуске жалуется на stream как на необъявленную переменную. Какой тип ей объявить?
Ответить с цитированием
  #5  
Старый 19.06.2011, 00:18
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Эх, лодыри, справку лень почитать.
Код:
var
  Stream : TMemoryStream;

  ...
  Stream := TMemoryStream.Create;
  try
    TIdHTTP.Get('qwer.ru/12345678.txt', Stream);
    memo1.lines.loadfromstream(Stream);
  finally
    Stream.Free;
  end;
Ответить с цитированием
  #6  
Старый 19.06.2011, 00:18
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

хм у мя вот так норм все в мемо загрузилось
Memo1.Text:=IdHTTP1.Get('http://www.typograf.ru/flog/test1.txt')
может зависит от типа интернет соединеия че нить,незнаю уж.но сработало без ошибок.
Ответить с цитированием
  #7  
Старый 19.06.2011, 00:29
us8ihj us8ihj вне форума
Прохожий
 
Регистрация: 18.06.2011
Сообщения: 19
Репутация: 10
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var Stream:TMemoryStream;
begin
Stream:=TMemoryStream.Create;
try
IdHTTP1.Get('http://www.typograf.ru/flog/test1.txt',Stream);
Memo1.Lines.LoadFromStream(Stream);
finally
Stream.Free;
end;
end;

Вот таким способом ничего не происходит.

Snake22, А вашим сработало! Оказывается я забыл http:// дописать.

Вообщем-то говоря мне нужно не просто открыть файл, но и считать с него определенную информацию.
Файл такого вида:

a1 b1 c1 d1 ...
a2 b2 c2 d2 ...
...

где aN, bN, cN, dN - это строковая информация (там могут быть и слова и айпи-адреса (с точками) или просто числа, а пробелы - табуляция.

Этот файл надо открыть, и вывести в StringGrid. Если бы я работал с файлом который находится на компьютере - было бы проще. Конечно, можно открыть по ссылке, вывести в Memo и сохраннить в текстовый документ, но Memo1.Text:=... Выведет этот файл одной строкой, а мне нужно чтобы формат файла остался прежним и с ним можно было вести дальшейшую его обработку (в частности, это надо поместить в StringGrid).

Последний раз редактировалось us8ihj, 19.06.2011 в 01:03.
Ответить с цитированием
  #8  
Старый 19.06.2011, 00:56
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Ну нужно же хоть маленько думать, после загрузки файла указатель в Stream указывает на его конец.
Код:
procedure TForm1.Button4Click(Sender: TObject);
var
  Stream : TMemoryStream;
begin
  Stream := TMemoryStream.Create;
  try
    IdHTTP1.Get(''http://www.typograf.ru/flog/test1.txt', Stream);
    Stream.Seek(0, 0); // установим указатель потока в начало
    if Stream.Size > 0 then
      Memo1.Lines.LoadFromStream(Stream);
  finally
    Stream.Free;
  end;
end;

Последний раз редактировалось angvelem, 19.06.2011 в 00:58.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:18.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025