|
Вопрос # 5 775/ вопрос открыт / |
|
Здравствуйте,уважаемые эксперты! Прошу помочь с задачей, которую я не в силах решить.
Программа должна перебирать числа в адресной-строке(например: www.lm/n125412 от 000000 до 999999) затем сканировать код страницы и искать какое-то слово и так до конца.
1) Как в паскале можно написать программу для перебора чисел в адресной строке, просто не представляю.
2) Как задать, чтобы он сканировал именно код страницы, тоже для меня вопрос.
Заранее спасибо!
 |
Вопрос задал: Archer (статус: Посетитель)
Вопрос отправлен: 23 ноября 2011, 11:52
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 11; последнее сообщение — 23 ноября 2011, 15:08; участников в обсуждении: 3.
|
Вадим К (статус: Академик), 23 ноября 2011, 12:05 [#1]:
На паскале чистом - никак. А вот в делфи, если использовать indy/sinapse, то никаких проблем. Уточняйте.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Archer (статус: Посетитель), 23 ноября 2011, 13:04 [#2]:
Есть часть кода на delphi, друг написал, но так как я не владею delphi, не могу с ним разобраться(точнее с компилятором,скачал delphi7, а синтаксис вообще не знаком), вот код:
procedure TForm1.Button1Click(Sender: TObject);
var LoadStream: TMemoryStream; i:integer; str:string;
begin
progressbar1.Max:=strtoint(edit1.Text);
progressbar1.Min:=strtoint(edit2.Text);
assignfile(f,'c:\st.txt');
rewrite(f);
closefile(f);
for i := strtoint(edit2.Text) to strtoint(edit1.Text) do
begin
rewrite(f);
closefile(f);
str:='http://www.lm/n'+inttostr(i);;
LoadStream := TMemoryStream.Create; // выделение памяти под переменную
idHTTP1.Get(str, LoadStream); // загрузка в поток данных из сети
LoadStream.SaveToFile('c:\st.txt'); // сохраняем данные из потока на жестком диске
LoadStream.Free; // освобождаем память
form1.Refresh;
progressbar1.Position:=i;
label1.Caption:=inttostr(i)+'/'+edit1.Text;
progressbar1.Repaint;
end;
end;
|
|
min@y™ (статус: Доктор наук), 23 ноября 2011, 13:09 [#3]:
Я писал когда-то такую программу. Но, судя по
Цитата (Archer):
но так как я не владею delphi
исходник тебе тут не поможет.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Archer (статус: Посетитель), 23 ноября 2011, 13:13 [#4]:
Я понимаю алгоритм, но оформить не могу. Можешь скинуть исходник пожалуйста,я в нем покопаюсь, мне нужно срочно сделать эту программу.
|
|
min@y™ (статус: Доктор наук), 23 ноября 2011, 13:31 [#5]:
Цитата (Archer):
Я понимаю алгоритм, но оформить не могу. Можешь скинуть исходник пожалуйста,я в нем покопаюсь, мне нужно срочно сделать эту программу.
Сомневаюсь, что тебе поможет исходник.
Вот ссылка.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Archer (статус: Посетитель), 23 ноября 2011, 14:13 [#6]:
Ваша программа слишком сложная.Мне нужно только исходный код вытащить, можете подсказать пожалуйста, где ошибка?
unit progr;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdHttp;
type
TForm1 = class(TForm)
private
procedure TForm1.Button1Click(Sender: TObject);
var LoadStream: TMemoryStream; i:integer; str:string;
begin
progressbar1.Max:=strtoint(edit1.Te xt);
progressbar1.Min:=strtoint(edit2.Te xt);
assignfile(f,'c:\st.txt');
rewrite(f);
closefile(f);
for i := strtoint(edit2.Text) to strtoint(edit1.Text) do
begin
rewrite(f);
closefile(f);
str:='http://www.lm/n'+inttostr(i);;
LoadStream := TMemoryStream.Create;
idHTTP1.Get(str, LoadStream);
LoadStream.SaveToFile('c:\st.txt');
LoadStream.Free;
form1.Refresh;
progressbar1.Position:=i;
label1.Caption:=inttostr(i)+'/'+edit1.Text;
progressbar1.Repaint;
end;
end;
end.
|
|
min@y™ (статус: Доктор наук), 23 ноября 2011, 14:29 [#7]:
Цитата (Archer):
Ваша программа слишком сложная.
Я предупреждал.
Цитата (Archer):
можете подсказать пожалуйста, где ошибка?
А что за ошибка-то?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Archer (статус: Посетитель), 23 ноября 2011, 14:44 [#8]:
Мне нужно чтобы он перебирал страницы и сохранял код в файл, а там я сделаю поиск нужных слов. при запуске выдает ошибки: [Error] Unit1.pas(1): Unit identifier 'progr1' does not match file name
[Fatal Error] Unit1.pas(6): File not found: 'progressbar.dcu'
|
|
Archer (статус: Посетитель), 23 ноября 2011, 14:46 [#9]:
в uses я еще добавил progressbar 1, edit 1, label 1
|
|
min@y™ (статус: Доктор наук), 23 ноября 2011, 15:01 [#10]:
Цитата (Archer):
Unit identifier 'progr1' does not match file name
Идентификатор модуля должен быть именем файла этого модуля, только без расширения.
Цитата (Archer):
Unit1.pas(6): File not found: 'progressbar.dcu'
TProgressBar находится в модуле ComCtrls.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Archer (статус: Посетитель), 23 ноября 2011, 15:08 [#11]:
Я добавил модуль ComCtrls, все равно file progressbar1.dcu not found
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|