|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Загрузка текстового файла по интернет ссылке
Добрый день! Я, как новичек, хотел обратится за помощью. Есть такая задача: Нужно в Memo (либо другой контейнер) загрузить данные по ссылке http://qwer.ru/12345678.txt (это просто пример, но ссылка имеет схожий вид). Как организовать процесс ввода? Учитывать то, что файл может не находится в кэше браузера. Просто его надо открыть и загрузить в Memo. Буду благодарен за помощь.
|
#2
|
|||
|
|||
добавь на форму компонент idHTTP
и потом, например, на кнопку напиши memo1.Text:=IdHTTP1.get('http://qwer.ru/12345678.txt') |
#3
|
||||
|
||||
Код:
TIdHTTP; TIdHTTP.Get('qwer.ru/12345678.txt', stream); memo1.lines.loadfromstream(stream); — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#4
|
|||
|
|||
При нажатии на кнопку выдает ошибку Socket Error #10061.Connection refused. И ничего не происходит. Вот нашел для теста ссылку на текстовый файл: http://www.typograf.ru/flog/test1.txt , пытлася его загрузить.
M.A.D.M.A.N., при запуске жалуется на stream как на необъявленную переменную. Какой тип ей объявить? |
#5
|
||||
|
||||
Эх, лодыри, справку лень почитать.
Код:
var Stream : TMemoryStream; ... Stream := TMemoryStream.Create; try TIdHTTP.Get('qwer.ru/12345678.txt', Stream); memo1.lines.loadfromstream(Stream); finally Stream.Free; end; |
#6
|
|||
|
|||
хм у мя вот так норм все в мемо загрузилось
Memo1.Text:=IdHTTP1.Get('http://www.typograf.ru/flog/test1.txt') может зависит от типа интернет соединеия че нить,незнаю уж.но сработало без ошибок. |
#7
|
|||
|
|||
Код:
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
|
||||
|
||||
Ну нужно же хоть маленько думать, после загрузки файла указатель в 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. |
#9
|
|||
|
|||
Цитата:
Дело в том, что я с потоками не работал. За курс информатики я научился только решать уравнения, системы уравнений, интегралы и таблицы (стандартный курс не информационных специальностей). Но сам предмет мне очень нравится, вот и сам разбираюсь, как могу. О ну что я могу сказать... Твой способ вывел в Memo всё как надо, как я и писал в предыдущем посте. Осталось перевести в таблицу) Последний раз редактировалось us8ihj, 19.06.2011 в 01:09. |
#10
|
||||
|
||||
Цитата:
Последний раз редактировалось angvelem, 19.06.2011 в 01:13. |
#11
|
|||
|
|||
Спасибо за помощь! У меня еще могут возникнуть вопросы по обработке этого файла, надеюсь мне и в этом помогут) А пока благодарю вас) Мне просто спросить не у кого, а до этого я обращался к преподователю... Но сейчас лето.. )
|
#12
|
|||
|
|||
Вообщем мне удалось текстовый файл (а именно ссылку на него), строки которого разбиты табуляторами, поместить в таблицу. Теперь новая задача: неоходимо Из этой таблицы вывести статистику.
Пример: Код:
/Имя/ /Очки/ A 1 B 1 C 1 A 1 B 1 A 1 Код:
/Место/ /Имя/ /Всего Очков/ 1 A 3 2 B 2 3 C 1 Я еще над алгоритмом работаю, может немного позже скину эскиз, а если удастся то и рабочий код. Последний раз редактировалось us8ihj, 19.06.2011 в 05:49. |
#13
|
|||
|
|||
Вот что смог написать за ночь. Код получился довольно громоздким (т.к. я пользовался только циклами и условиями, ибо не знаю чего получше)
Код:
procedure TForm1.Button2Click(Sender: TObject); var i,j,m,n,t,h,q,r,Tmp:integer; Tmps,s:string; k:array of integer; a:array of string; begin h:=1; SetLength(k,StringGrid1.RowCount); SetLength(a,StringGrid1.RowCount); With StringGrid1 do begin for n:=1 to RowCount-1 do begin q:=0; //не было совпадения с предыдущими строками for t:=1 to n-1 do begin if cells[3,n]=cells[3,t] then q:=1; // было end; if n=1 then begin k[i]:=0; k[1]:=strtoint(cells[4,1]); for i:=1 to RowCount-1 do begin if Cells[3,i]=Cells[3,1] then begin k[1]:=k[1]+k[i+1]; a[1]:=cells[3,1]; end; end; end; if n>1 then begin if q=0 then begin h:=h+1; k[h]:=1; a[h]:=Cells[3,n]; for j:=n+1 to RowCount-1 do if Cells[3,n]=Cells[3,j] then begin k[h]:=k[h]+1; end; end; end; end; StringGrid2.RowCount:=h+1; With StringGrid2 do begin for m:=1 to h-1 do for r:=m+1 to h do begin if k[m]<k[r] then begin Tmp:=k[m]; k[m]:=k[r]; k[r]:=Tmp; Tmps:=a[m]; a[m]:=a[r]; a[r]:=Tmps; end; end; for m:=1 to h do begin Cells[0,m]:=inttostr(m); Cells[2,m]:=inttostr(k[m]); Cells[1,m]:=a[m]; end; end; end; end; Данный вариант сортирует по числу совпадения имени, Учитывая очки. Но здесь нет сортировки по имени, в случае если очки равны... |
#14
|
||||
|
||||
Ну, если это не контрольная работа, то можно использовать StringList с его методом сортировки.
|
#15
|
|||
|
|||
Нет, я пишу программу для себя, мне ей придестя пользоваться. МОжно попродробнее о методе сортировки StringList'а ?
|