https://foro.gambas-es.org/viewtopic.php?f=5&t=5457
-----------------------------------
v3ctor
Miercoles, 11 May 2016, 21:34

"Ayudame" ( Programa De Consola O Terminal)
-----------------------------------
buenas...

mi nuevo y único proyecto de consola se llama "Ayudame"

 [img]https://foro.gambas-es.org/files/images/2261/terminal_1462998852_201852.png[/img] 

el proyecto esta en la granja para descargar estoy en las primeras pruebas del proyecto.

http://novatocodegambas.blogspot.com.uy/2016/05/ayudame-programa-de-consola.html


[b][size=14]Objetivos de esta aplicación de consola.[/size][/b]

1- ver que comandos tenemos disponibles para tareas X
2-ejemplos sencillos de uso de esos comandos.


-----------------------------------
jousseph
Jueves, 12 May 2016, 07:50

Re: "Ayudame" ( Programa De Consola O Terminal)
-----------------------------------
Hola V3ctor aqui te muestro una terminal mejorada la que llevo en fase casi terminada llamada gestor-((jou)) que es un gestor de operaciones:

Video fase viejito 
https://foro.gambas-es.org/viewtopic.php?f=5&t=4209&highlight=gestor

[youtube]4YiuIIzKWdA[/youtube]

Aqui casi perfecta:
https://foro.gambas-es.org/viewtopic.php?f=5&t=5003&highlight=terminal

 [img]https://foro.gambas-es.org/files/images/1000/gestor_de_operaciones_modifcado1_1463035209_504913.png[/img] 

Te invito a que la pruebes.

Saludos


-----------------------------------
v3ctor
Jueves, 12 May 2016, 17:41

Re: "Ayudame" ( Programa De Consola O Terminal)
-----------------------------------
el código fuente?


-----------------------------------
v3ctor
Jueves, 12 May 2016, 18:23

Re: "Ayudame" ( Programa De Consola O Terminal)
-----------------------------------
alguien sabe como limpiar la pantalla en la terminal misma donde esta funcionando el programa?

ejemplo hay un menú en pantalla y quiera limpiar la pantalla para mostrar otro menú.


-----------------------------------
shordi
Jueves, 12 May 2016, 18:40

Re: "Ayudame" ( Programa De Consola O Terminal)
-----------------------------------
Prueba con el comando "clear" del sistema operativo. Ejecutado con exec no con shell.


-----------------------------------
v3ctor
Jueves, 12 May 2016, 20:20

Re: "Ayudame" ( Programa De Consola O Terminal)
-----------------------------------
[quote user="shordi" post="32340"]Prueba con el comando "clear" del sistema operativo. Ejecutado con exec no con shell.[/quote]

no funciona me tira esto: TERM environment variable not set.


-----------------------------------
jousseph
Jueves, 12 May 2016, 21:46

Re: "Ayudame" ( Programa De Consola O Terminal)
-----------------------------------
[quote user="v3ctor" post="32348"][quote user="shordi" post="32340"]Prueba con el comando "clear" del sistema operativo. Ejecutado con exec no con shell.[/quote]

no funciona me tira esto: TERM environment variable not set.[/quote]

V3ctor deberias de experimentar con los ejemplos que trae gambas de consola, yo me esforze en hacerle todas las respectivas funciones y los codigos estan en todos lados.

Con respecto a lo tuyo yo utilizo es un textarea para mostrar la lectura del bash asi solo hago un clear o "" para borrar la misma, a mi me salio muchisimo mejor desarrollandolo de esta manera y me ayuda a gestionar las operaciones eficientemente del SO.


-----------------------------------
v3ctor
Jueves, 12 May 2016, 21:57

Re: "Ayudame" ( Programa De Consola O Terminal)
-----------------------------------
[quote user="jousseph" post="32350"] experimentar con los ejemplos de consola en gambas.[/quote]

no tengo claro cuales son...

podrías enumerarlos acá?


-----------------------------------
jousseph
Jueves, 12 May 2016, 22:06

Re: "Ayudame" ( Programa De Consola O Terminal)
-----------------------------------
[quote user="v3ctor" post="32351"][quote user="jousseph" post="32350"] experimentar con los ejemplos de consola en gambas.[/quote]

no tengo claro cuales son..
podrías enumerarlos acá?[/quote]

