lunes, 23 de julio de 2012

Importar librerias propias

Cuando nuestro código es muy grande o cuando creamos unas pequeñas librerías para crear un código más limpio llevamos estas funciones o clases a otro fichero. Lo aplicaremos al ejemplo de las cadenas unicode que se ha expuesto en  el capítulo 4.

En el archivo "cadenas.gs" escribiremos las siguientes funciones:
 
[indent=4]

def toma_cadena (a:string,i :int,f:int=-1):string
    b: string
   
    var bu = new StringBuilder ();
    if f==-1
        bu.append_unichar(a.get_char(a.index_of_nth_char(i)))
        b=bu.str
    else
        for var p =i to f
            bu.append_unichar(a.get_char(a.index_of_nth_char(p)))
        b=bu.str
   
    return b


def longitud (a:string):int
    return a.char_count()
 
En el archivo "principal.gs" escribiremos el siguiente código:

[indent=4] a: string init a="áéíóú" stdout.printf ("%i",longitud (a) ) print ("\n") stdout.printf( "%s\n",toma_cadena(a,0,1))


Y para compilar haremos lo siguiente en Geany:
valac -o "%e" cadenas.gs "%f" 
o lo que es lo mismo:
valac -o principal cadenas.gs principal.gs


Esto creará un archivo ejecutable que se llamará principal y usará como fuentes ambos archivos. Por lo tanto no dará error al compilar puesto que las funciones que le faltan en el archivo principal.gs las encontrará en cadenas.gs


No hay comentarios:

Publicar un comentario