Показать сообщение отдельно
  #20  
Старый 21.04.2013, 15:22
darchken darchken вне форума
Прохожий
 
Регистрация: 31.03.2013
Сообщения: 29
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Всем привет!

Так вот, прогу свою закончил. Данная программулина предназначена для оборудования Алкатель 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
Ответить с цитированием