Проблемы в делфи
Пользователи, просматривающие топик: 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)<>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)<>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. Пожалуйста скажите что не так?
|
|
|
RE: Проблемы в делфи - 2010-06-25 17:52:26.666666
|
|
|
Webivane
Сообщений: 5
Оценки: 0
Присоединился: 2010-06-25 09:43:47.936666
|
Очень странная вещь случилась ещё. Я ввожу в edit2 ( это сколько раз нужно выполнить цикл ) число 10, затем жму Button1, он один раз открыл программу и у программы тут же Edit3 ( сколько выполненно) стал 10!!!! Откуда? Почему? Windows Код как то рендомно исполняет! Пожалуйчта помогите!
|
|
|
RE: Проблемы в делфи - 2010-06-25 17:53:52.776666
|
|
|
Webivane
Сообщений: 5
Оценки: 0
Присоединился: 2010-06-25 09:43:47.936666
|
Неужели сдесь нет опытных программистов которые могут помочь новичку?
|
|
|
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
|
|
|
RE: Проблемы в делфи - 2010-06-25 20:16:51.720000
|
|
|
Webivane
Сообщений: 5
Оценки: 0
Присоединился: 2010-06-25 09:43:47.936666
|
FreeCardT, не по теме! Я знаю как прверять IP! Я не могу понять почему ошибки!
|
|
|
|
|