V3ctor mi consola la desarrolle desde el gambas 3.1 y ahorita noto que el gambas moderno trae las cosas diferentes busca en la famosa granja si esta la consola de comandos si no te perdiste algo valioso.


-----------------------------------
v3ctor
Jueves, 12 May 2016, 22:30

Re: "Ayudame" ( Programa De Consola O Terminal)
-----------------------------------
[quote user="jousseph" post="32353"][quote user="v3ctor" post="32351"][quote user="jousseph" post="32350"] experimentar con los ejemplos de consola en gambas.[/quote]

no tengo claro cuales son..
podrías enumerarlos acá?[/quote]

V3ctor mi consola la desarrolle desde el gambas 3.1 y ahorita noto que el gambas moderno trae las cosas diferentes busca en la famosa granja si esta la consola de comandos si no te perdiste algo valioso.[/quote]

lo he recuperado primero descargar los ejemplos viejos ver imagen
 [img]https://foro.gambas-es.org/files/images/2261/888.png[/img] 
segundo ir a  ver imagen

 [img]https://foro.gambas-es.org/files/images/2261/999.png[/img]


[code linenumbers=false syntax=gambas]' Gambas class file


Private $hProcess As Process
Private $sText As String

Static Public Sub Main()

  Dim hForm As Form

  hForm = New FConsole
  hForm.Show

End


Public Sub _new()

  $hProcess = Exec ["bash", "--noediting"] For Input Output As "Process"

End


Public Sub Form_Close()

  $hProcess.Kill

End


Public Sub Process_Read()

  Dim sStr As String

  'Debug Eof(Last);; Lof(Last);;
  'While Not sStr
  Read #$hProcess, sStr, -256
  'Wend
  'Error sStr
  $sText = $sText & sStr
  'Debug Quote(sStr)
  UpdateConsole

End


Public Sub Process_Error(sStr As String)
  
  $sText = $sText & sStr
  UpdateConsole
  
End

Private Sub UpdateConsole()

  Dim iPos As Integer
  Dim sStr As String
  
  While Len($sText)
  
    iPos = InStr($sText, "\n")
    If iPos = 0 Then iPos = Len($sText)
    
    sStr = Normalize(Left$($sText, iPos))
    'Debug sStr
    $sText = Mid$($sText, iPos + 1)
    
    txtConsole.Pos = txtConsole.Length
    txtConsole.Insert(sStr)
  
  Wend
  
End



Public Sub Process_Kill()
  
  'hProcess = NULL
  Try Me.Close
  
End



Public Sub txtCommand_Activate()
  
  Dim sLig As String
  
  sLig = txtCommand.Text & gb.NewLine
  
  'txtConsole.Pos = txtConsole.Length
  'txtConsole.Insert("# " & sLig)
  txtCommand.Clear

  sLig = Conv$(sLig, Desktop.Charset, System.Charset)
  
  Print #$hProcess, sLig;
  
End


Static Private Function Normalize(sStr As String) As String

  Dim sNorm As String
  Dim iInd As Integer
  Dim iCar As Integer
  Dim bEsc As Boolean

  ' For iInd = 1 To Len(sStr)
  ' 
  '   iCar = Asc(sStr, iInd)
  ' 
  '   If iCar = 27 Then
  '     bEsc = True
  '     Continue
  '   Endif
  ' 
  '   If bEsc Then
  '     If iCar < 32 Then bEsc = False
  '     Continue
  '   Endif
  ' 
  '   If iCar < 32 And iCar <> 10 Then iCar = 32
  ' 
  '   sNorm = sNorm & Chr$(iCar)
  ' 
  ' Next
  
  sNorm = sStr
  
  If System.Charset = Desktop.Charset Then 
    Return sNorm
  Else
    Return Conv$(sNorm, System.Charset, Desktop.Charset) 
  Endif
  
End

Public Sub Form_Open()

  txtCommand.SetFocus

End

Public Sub btnCtrlC_Click()

  Print #$hProcess, Chr$(3);

End

Public Sub btnCtrlD_Click()

  Print #$hProcess, Chr$(4);

End

Public Sub btnCtrlZ_Click()

  Print #$hProcess, Chr$(26);

End
[/code]


-----------------------------------
jousseph
Viernes, 13 May 2016, 00:10

