Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 775

/ вопрос открыт /

Здравствуйте,уважаемые эксперты! Прошу помочь с задачей, которую я не в силах решить.
Программа должна перебирать числа в адресной-строке(например: www.lm/n125412 от 000000 до 999999) затем сканировать код страницы и искать какое-то слово и так до конца.
1) Как в паскале можно написать программу для перебора чисел в адресной строке, просто не представляю.
2) Как задать, чтобы он сканировал именно код страницы, тоже для меня вопрос.

Заранее спасибо!

Archer Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Archer (статус: Посетитель)
Вопрос отправлен: 23 ноября 2011, 11:52
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 11; последнее сообщение — 23 ноября 2011, 15:08; участников в обсуждении: 3.
Вадим К

Вадим К (статус: Академик), 23 ноября 2011, 12:05 [#1]:

На паскале чистом - никак. А вот в делфи, если использовать indy/sinapse, то никаких проблем. Уточняйте.
Галочка "подтверждения прочтения" - вселенское зло.
Archer

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™

min@y™ (статус: Доктор наук), 23 ноября 2011, 13:09 [#3]:

Я писал когда-то такую программу. Но, судя по

Цитата (Archer):

но так как я не владею delphi

исходник тебе тут не поможет.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Archer

Archer (статус: Посетитель), 23 ноября 2011, 13:13 [#4]:

Я понимаю алгоритм, но оформить не могу. Можешь скинуть исходник пожалуйста,я в нем покопаюсь, мне нужно срочно сделать эту программу.
min@y™

min@y™ (статус: Доктор наук), 23 ноября 2011, 13:31 [#5]:

Цитата (Archer):

Я понимаю алгоритм, но оформить не могу. Можешь скинуть исходник пожалуйста,я в нем покопаюсь, мне нужно срочно сделать эту программу.

Сомневаюсь, что тебе поможет исходник.
Вот ссылка.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Archer

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™

min@y™ (статус: Доктор наук), 23 ноября 2011, 14:29 [#7]:

Цитата (Archer):

Ваша программа слишком сложная.

Я предупреждал.

Цитата (Archer):

можете подсказать пожалуйста, где ошибка?

А что за ошибка-то?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Archer

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

Archer (статус: Посетитель), 23 ноября 2011, 14:46 [#9]:

в uses я еще добавил progressbar 1, edit 1, label 1
min@y™

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

Archer (статус: Посетитель), 23 ноября 2011, 15:08 [#11]:

Я добавил модуль ComCtrls, все равно file progressbar1.dcu not found

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:54
Выполнено за 0.03 сек.