Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 28-04-2018
koalasoft koalasoft is offline
Miembro
 
Registrado: oct 2004
Ubicación: Tenosique Tabasco
Posts: 86
Poder: 20
koalasoft Va por buen camino
Mi problema radicaba en que al envia datos a la terminal era demasiado rápido y solo ejecutaba el ultimo comando enviado, asi que decidí utilizar el sleep para darle oportunidad de poder conectarme ...

Código Delphi [-]
procedure TForm1.BtnConectarClick(Sender: TObject);
begin
  Telnet.Host := IPServidor.Text;
  Telnet.Port := StrToInt( Puerto.Text );
  try
  Telnet.Connect;
  log.Lines.Add('Intentando conexión...');
  log.Lines.Add('');
  except
    ShowMessage('No se pudo realizar la conexión..');
    Exit;
  end;
end;

y una vez conectado envío los los datos de unicio (usuario y contraseña) seguido de los comando que requiero...

Evento OnConnect del componente TidTelnet

Código Delphi [-]
if Telnet.Connected then
  begin
    log.Lines.Add('Conectado...') ;
    log.Lines.Add('') ;
    Sleep(1000);
    Telnet.WriteLn('root');
    Sleep(1000);
    Telnet.WriteLn('admin');
    Sleep(1000);
    Telnet.WriteLn('enable');
    Sleep(1000);
    Telnet.WriteLn('config');
    Sleep(1000);
  end
    else
      begin
        log.Lines.Add('Error en la Conección...') ;
        log.Lines.Add('') ;
      end;

Requerido para que el cursor en la terminal se posicione en la ultima linea de la ultima columna para que este preparado para nuevos comando..

Evento OnDataAvailable del componente TIdTelnet

Código Delphi [-]
procedure TForm1.TelnetDataAvailable(Sender: TIdTelnet;
  const Buffer: String);
{This routine comes directly from the ICS TNDEMO code. Thanks to
Francois Piette
It updates the memo control when we get data}
const
    CR = #13;
    LF = #10;
var
    Start, Stop : Integer;
begin
  if Log.Lines.Count = 0 then
      Log.Lines.Add('');
 
  Start := 1;
  Stop  := Pos(CR, Buffer);
  if Stop = 0 then
      Stop := Length(Buffer) + 1;
  while Start <= Length(Buffer) do
  begin
      Log.Lines.Strings[Log.Lines.Count - 1] :=
          Log.Lines.Strings[Log.Lines.Count - 1] +
          Copy(Buffer, Start, Stop - Start);
      if Buffer[Stop] = CR then
      begin
          Log.Lines.Add('');
          {$IFNDEF Linux}
          SendMessage(Log.Handle, WM_KEYDOWN, VK_UP, 1);
          {$ENDIF}
      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;

De alli en adelante ya podré usar desde la aplicación las configuraciones que requiero ...


Saludos !! ..

Última edición por Casimiro Notevi fecha: 29-04-2018 a las 02:31:09.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
conexión mediante ado a access r1d2m3 Conexión con bases de datos 4 24-11-2009 18:54:28
Conexion mediante ODBC, OLE DB, ADO? tsomarp Conexión con bases de datos 1 25-02-2005 13:05:27
Conexion con Oracle mediante ADO PTW Oracle 0 21-02-2005 14:50:25
Conexion a Access Mediante una DLL Draco Conexión con bases de datos 0 29-04-2004 04:27:47
Conexion a DBF mediante DBE Celta777 Conexión con bases de datos 2 18-10-2003 19:59:52


La franja horaria es GMT +2. Ahora son las 23:31:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi