![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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); |
|
#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'а ?
|