|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
||||
|
||||
Наверно имелось в виду, везде Edit4 есть результат Ctrl+C - Ctrl+V и невнимательности, и команды на самом деле разные.
Другое дело, что можно собирать по шагам в большую строку из кучи Edit'ов. Однако скорее всего в ближайшем будущем может понадобиться задержка между командами, т.к. всякого рода оборудование, отличное от компов, задержки очень любит. jmp $ ; Happy End! The Cake Is A Lie. |
#17
|
|||
|
|||
2Bargest
Да, вы правы, невнимательность и копипаст. Там разные команды, т.е.: com1:=edit1.Text; com2:=edit2.Text; com3:=edit3.Text; com4:=edit4.Text; com5:=edit5.Text; 2Alegun Виноват, ввел в заблуждение не правильно задав вопрос. На самом деле сделдано сейчас именно таким образом: Код:
com1:=edit1.Text; com2:=edit2.Text; com3:=edit3.Text; com4:=edit4.Text; com5:=edit5.Text; for i:=1 to length(com1) do idtelnet1.sendch(com1[i]); for i:=1 to length(com2) do idtelnet1.sendch(com2[i]); for i:=1 to length(com3) do idtelnet1.sendch(com3[i]); for i:=1 to length(com4) do idtelnet1.sendch(com4[i]); for i:=1 to length(com5) do idtelnet1.sendch(com5[i]); и хотел все это сократить так: Код:
for j:=1 to 5 do begin for i:=1 to length(com[j]) do idtelnet1.sendch(com[j,i]); И команд на самом деле, в зависимости от условии, от 1 до 17, не сказать что прям текст такой большой получается, но все же хотелось как то красиво сделать. |
#18
|
||||
|
||||
Код:
var com:array[0..16] of AnsiStirng; ... for j:=1 to N do begin for i:=1 to length(com[j]) do idtelnet1.sendch(com[j][i]); jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 14.04.2013 в 13:11. |
#19
|
||||
|
||||
Цитата:
Код:
for i := 1 to 5 do (FindComponent('Edit'+IntToStr(i)) as TEdit).Enabled:= false; ... .. . for i := 1 to 5 do (FindComponent('Edit'+IntToStr(i)) as TEdit).Enabled:= true; По теме: А если сделать так (оформить в отдельную процедуру) Код:
procedure TForm1.psl(ds: array of AnsiString); var i,j: integer; begin for i := Low(ds) to High(ds) do if ds[i]<>'' then for j := 1 to Length(ds[i]) do idtelnet1.sendch(ds[i][j]); end; Код:
var com: array [0..16] of AnsiStirng; begin com[1]:= 'command1'; com[2]:= 'command15'; com[4]:= 'command9'; com[5]:= 'command4'; com[7]:= 'command3'; psl(com); end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 14.04.2013 в 14:14. |
#20
|
|||
|
|||
Всем привет!
Так вот, прогу свою закончил. Данная программулина предназначена для оборудования Алкатель ISAM 7301. Все работает. Но ... не стал применять финты которые вы рекомендовали, их просто не получится там применить, наверное, я так думаю, на половину, в общем код(предупреждаю код безобразен): Код:
unit dslam; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdTelnet; type TForm1 = class(TForm) ComboBox1: TComboBox; Edit1: TEdit; Edit2: TEdit; ComboBox2: TComboBox; Edit3: TEdit; Edit4: TEdit; CheckBox1: TCheckBox; CheckBox2: TCheckBox; Button1: TButton; Memo1: TMemo; Edit6: TEdit; Label1: TLabel; Label2: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Button2: TButton; Button3: TButton; IdTelnet1: TIdTelnet; Label7: TLabel; CheckBox3: TCheckBox; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure Edit2KeyPress(Sender: TObject; var Key: Char); procedure Edit3KeyPress(Sender: TObject; var Key: Char); procedure Edit4KeyPress(Sender: TObject; var Key: Char); procedure Edit6KeyPress(Sender: TObject; var Key: Char); procedure ComboBox1KeyPress(Sender: TObject; var Key: Char); procedure ComboBox2KeyPress(Sender: TObject; var Key: Char); // procedure N4Click(Sender: TObject); // procedure IdTelnet1Connect(Sender: TObject); procedure IdTelnet1DataAvailable(Sender: TIdTelnet; const Buffer: String); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Button4Click(Sender: TObject); // procedure IdTelnet1Connected(Sender: TObject); // procedure N6Click(Sender: TObject); // procedure ComboBox1Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; serv, login, pass: string; i: byte; implementation {$R *.dfm} procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char); begin case Key of '0'..'9': key:=key; '.', ',': key:='.'; #8: key:=key; else key:=#0; end; end; procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char); begin case Key of '0'..'9': key:=key; '.', ',': key:='.'; #8: key:=key; else key:=#0; end; end; procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char); begin case Key of '0'..'9': key:=key; '.', ',': key:='.'; #8: key:=key; else key:=#0; end; end; procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: Char); begin case Key of '0'..'9': key:=key; '.', ',': key:='.'; #8: key:=key; else key:=#0; end; end; procedure TForm1.Edit6KeyPress(Sender: TObject; var Key: Char); begin case Key of '0'..'9': key:=key; '.', ',': key:='.'; #8: key:=key; else key:=#0; end; end; procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char); begin case Key of '0'..'9': key:=key; '.', ',': key:='.'; #8: key:=key; else key:=#0; end; end; procedure TForm1.ComboBox2KeyPress(Sender: TObject; var Key: Char); begin case Key of '0'..'9': key:=key; '.', ',': key:='.'; #8: key:=key; else key:=#0; end; end; procedure TForm1.IdTelnet1DataAvailable(Sender: TIdTelnet; const Buffer: String); const CR=#13; LF=#10; var Start, Stop: integer; begin memo1.Lines.Add(''); start:=1; stop:=Pos(CR, Buffer); if stop = 0 then stop:=length(buffer)+1; while start<=length(buffer) do begin memo1.Lines.Strings[memo1.Lines.Count - 1]:= memo1.Lines.Strings[memo1.Lines.count - 1] + copy(buffer, start, stop - start); if buffer[stop] = CR then begin memo1.Lines.Add(''); end; start:=stop+1; if start > length(buffer) then break; if buffer[start] = LF then start:=start+1; stop:=start; while (buffer[stop] <> CR) and (stop <=length(buffer)) do stop:=stop+1; end; end; procedure TForm1.Button2Click(Sender: TObject); begin memo1.Lines.Clear; // if idtelnet1.Connected then begin // idtelnet1.Disconnect; // memo1.Lines.Add('Соединение разорвано!'); // end; combobox1.ItemIndex:=-1; combobox2.ItemIndex:=-1; Edit1.Text:=('0'); Edit2.Text:=('0'); Edit3.Text:=('0'); Edit4.Text:=('0'); Edit6.Text:=('0'); checkbox1.Checked:=false; checkbox2.Checked:=false; end; procedure TForm1.ComboBox1Change(Sender: TObject); var cmd:string; begin memo1.Clear; if idtelnet1.Connected then begin cmd:='logout' + #13; for i:=1 to length(cmd) do idtelnet1.SendCh(cmd[i]); end; if combobox1.ItemIndex = 0 then begin memo1.Lines.Add('telnet 10.244.00.02'); serv:='10.244.00.02'; end; //if ... здесь было много-много оборудования if combobox1.ItemIndex = 163 then begin memo1.Lines.Add('telnet 10.244.00.03 '); serv:='10.244.0.03'; end; idtelnet1.Host:=serv; end; procedure TForm1.Button3Click(Sender: TObject); var cmd0, cmd,login,pass: string; vpi: byte; begin vpi:=strtoint(edit6.Text); login:='superlogin'; pass:='superpassword'; IF vpi > 0 then begin if not idtelnet1.Connected then begin idtelnet1.Connect; for i:=1 to length(login) do idtelnet1.SendCh(login[i]); idtelnet1.SendCh(#13); for i:=1 to length(pass) do idtelnet1.SendCh(pass[i]); idtelnet1.SendCh(#13); memo1.Lines.Add('Ñîåäèíåíèå óñòàíîâëåíî ñ îáîðóäîâàíèåì: ' + combobox1.Text + ', IP-àäðåñ: ' + serv); end; //if not cmd0:='info configure xdsl line 1/1/' + Edit1.Text + '/' + Edit2.Text + ' | match exact:service' + #13; for i:=1 to length(cmd0) do idtelnet1.SendCh(cmd0[i]); cmd:='info configure bridge port 1/1/' + Edit1.Text + '/' + Edit2.Text + ':0:' + Edit6.Text + ' | match exact:vlan-id' + #13; for i:=1 to length(cmd) do idtelnet1.SendCh(cmd[i]); end; //if vpi end; procedure TForm1.Button4Click(Sender: TObject); var com19: string; begin com19:='logout' + #13; for i:=1 to length(com19) do idtelnet1.SendCh(com19[i]); end; procedure TForm1.Button1Click(Sender: TObject); var slot, port, vpi{, i, j}: byte; ovlan, nvlan, prof: integer; cmd, cmd0, com1, com2, com3, com4, com5, com6, com7, com8, com9, com10, com11, com12, com13, com14, com15, com16, com17, login, pass: string; begin login:='superlogin'; pass:='superpassword'; slot:=StrToInt(Edit1.Text); port:=StrToInt(Edit2.Text); prof:=combobox2.ItemIndex+200; vpi:=strtoint(edit6.Text); ovlan:=StrToInt(Edit3.Text); nvlan:=StrToInt(Edit4.Text); if (slot {and port} > 0) and (port > 0) then begin if not idtelnet1.Connected then begin idtelnet1.Connect; for i:=1 to length(login) do idtelnet1.SendCh(login[i]); idtelnet1.SendCh(#13); for i:=1 to length(pass) do idtelnet1.SendCh(pass[i]); idtelnet1.SendCh(#13); memo1.Lines.Add('Ñîåäèíåíèå óñòàíîâëåíî ñ îáîðóäîâàíèåì: ' + combobox1.Text + ', IP-àäðåñ: ' + serv); end; //if not |
#21
|
|||
|
|||
Код:
if (ovlan {and nvlan and vpi} > 0) and (nvlan > 0) and (vpi > 0) then begin if not idtelnet1.Connected then begin idtelnet1.Connect; for i:=1 to length(login) do idtelnet1.SendCh(login[i]); idtelnet1.SendCh(#13); for i:=1 to length(pass) do idtelnet1.SendCh(pass[i]); idtelnet1.SendCh(#13); end; //if not if checkbox3.Checked then begin com1:='configure vlan id '+ edit4.Text + ' name ' + edit4.Text + ' mode residential-bridge' + #13 + 'exit all' + #13; for i:=1 to length(com1) do idtelnet1.SendCh(com1[i]); com2:='configure vlan shub id '+ edit4.Text + ' mode residential-bridge' + #13 + 'exit all' + #13; for i:=1 to length(com2) do idtelnet1.SendCh(com2[i]); com3:='configure vlan shub id '+ edit4.Text + ' egress-port lt:1/1/[4...19]' + #13; for i:=1 to length(com3) do idtelnet1.SendCh(com3[i]); com4:='configure vlan shub id '+ edit4.Text + ' egress-port lt:1/1/[1...8]' + #13; for i:=1 to length(com4) do idtelnet1.SendCh(com4[i]); com5:='configure vlan shub id '+ edit4.Text + ' egress-port lt:1/1/[12...19]' + #13; for i:=1 to length(com5) do idtelnet1.SendCh(com5[i]); com6:='configure vlan shub id '+ edit4.Text + ' egress-port network:0' + #13; for i:=1 to length(com6) do idtelnet1.SendCh(com6[i]); com7:='configure vlan shub id '+ edit4.Text + ' egress-port network:1' + #13; for i:=1 to length(com7) do idtelnet1.SendCh(com7[i]); com8:='configure vlan shub id '+ edit4.Text + ' egress-port network:2' + #13; for i:=1 to length(com8) do idtelnet1.SendCh(com8[i]); com9:='configure vlan shub id '+ edit4.Text + ' egress-port network:3' + #13 + 'exit all' + #13; for i:=1 to length(com9) do idtelnet1.SendCh(com9[i]); end;// if checkbox3 com10:='configure bridge port 1/1/' + Edit1.Text + '/' + Edit2.text +':0:' + Edit6.text + ' no pvid' + #13 + 'exit all' + #13; for i:=1 to length(com10) do idtelnet1.SendCh(com10[i]); com11:='configure bridge port 1/1/' + Edit1.Text + '/' + Edit2.text +':0:' + Edit6.text + ' no vlan-id ' + Edit3.text + #13 + 'exit all' + #13; for i:=1 to length(com11) do idtelnet1.SendCh(com11[i]); com12:='configure bridge port 1/1/' + Edit1.Text + '/' + Edit2.text + ':0:' + Edit6.text + ' vlan-id ' + Edit4.text + #13 + 'exit all' + #13; for i:=1 to length(com12) do idtelnet1.SendCh(com12[i]); com13:='configure bridge port 1/1/' + Edit1.Text + '/' + Edit2.text +':0:' + Edit6.text + ' pvid ' + Edit4.text + #13 + 'exit all' + #13; for i:=1 to length(com13) do idtelnet1.SendCh(com13[i]); if prof<>199 then begin cmd0:='info configure bridge port 1/1/' + Edit1.Text + '/' + Edit2.Text + ':0:' + Edit6.Text + ' flat' + #13; for i:=1 to length(cmd0) do idtelnet1.SendCh(cmd0[i]); com14:='configure xdsl line 1/1/'+ Edit1.Text +'/'+ Edit2.Text +' service-profile ' + IntToStr(prof) + #13 + 'exit all' + #13; for i:=1 to length(com14) do idtelnet1.SendCh(com14[i]); end; //if prof<> if checkbox1.Checked then begin com15:='configure atm pvc 1/1/' + Edit1.Text +'/'+ Edit2.Text +':0:'+ Edit6.Text +' admin-down' + #13 + 'exit all' + #13; for i:=1 to length(com15) do idtelnet1.SendCh(com15[i]); end; if checkbox2.Checked then begin com15:='configure xdsl line 1/1/' + Edit1.Text +'/'+ Edit2.Text +' admin-up' + #13 + 'exit all' + #13; com16:='configure atm pvc 1/1/' + Edit1.Text +'/'+ Edit2.Text+ ':0:'+ Edit6.Text +' no admin-down' + #13 + 'exit all' + #13; for i:=1 to length(com15) do idtelnet1.SendCh(com15[i]); for i:=1 to length(com16) do idtelnet1.SendCh(com16[i]); end; com17:='logout' + #13; //for j:=1 to 20 do for i:=1 to length(com17) do idtelnet1.SendCh(com17[i]); memo1.Lines.Add('******************************************************************************************************'); memo1.Lines.Add(combobox1.Text + '-àëêàòåëü, ñëîò-' + Edit1.Text + ' ïîðò-' + Edit2.Text + ' âëàí-' + Edit4.Text ); memo1.Lines.Add('******************************************************************************************************'); end //fi ovlan else //if ovlan if prof >= 200 then begin cmd0:='info configure xdsl line 1/1/' + Edit1.Text + '/' + Edit2.Text + ' | match exact:service' + #13; for i:=1 to length(cmd0) do idtelnet1.SendCh(cmd0[i]); cmd:='info configure bridge port 1/1/' + Edit1.Text + '/' + Edit2.Text + ':0:' + Edit6.Text + ' | match exact:vlan-id' + #13; for i:=1 to length(cmd) do idtelnet1.SendCh(cmd[i]); com1:='configure xdsl line 1/1/'+ Edit1.Text +'/'+ Edit2.Text +' service-profile ' + IntToStr(prof) + #13 + 'exit all' + #13; for i:=1 to length(com1) do idtelnet1.SendCh(com1[i]); if checkbox1.Checked then begin com2:='configure atm pvc 1/1/' + Edit1.Text +'/'+ Edit2.Text+ ':0:'+ Edit6.Text +' admin-down' + #13 + 'exit all' + #13; for i:=1 to length(com2) do idtelnet1.SendCh(com2[i]); end; //if checkbox1 if checkbox2.Checked then begin com2:='configure xdsl line 1/1/' + Edit1.Text +'/'+ Edit2.Text +' admin-up' + #13 + 'exit all' + #13; com3:='configure atm pvc 1/1/' + Edit1.Text +'/'+ Edit2.Text+ ':0:'+ Edit6.Text +' no admin-down' + #13 + 'exit all' + #13; for i:=1 to length(com2) do idtelnet1.SendCh(com2[i]); for i:=1 to length(com3) do idtelnet1.SendCh(com3[i]); end; //if checkbox2 end //if prof else //if prof begin if checkbox1.Checked then begin com2:='configure atm pvc 1/1/' + Edit1.Text +'/'+ Edit2.Text+ ':0:'+ Edit6.Text +' admin-down' + #13 + 'exit all' + #13; for i:=1 to length(com2) do idtelnet1.SendCh(com2[i]); end; //if checkbox1 if checkbox2.Checked then begin com2:='configure xdsl line 1/1/' + Edit1.Text +'/'+ Edit2.Text +' admin-up' + #13 + 'exit all' + #13; com3:='configure atm pvc 1/1/' + Edit1.Text +'/'+ Edit2.Text+ ':0:'+ Edit6.Text +' no admin-down' + #13 + 'exit all' + #13; for i:=1 to length(com2) do idtelnet1.SendCh(com2[i]); for i:=1 to length(com3) do idtelnet1.SendCh(com3[i]); end; //if checkbox2 end; com17:='logout' + #13; for i:=1 to length(com17) do idtelnet1.SendCh(com17[i]); end else showmessage('Íå äîñòàòî÷íî äàííûõ!!'); end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if idtelnet1.Connected then idtelnet1.Disconnect; end; end. |
#22
|
||||
|
||||
Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#23
|
|||
|
|||
)))))))))
и вправду чот не подумал |
#24
|
||||
|
||||
Ещё можно сфинтить так
Код:
procedure TForm1.snd(ds: string); var i: integer; begin for i:=1 to length(ds) do idtelnet1.SendCh(ds[i]); idtelnet1.SendCh(#13); end; procedure TForm1.Button1Click(Sender: TObject); var slot, port, vpi{, i, j}: byte; ovlan, nvlan, prof: integer; login, pass: string; begin login:= 'superlogin'; pass:= 'superpassword'; slot:= StrToInt(Edit1.Text); port:= StrToInt(Edit2.Text); prof:= ComboBox2.ItemIndex + 200; vpi:= StrToInt(Edit6.Text); ovlan:= StrToInt(Edit3.Text); nvlan:= StrToInt(Edit4.Text); if (slot {and port} > 0) and (port > 0) then begin if not idtelnet1.Connected then begin idtelnet1.Connect; {login} snd(login); {pass} snd(pass); memo1.Lines.Add('Соединение установлено с оборудованием: ' + combobox1.Text + ', IP-адрес: ' + serv); end; //if not if (ovlan {and nvlan and vpi} > 0) and (nvlan > 0) and (vpi > 0) then begin if not idtelnet1.Connected then begin idtelnet1.Connect; {login} snd(login); {pass} snd(pass); end; //if not if checkbox3.Checked then begin {com1} snd('configure vlan id '+ edit4.Text + ' name ' + edit4.Text + ' mode residential-bridge' + #13 + 'exit all'); {com2} snd('configure vlan shub id '+ edit4.Text + ' mode residential-bridge' + #13 + 'exit all'); {com3} snd('configure vlan shub id '+ edit4.Text + ' egress-port lt:1/1/[4...19]'); {com4} snd('configure vlan shub id '+ edit4.Text + ' egress-port lt:1/1/[1...8]'); {com5} snd('configure vlan shub id '+ edit4.Text + ' egress-port lt:1/1/[12...19]'); {com6} snd('configure vlan shub id '+ edit4.Text + ' egress-port network:0'); {com7} snd('configure vlan shub id '+ edit4.Text + ' egress-port network:1'); {com8} snd('configure vlan shub id '+ edit4.Text + ' egress-port network:2'); {com9} snd('configure vlan shub id '+ edit4.Text + ' egress-port network:3' + #13 + 'exit all'); end;// if checkbox3 {com10} snd('configure bridge port 1/1/' + Edit1.Text + '/' + Edit2.text +':0:' + Edit6.text + ' no pvid' + #13 + 'exit all'); {com11} snd('configure bridge port 1/1/' + Edit1.Text + '/' + Edit2.text +':0:' + Edit6.text + ' no vlan-id ' + Edit3.text + #13 + 'exit all'); {com12} snd('configure bridge port 1/1/' + Edit1.Text + '/' + Edit2.text + ':0:' + Edit6.text + ' vlan-id ' + Edit4.text + #13 + 'exit all'); {com13} snd('configure bridge port 1/1/' + Edit1.Text + '/' + Edit2.text +':0:' + Edit6.text + ' pvid ' + Edit4.text + #13 + 'exit all'); if prof<>199 then begin {cmd0} snd('info configure bridge port 1/1/' + Edit1.Text + '/' + Edit2.Text + ':0:' + Edit6.Text + ' flat'); {com14} snd('configure xdsl line 1/1/'+ Edit1.Text +'/'+ Edit2.Text +' service-profile ' + IntToStr(prof) + #13 + 'exit all'); end; //if prof<> if checkbox1.Checked then {com15} snd('configure atm pvc 1/1/' + Edit1.Text +'/'+ Edit2.Text +':0:'+ Edit6.Text +' admin-down' + #13 + 'exit all'); if checkbox2.Checked then begin {com15} snd('configure xdsl line 1/1/' + Edit1.Text +'/'+ Edit2.Text +' admin-up' + #13 + 'exit all'); {com16} snd('configure atm pvc 1/1/' + Edit1.Text +'/'+ Edit2.Text+ ':0:'+ Edit6.Text +' no admin-down' + #13 + 'exit all'); end; //for j:=1 to 20 do {com17} snd('logout'); memo1.Lines.Add('******************************************************************************************************'); memo1.Lines.Add(combobox1.Text + '-алкатель, слот-' + Edit1.Text + ' порт-' + Edit2.Text + ' влан-' + Edit4.Text); memo1.Lines.Add('******************************************************************************************************'); end //fi ovlan else //if ovlan if prof >= 200 then begin {cmd0} snd('info configure xdsl line 1/1/' + Edit1.Text + '/' + Edit2.Text + ' | match exact:service'); {cmd} snd('info configure bridge port 1/1/' + Edit1.Text + '/' + Edit2.Text + ':0:' + Edit6.Text + ' | match exact:vlan-id'); {com1} snd('configure xdsl line 1/1/'+ Edit1.Text +'/'+ Edit2.Text +' service-profile ' + IntToStr(prof) + #13 + 'exit all'); if checkbox1.Checked then {com2} snd('configure atm pvc 1/1/' + Edit1.Text +'/'+ Edit2.Text+ ':0:'+ Edit6.Text +' admin-down' + #13 + 'exit all'); if checkbox2.Checked then begin {com2} snd('configure xdsl line 1/1/' + Edit1.Text +'/'+ Edit2.Text +' admin-up' + #13 + 'exit all'); {com3} snd('configure atm pvc 1/1/' + Edit1.Text +'/'+ Edit2.Text+ ':0:'+ Edit6.Text +' no admin-down' + #13 + 'exit all'); end; //if checkbox2 end else //if prof begin if checkbox1.Checked then begin {com2} snd('configure atm pvc 1/1/' + Edit1.Text +'/'+ Edit2.Text+ ':0:'+ Edit6.Text +' admin-down' + #13 + 'exit all'); end; //if checkbox1 if checkbox2.Checked then begin {com2} snd('configure xdsl line 1/1/' + Edit1.Text +'/'+ Edit2.Text +' admin-up' + #13 + 'exit all'); {com3} snd('configure atm pvc 1/1/' + Edit1.Text +'/'+ Edit2.Text+ ':0:'+ Edit6.Text +' no admin-down' + #13 + 'exit all'); end; //if checkbox2 end; {com17} snd('logout'); end else showmessage('Не достаточно данных!!'); end; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#25
|
|||
|
|||
ух ты, ваще красотище!
Спасибо, Alegun! Вот это я понимаю код и сразу понятно что откуда и куда. |
#26
|
||||
|
||||
Ещё привлекло внимание вот это место,
Код:
procedure TForm1.ComboBox1Change(Sender: TObject); var cmd:string; begin memo1.Clear; if idtelnet1.Connected then begin cmd:='logout' + #13; for i:=1 to length(cmd) do idtelnet1.SendCh(cmd[i]); end; if combobox1.ItemIndex = 0 then begin memo1.Lines.Add('telnet 10.244.00.02'); serv:='10.244.00.02'; end; //if ... здесь было много-много оборудования if combobox1.ItemIndex = 163 then begin memo1.Lines.Add('telnet 10.244.00.03 '); serv:='10.244.0.03'; end; idtelnet1.Host:=serv; end; Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#27
|
|||
|
|||
Код:
if combobox1.ItemIndex = 0 then begin memo1.Lines.Add('telnet 10.244.00.02'); serv:='10.244.00.02'; end; //if ... здесь было много-много оборудования if combobox1.ItemIndex = 163 then begin memo1.Lines.Add('telnet 10.244.00.03 '); serv:='10.244.0.03'; end; Код:
if combobox1.ItemIndex = 163 then serv:='10.244.0.03'; |
#28
|
|||
|
|||
Люди не сочтите за наглость, но могли бы помочь с другой программой для бэкапов настроек целогоо списка оборудования. Как я вижу данную прогу:
на форме только мемо и procedure TForm1.FormCreate(Sender: TObject); begin //idtelnet1.Terminal:='VT100'; host:='huawei-941'; ip:='100.244.003.002'; cmd:='q' + #13 + 'en' + #13 + 'backup configuration ftp 10.244.57.205 ' + host + '-' + datetimetostr(date); IdTelnet1.Host:=ip; IdTelnet1.Connect; snd('rroot'); snd('rootpass'); snd(cmd); snd('y'); snd(logout); end; Но вот ньюанс, не знаю как реализовать чтобы он выполнил эту команду на целом списке оборудовании и выдерживал паузу после команды snd(cmd). Я тут подумал нельзя ли сделать процедуру внутри процедуры, т.е. одна будет перечислять ип адреса оборудования, а вторая, в которой будет первая процедура, будет уже выполнять вышеуказанную процедуру. Ну или как то так чот я уже сам запутался))). |
#29
|
||||
|
||||
ЙОООЛКИ... Форум нуджается в теге "spoiler", такие портянки эпичные напостили.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#30
|
|||
|
|||
Кстати, почему то когда отправляет рута съедает первую букву поэтому сделал два раза р (rroot)
|