Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



Mostrando entradas con la etiqueta proyecto. Mostrar todas las entradas
Mostrando entradas con la etiqueta proyecto. Mostrar todas las entradas

martes, 23 de diciembre de 2014

Listar el código fuente de un proyecto

Listar el código fuente de un proyecto


Os dejo una pequeña utilidad para listar el código fuente de un proyecto realizado en gambas3, donde se pueden obtener el árbol del proyecto y el código fuente de los archivos *.class, *.module  y *.form
todos ellos en un único fichero de texto. Ideal para documentar vuestro proyecto.

El programa se ejecuta en la linea de comando escribiendo:
$listproject




Enlace de descarga codigo fuente e instalador .deb: enlace a drive google




List the source code of a project



I leave a small utility to list the source code of a project in gambas3, where you can get the project tree and source code files * .class,  * .module and *.Form all in a single text file. Ideal for documenting your project.
The program runs on the command line by typing:
$listproject


Download link (source code and install .deb): Link to drive google








lunes, 6 de octubre de 2014

Explorador de proyecto de gambas3: Uso de la orden SCAN

Explorador de proyecto de gambas3: 

Uso de la orden SCAN


Tras leer un hilo (enlace) abierto por Shell en el foro de gambas-es.org, me he mirado  hoy  que hacia esta orden, que nunca había escuchado nada de ella,  ni de su uso, he intentar hacer un ejemplo de como usarla
Lo primero que vi fue la ayuda de gambaswiki ( http://gambaswiki.org/wiki/lang/scan?l=es ):

String Array = Scan ( String AS String , Pattern AS String )


La definición viene a decir que:

Busca coincidencia de una cadena con respecto a un patrón dado (según los patrones usados por LIKE, y devuelve una matriz con las cadenas asociadas a un caracter generico "*"

Me he hecho una aplicación que es capaz de leer un proyecto completo realizado en gambas3, y extraer los eventos, métodos, y variables que usa cada clase ó modulo.
Para la parte que "analiza" y extrae la información uso la funcion scan.

Por ejemplo:
    LISTA = Scan(lineas[A], "PUBLIC SUB *")
    If LISTA.count > 0 Then
      sublista = Scan(LISTA[0], "*_*")
      If sublista.count = 0 Then
        'se trata de una subrutina
        TreeView1.Add(ruta & "/public" & LISTA[0], LISTA[0] & " en " & Str$(a), Picture["method.png"], ruta & "/public")
        Continue
      Else
        'se trata de un evento
        TreeView1.Add(ruta & "/event" & LISTA[0], LISTA[0] & " en " & Str$(a), Picture["event.png"], ruta & "/event")

        Continue
      Endif
    Endif

En una linea de código (Linea[A]), compruebo con SCAN que su contenido es igual al patron "PUBLIC SUB *", asi discrimino todas las lineas donde se definen subrutinas públicas. Si coincide, devuelve un array de cadena con el contenido del nombre de la subrutina.
Esta subrutina, puede ser que sea un evento, para ello la vuelvo a analizar con el siguiente patrón:
= Scan(LISTA[0], "*_*")

Con el cual busco que el contenido del nombre que he extraido en el primer patrón, contiene un caracter "_" que en gambas se usa para señalar evento. Si se cumple esto, se trata de un evento, y pongo el icono de evento, y si no,  se trata de un método y pongo su respectivo icono.
Ademas de poner el icono, y el nombre del método/evento/variable también pongo el numero de linea donde esta dicha definición en la clase, para poderla buscar posteriormente.

Aquí tenéis el programa analizando en el proyecto del juego "1945":




Os dejo aqui el código completo: enlace de descarga en drive google

Saludos.

Julio