Página 1 de 1

Fluent - Autoit Syntactic Sugar

Publicado: 03 Jun 2013, 21:47
por ohtejera
Buenas.

Les presento en este post un proyecto en el cual estoy trabajando de forma inconstante desde hace un tiempo. Antes de entrar en detalles quiero pedir disculpas ya que el proyecto se encuentra inestable y es prácticamente impresentable pero me gustaría recibir sus comentarios.

Este proyecto lleva como nombre Fluent y tiene como objetivo el crear una serie de objetos que son envoltorios de algunas funciones del lenguaje. La idea es agregar "syntactic sugar" (http://en.wikipedia.org/wiki/Syntactic_sugar) y hacer algunas cosas un poco más "orientada a objetos". Claro que esto es demasiado pretencioso y lejos estoy de hacer algo optimizado, pero tomo este proyecto como un experimento que en lo personal me ayudo a reducir/ordenar el código de mis aplicaciones desarrolladas con AutoIt. Para construir los objetos se hace uso de la excelente librería AutoItObject.

En el proyecto van a encontrar una carpeta que contiene algunos ejemplos y también los test que pueden ayudar a entender un poco mas los objetos disponibles y su funcionamiento. Pido disculpas por la escasa documentación, algunos métodos están comentados otros no y seguro si alguien lo prueba va a recibir algún que otro error.

Es un proyecto ISN, así que si están haciendo uso del excelente editor ISN AutoiT studio (del cual nos hablo BasicOs en este post http://www.emesn.com/autoitforum/viewtopic.php?p=12584: ), pueden importar el proyecto directamente en el IDE.

Es muy probable que esto no tenga mas valor que como algo experimental pero quería compartirlo con alguién.

Muchas gracias.
Saludos.

Re: Fluent - Autoit Syntactic Sugar

Publicado: 06 Jun 2013, 15:48
por ohtejera
Les dejo algunos ejemplos de los objetos disponibles en Fluent y su funcionamiento.

Objeto _file_ con iteradores:

Código: Seleccionar todo

#include "../lib/fluent.au3"

;Read in a line of text from a previously opened text file.
Global $File = _file_("mat.txt") ;Instance file object
Global $ite = $File.linesIterator() ;Get iterator for the lines in the file

;Print the number of lines in the file.
$_msg_.print("Number of lines: " & $ite.count)

; Read in lines of text until the EOF
While $ite.hasNext()
	$_msg_.print($File.readLine($ite.next()))
WEnd
$ite = 0

$_msg_.print("Number of char: " & $File.chars())
$ite = $File.charIterator()

;Read in 1 character at a time until the EOF is reached
While $ite.hasNext()
	$_msg_.printc($File.read($ite.next()))
WEnd

$File.close()
Objeto _dir_ para trabajar con directorios:

Código: Seleccionar todo

#include "../lib/fluent.au3"

;Open directory
Global $Dir = _dir_("dir1", 0)
$_msg_.print("Directory name -> " & $Dir.name)

;Files count
$_msg_.print("Files count -> " & $Dir.files())

;Dirs count
$_msg_.print("Dirs count -> " & $Dir.dirs())

;Get files iterator
Local $ite = $Dir.filesIterator()

;Iterate over files in directory
While $ite.hasNext()
	Local $File = $Dir.getFiles().item($ite.next())
	$_msg_.print("File read -> " & $File.readLine())
	$File.close()
	$File = 0
WEnd
Objeto _process_ para trabajar con procesos:

Código: Seleccionar todo

#include "../lib/fluent.au3"

;Process object type example
Global $sAppName = "dummy.exe"
Run($sAppName)

Global $Proc = _process_($sAppName)

;Display some data
$_msg_.print("App name -> " & $Proc.name)
$_msg_.print("App Pid -> " & $Proc.pid)
$_msg_.print("Object type -> " & $Proc._type_)

$_msg_.print("Priority of an open process -> " & $Proc.getPriority())
$Proc.setPriority(4)
$_msg_.print("Priority of an open process -> " & $Proc.getPriority())

$Proc.close()
$_msg_.print("App exists? -> " & $Proc.exist())
Objeto $_msg_ para desplegar mensajes:

Código: Seleccionar todo

;Displays a simple message box
$_msg_.print("Hello")

;Displays a simple message box, set title, icon and timeout
$_msg_.print("Hello", "Title", 64, 5)

;Writes data to the STDOUT stream
$_msg_.printc("Hello console")

;Displays a balloon tip from the AutoIt Icon.
$_msg_.tip("Hello tray tip!")

;Displays a simple message box and save the message in a file
$_msg_.print("Hello").save("msg.txt")

;or use a _file_ object instance
Local $File = _file_("msg2.txt")
$_msg_.print("Hello").save($File)
$File = 0

Saludos.

Re: Fluent - Autoit Syntactic Sugar

Publicado: 11 Jun 2013, 03:55
por BasicOs
Muchas gracias por el esfuerzo en fabricar los objetos y sus componentes, está claro que cada manera de programar es diferente y hay personas acostumbradas ya a los objetos, :smt024 :smt024 :smt041 :smt041
Seguro que siguiendo la sintaxis típicas de las funciones File Win....., puedes generar algo parecido con subfunciones en los métodos,
Salu22:)