Mostrando entradas con la etiqueta 09- Importar librerías propias. Mostrar todas las entradas
Mostrando entradas con la etiqueta 09- Importar librerías propias. Mostrar todas las entradas

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