Leer Terminal


Objetivo: Leer Terminal
Que tal, antes que nada en mi primer mensaje les doy las gracias por abrir este espacio que estoy seguro a muchos nos es en extremo util. Bueno mi problema creo que es sencillo, en una parte de un programa que hice creo una carpeta sin problemas, pero me gustaria saber si hubo algun error o si la carpeta ya existia. Tengo ubuntu 10.10 y uso gambas 2.21 mi codigo es el siguiente:

PUBLIC SUB Button1_Click()

TRY EXEC ["mkdir", "Escritorio/prueba"]

IF ERROR THEN
Message("el archivo ya se habia creado")

ELSE
Message("El archivo se creo")
ENDIF

END

Pense que con try cacharia el error de la terminal jejeje pero no, siempre aparece que el archivo se creo aunque escriba mal la ruta a proposito por ejemplo. En la consola me aparece esto "mkdir: no se puede crear el directorio «Escrtorio/otra»: No existe el fichero o el directorio" (notese que le quite una ' i ' a Escritorio para provocar el error). Pero sigue mandando el mensaje de que se creo el archivo, alguien me puede ayudar a diferenciar el error o leer la terminal? gracias y saludos

Perfil MP  
Objetivo: Re: Leer Terminal
Hola,Erik G, bienvenido

Si quieres usar TRY, para detectar el error, tambien tendras que usar la orden mkdir de gambas:

PUBLIC SUB Form_Open()
TRY MKDIR User.home & "/directorio_prueba"
IF ERROR THEN
Message("Se ha producido un error al crear la carpeta..." & Error.text, "aceptar")
ELSE
Message.Info("todo creado correctamente")
ENDIF


Asi TRY, si detectará el error y te podra informar de cual ha sido.


Para leer la terminal usa process, por ejemplo:
Public hproc As Process

Public Sub _new()

End

Public Sub Form_Open()

hproc = Exec ["ls"] For Read As "lectura"


End

Public Sub lectura_Read()
Dim Salida As String
Read #Last, Salida,-250
Print Salida
End



Nota:
Lo he probado con el comando mkdir, pero no me lee la linea de error que genera.. no el porqué

Objetivo: Re: Leer Terminal
jsbsan escribió: [Ver mensaje]

Nota:
Lo he probado con el comando mkdir, pero no me lee la linea de error que genera.. no el porqué


Porque la salida de errores de terminal van por el stderr en lugar del stdout. Hay que cambiar o añadir también el manejador de gambas para la salida de errores:


Public Sub lectura_Error() ' _Error para stderr
Dim Salida As String
Read #Last, Salida,-250
Print Salida
End



Saludos

Perfil MP  
Objetivo: Re: Leer Terminal
Genial, muchas gracias, ahora puedo seguir programando saludos

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.4114s (PHP: -76% SQL: 176%)
Consultas SQL: 45 - Debug off - GZIP Activado