Re: "Ayudame" ( Programa De Consola O Terminal)
-----------------------------------
[quote user="v3ctor" post="32355"][quote user="jousseph" post="32353"][quote user="v3ctor" post="32351"][quote user="jousseph" post="32350"] experimentar con los ejemplos de consola en gambas.[/quote]

no tengo claro cuales son..
podrías enumerarlos acá?[/quote]

V3ctor mi consola la desarrolle desde el gambas 3.1 y ahorita noto que el gambas moderno trae las cosas diferentes busca en la famosa granja si esta la consola de comandos si no te perdiste algo valioso.[/quote]

lo he recuperado primero descargar los ejemplos viejos ver imagen
 [img]https://foro.gambas-es.org/files/images/2261/888.png[/img] 
segundo ir a  ver imagen

 [img]https://foro.gambas-es.org/files/images/2261/999.png[/img]


[code linenumbers=false syntax=gambas]' Gambas class file


Private $hProcess As Process
Private $sText As String

Static Public Sub Main()

  Dim hForm As Form

  hForm = New FConsole
  hForm.Show

End


Public Sub _new()

  $hProcess = Exec ["bash", "--noediting"] For Input Output As "Process"

End


Public Sub Form_Close()

  $hProcess.Kill

End


Public Sub Process_Read()

  Dim sStr As String

  'Debug Eof(Last);; Lof(Last);;
  'While Not sStr
  Read #$hProcess, sStr, -256
  'Wend
  'Error sStr
  $sText = $sText & sStr
  'Debug Quote(sStr)
  UpdateConsole

End


Public Sub Process_Error(sStr As String)
  
  $sText = $sText & sStr
  UpdateConsole
  
End

Private Sub UpdateConsole()

  Dim iPos As Integer
  Dim sStr As String
  
  While Len($sText)
  
    iPos = InStr($sText, "\n")
    If iPos = 0 Then iPos = Len($sText)
    
    sStr = Normalize(Left$($sText, iPos))
    'Debug sStr
    $sText = Mid$($sText, iPos + 1)
    
    txtConsole.Pos = txtConsole.Length
    txtConsole.Insert(sStr)
  
  Wend
  
End



Public Sub Process_Kill()
  
  'hProcess = NULL
  Try Me.Close
  
End



Public Sub txtCommand_Activate()
  
  Dim sLig As String
  
  sLig = txtCommand.Text & gb.NewLine
  
  'txtConsole.Pos = txtConsole.Length
  'txtConsole.Insert("# " & sLig)
  txtCommand.Clear

  sLig = Conv$(sLig, Desktop.Charset, System.Charset)
  
  Print #$hProcess, sLig;
  
End


Static Private Function Normalize(sStr As String) As String

  Dim sNorm As String
  Dim iInd As Integer
  Dim iCar As Integer
  Dim bEsc As Boolean

  ' For iInd = 1 To Len(sStr)
  ' 
  '   iCar = Asc(sStr, iInd)
  ' 
  '   If iCar = 27 Then
  '     bEsc = True
  '     Continue
  '   Endif
  ' 
  '   If bEsc Then
  '     If iCar < 32 Then bEsc = False
  '     Continue
  '   Endif
  ' 
  '   If iCar < 32 And iCar <> 10 Then iCar = 32
  ' 
  '   sNorm = sNorm & Chr$(iCar)
  ' 
  ' Next
  
  sNorm = sStr
  
  If System.Charset = Desktop.Charset Then 
    Return sNorm
  Else
    Return Conv$(sNorm, System.Charset, Desktop.Charset) 
  Endif
  
End

Public Sub Form_Open()

  txtCommand.SetFocus

End

Public Sub btnCtrlC_Click()

  Print #$hProcess, Chr$(3);

End

Public Sub btnCtrlD_Click()

  Print #$hProcess, Chr$(4);

End

Public Sub btnCtrlZ_Click()

  Print #$hProcess, Chr$(26);

End
[/code][/quote]

Perfecto alli esta la conexion con el bash, para muchos espero les interese, esto tiene muchas sorpresitas brillantes algunos ya lo saben otros que ni se lo imaginan, con eso he logrado hasta asesinar todos los procesos del sistema sin ser superusuario y agregar ejecuciones con un click sin comandos, suerte, espero termines con exito tu proyecto, saludos.


