Página 1 de 1

Buscar texto en consola

Publicado: 18 Jun 2015, 02:59
por Vegan10
Hola que tal, en mi trabajo tengo una consola de prueba que me devuelve lineas de texto (errores) estoy usando la funcion WinGetText para almacenar el texto, pero necesito buscar la palabra error cada vez que se actualiza. Como puedo realizar una busqueda del texto de la consola para realizar una accion?

Gracias.

Re: Buscar texto en consola

Publicado: 18 Jun 2015, 17:46
por Dany
Busca sobre StdoutRead & StderrRead es lo que necesitas.

Saludos :smt027

Re: Buscar texto en consola

Publicado: 19 Jun 2015, 04:01
por Vegan10
Perdon, busque las funciones pero no las entendí, la consola que uso es propia de mi trabajo, no un cmd. Asi es como hago para obtener mi texto:

Código: Seleccionar todo

$text = WinGetText("[CLASS:ThunderRT6FormDC]")
MsgBox(0,"",$text)
por logica deberia haber una forma mas sensilla de ejecutar una accion al encontrar determinada linea en la consola, solo que por falta de conocimientos en autoit y en programacion no se como hacerlo. me podrias orientar un poco mas? no te pido el codigo pero si algun ejemplo. gracias

Re: Buscar texto en consola

Publicado: 19 Jun 2015, 17:42
por Chefito
Pero si ya obtienes el texto de la consola, es fácil no? Solamente tienes que tratar ese texto buscando una determinada cadena y poniendo una condición.
Trata el texto con las funciones que empiezan por String. También puedes mirar la función _stringbetween.

Espero haberte ayudado.

Saludos.

Re: Buscar texto en consola

Publicado: 23 Jun 2015, 06:50
por Vegan10
Hola fue de bastante ayuda, solo que ahora mi script se detiene cuando no encuentra la palabra CODE
asd2.au3" (29) : ==> Subscript used on non-accessible variable.:
$aAsa = $aArray[0]
$aAsa = $aArray^ ERROR
->01:40:50 AutoIt3.exe ended.rc:1
+>01:40:50 AutoIt3Wrapper Finished.
>Exit code: 1 Time: 18.24

Código: Seleccionar todo

#include <Array.au3>
#include <String.au3>
#include <MsgBoxConstants.au3>


HotKeySet("{ESC}", "_Terminate")
Global	$aAsa = 0

Example()

func Example()

	while 1
	sleep(5000)
	Mierda()

	if $aAsa = " CODE" then
		MsgBox($MB_SYSTEMMODAL, "", "si")
	endIf
	WEnd
EndFunc

Func Mierda()
local $text=0
local $aArray=0
	$text = WinGetText("[CLASS:ThunderRT6FormDC]")
    $aArray = _StringBetween($text, "ERROR", ":")
	$aAsa = $aArray[0]
EndFunc

Func _Terminate()
    Exit
EndFunc   ;==>_Terminate