Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Проблемы в делфи

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Проблемы в делфи
Имя
Сообщение << Старые топики   Новые топики >>
Проблемы в делфи - 2010-06-25 17:24:28.200000   
Webivane

Сообщений: 5
Оценки: 0
Присоединился: 2010-06-25 09:43:47.936666
Декан задал задачу, программа должна определять внешний ip(я не знаю какими это функциями делается, придумал копировать его со страницы(edit1.Text := IdHTTP1.get(line);), а страница это обычный php код который оределяет ip.), искать его в файле basa.txt, если не найденно то записать в файл basa.txt и !открыть рендомно одну из десяти программ! программу путь к которым лежит в .txt файле ( организовал это так:

p1:=strtoint(edit9.text);
p2:=strtoint(edit10.text);
p:=(random(abs(i1-i2))+i1);
memo1.Lines.LoadFromFile('Road2.txt');

case p of
1:line:=memo1.Lines[0];
2:line:=memo1.Lines[1];
3:line:=memo1.Lines[2];
4:line:=memo1.Lines[3];
5:line:=memo1.Lines[4];
6:line:=memo1.Lines[5];
7:line:=memo1.Lines[6];
8:line:=memo1.Lines[7];
9:line:=memo1.Lines[8];
else
line:=memo1.Lines[9];
end;
ShellExecute(0,'Open',pchar(line),nil,nil,1);


работает)
если найденно то просто открыть программу путь к которой лежит в txt.
Затем эта программа должна выполняться циклично. Число циклов задаю в edit2, а затем с каждым циклом добавляю к edit3+1 ( короче увеличиваю edit3 на 1), а в until записал until (StrToInt(edit2.text))=(StrToInt(edit3.text));.
Притои программа должна вести отчёт, сколько раз повторился ip в basa.txt и выводить это на форму. И ещё один удар под дых она должна устанавливать таймаут между цыклами, РЕНДОМНО от одного Edit'а до другого.
Вроде всё по частям работает, всё тестировал но когда соеденил во едино стоко ошибок!
Во первых она высчитывает повторы и всё остальное не в режиме онлайн (ну тоесть сразу же ) а только когда всё выполниться.
Не ищет в файле! Вообще программе не смотрит на функцию if Pos(Edit1.Text,memo1.Text)&lt;&gt;0 then, даже когда она отвечает естественный true, программа идёт к else!!! Я не знаю что делать! Пожалуйста помогите!
Вот весь код:

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Shellapi, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP; type TForm1 = class(TForm) Edit1: TEdit; Memo1: TMemo; Button1: TButton; Button2: TButton; Label1: TLabel; Label2: TLabel; Edit2: TEdit; Edit3: TEdit; Label3: TLabel; Label4: TLabel; Edit4: TEdit; Label5: TLabel; Label6: TLabel; IdHTTP1: TIdHTTP; Edit5: TEdit; Edit6: TEdit; Label7: TLabel; Label8: TLabel; Edit7: TEdit; Edit8: TEdit; Label9: TLabel; Label10: TLabel; Edit9: TEdit; Edit10: TEdit; Label11: TLabel; Label12: TLabel; Memo2: TMemo; Memo3: TMemo; procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var L:TStringList; st:string; text:string; line: string; i1,i2:integer; i3:integer; p1,p2:integer; p:integer; begin repeat memo2.Lines.LoadFromFile('urlip.txt'); // загружаю из файла путь к странице ip line:=memo2.Lines[0]; edit1.Text := IdHTTP1.get(line); edit7.text:=inttostr(strtoint(edit7.text)+1); i1:=strtoint(edit5.text); i2:=strtoint(edit6.text); Edit4.Text:=inttostr(random(abs(i1-i2))+i1); sleep(StrToInt(edit4.text)*1000); memo3.Lines.LoadFromFile('basa.txt'); if Pos(Edit1.Text,memo3.Text)&lt;&gt;0 then // ищу в файле basa.txt который загрузился в memo3 begin memo1.Lines.LoadFromFile('Road1.txt'); line:=memo1.Lines[0]; ShellExecute(0,'Open',pchar(line),nil,nil,1); end else begin edit3.text:=inttostr(strtoint(edit3.text)+1); memo3.Lines.LoadFromFile('basa.txt'); memo3.Lines.Add( Edit1.Text); memo3.Lines.SaveToFile('basa.txt') ; p1:=strtoint(edit9.text); p2:=strtoint(edit10.text); p:=(random(abs(i1-i2))+i1); memo1.Lines.LoadFromFile('Road2.txt'); case p of 1:line:=memo1.Lines[0]; 2:line:=memo1.Lines[1]; 3:line:=memo1.Lines[2]; 4:line:=memo1.Lines[3]; 5:line:=memo1.Lines[4]; 6:line:=memo1.Lines[5]; 7:line:=memo1.Lines[6]; 8:line:=memo1.Lines[7]; 9:line:=memo1.Lines[8]; else line:=memo1.Lines[9]; end; ShellExecute(0,'Open',pchar(line),nil,nil,1); edit8.text:=inttostr((strtoint(edit7.text))+(strtoint(edit3.text))) end; until (StrToInt(edit2.text))=(StrToInt(edit3.text)); begin memo1.Lines.LoadFromFile('End.txt'); line:=memo1.Lines[0]; ShellExecute(0,'Open',pchar(line),nil,nil,1) end; end; procedure TForm1.Button2Click(Sender: TObject); begin Close; end; procedure TForm1.Button3Click(Sender: TObject); begin ShellExecute(0,'Open',pchar('Easy_Settings.exe'),nil,nil,1) end; end. Пожалуйста скажите что не так?



Post #: 1
RE: Проблемы в делфи - 2010-06-25 17:52:26.666666   
Webivane

Сообщений: 5
Оценки: 0
Присоединился: 2010-06-25 09:43:47.936666
Очень странная вещь случилась ещё. Я ввожу в edit2 ( это сколько раз нужно выполнить цикл ) число 10, затем жму Button1, он один раз открыл программу и у программы тут же Edit3 ( сколько выполненно) стал 10!!!! Откуда? Почему? Windows Код как то рендомно исполняет! Пожалуйчта помогите!
Post #: 2
RE: Проблемы в делфи - 2010-06-25 17:53:52.776666   
Webivane

Сообщений: 5
Оценки: 0
Присоединился: 2010-06-25 09:43:47.936666
Неужели сдесь нет опытных программистов которые могут помочь новичку?
Post #: 3
RE: Проблемы в делфи - 2010-06-25 18:26:24.593333   
FreeCardT

Сообщений: 60
Оценки: 0
Присоединился: 2010-05-23 13:16:42.600000
http://www.delphigeist.com/2010/03/how-to-get-ip-address.html
Post #: 4
RE: Проблемы в делфи - 2010-06-25 20:16:51.720000   
Webivane

Сообщений: 5
Оценки: 0
Присоединился: 2010-06-25 09:43:47.936666
FreeCardT, не по теме! Я знаю как прверять IP! Я не могу понять почему ошибки!
Post #: 5
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Проблемы в делфи







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.