• No results found

503: DETECTORS 503 A: INTRODUCTION

fa_archive

archivos archivados

file_find_next()

Devuelve el nombre del siguiente archivo que satisface la máscara y los atributos indicados previamente. Si no existe tal archivo, devuelve una cadena vacía.

file_find_close()

Debe ser llamada después de manipular los archivos para liberar la memoria.

file_attributes(fname,attr)

Indica si el archivo fname tiene todos los atributos dados por attr. Usa una combinación de las constantes indicadas anteriormente.

Las siguientes funciones sirven para cambiar los nombres de archivos. Observa que estas funciones no afectan a los archivos en sí, si no al nombre:

filename_name(fname)

Devuelve el nombre del archivo fname, con la extensión pero sin la ruta.

filename_path(fname)

Devuelve la ruta al archivo indicado, incluyendo la última barra de separación.

filename_dir(fname)

Devuelve el directorio del archivo, que normalmente suele ser igual que la ruta pero sin la última barra de separación.

filename_drive(fname)

Devuelve la información de la unidad del archivo.

filename_ext(fname)

Devuelve la extensión del archivo, incluyendo el punto.

filename_change_ext(fname,newext)

Devuelve el nombre del archivo con la extensión sustituida por newext. Si indicas una cadena de texto vacía para newext puedes eliminar la extensión del archivo.

En algunas situaciones puede que quieras leer datos de archivos binarios. Para ello dispones de las siguientes rutinas de bajo nivel:

file_bin_open(fname,mod)

Abre el archivo con el nombre especificado. El parámetro mod indica qué se puede hacer con el archivo: 0=leer, 1=escribir y 2= leer y escribir. La función devuelve la id del archivo que debe utilizarse en las demás funciones. Puedes abrir hasta un máximo de 32 archivos simultáneamente, pero no olvides cerrarlos cuando hayas terminado con ellos.

file_bin_rewrite(fileid)

Limpia el archivo indicado por fileid, es decir, borra todo su contenido y se sitúa al principio del archivo para empezar a escribir.

file_bin_close(fileid)

Cierra el archivo especificado. No olvides llamarla!

file_bin_size(fileid)

Devuelve el tamaño en bytes del archivo indicado.

file_bin_position(fileid)

Devuelve la posición actual en el archivo en bytes (0 es el principio del archivo).

file_bin_seek(fileid,pos)

Mueve la posición en el archivo a la posición indicada por pos. Para añadir contenido al final de un archivo, usa el valor file_bin_size(fileid) para el parámetro pos.

file_bin_write_byte(fileid,byte)

Escribe un byte de datos al archivo especificado.

file_bin_read_byte(fileid)

Lee un byte de datos del archivo.

Si el jugador ha seleccionado modo seguro en sus preferencias, para ciertas rutinas, no se permite especificar la ruta y sólo puedes acceder a los archivos en la carpeta de la aplicación p. Ej. para escribir en ellos.

Las siguientes tres variables de sólo lectura pueden ser útiles:

game_id*

Identificador único para el juego. Puedes usarlo si necesitas un nombre único de archivo.

working_directory*

Carpeta de trabajo del juego. (No incluye la diagonal invertida final).

temp_directory*

Carpeta temporal creada para el juego. Puedes almacenar archivos temporales aquí. Serán eliminados cuando el juego finalice.

En ciertas situaciones podrías dar al jugador la posibilidad de introducir argumentos mediante la línea de comandos al juego que están ejecutando (para por ejemplo activar trucos o modos especiales). Para obtener estos argumentos puedes usar las siguientes dos rutinas:

parameter_count()

Devuelve el número de parámetros de la línea de comandos (nota que el nombre del programa es uno de ellos).

parameter_string(n)

Devuelve los parámetros n de la línea de comandos. El primer parámetro tiene índice 0 y es el nombre del programa.

Por último, puedes leer el valor de las variables de entorno con la siguiente función:

environment_get_variable(name)

Devuelve el valor (una cadena de texto) de la variable de entorno con el nombre especificado

Registro

Si deseas almacenar una pequeña cantidad de información entre cada ejecución del juego hay un mecanismo más simple que el emplear un archivo. Puedes usar el registro. El registro es una gran base de datos de Windows para mantener todo tipo de configuraciones para los programas. Una entrada tiene un nombre, y un valor. Puedes usar tanto cadenas como valores reales. Tenemos las siguientes funciones:

registry_write_string(name,str)

Crea una entrada en el registro con el nombre name y como valor la cadena str.

registry_write_real(name,x)

Crea una entrada en el registro con el nombre name y el valor real x.

registry_read_string(name)

Devuelve la cadena almacenada con el nombre name. (El nombre debe existir, de otra forma se devuelve una cadena vacía).

registry_read_real(name)

Devuelve el valor real almacenado en la entrada name. (El nombre debe existir, de otra forma se devuelve el número 0).

registry_exists(name)

Indica si la entrada name existe.

En realidad, los valores en el registro están agrupados en claves. Las rutinas anteriores trabajan con valores dentro de la clave que está creada especialmente para tu juego. Tu programa puede usar esto para obtener cierta información sobre el sistema en el que se está ejecutando el juego. También puedes leer valores en otras claves. Puedes escribir valores en ellas pero ten mucho cuidado. PUEDES FÁCILMENTE DESTRUIR TU SISTEMA de esta forma. (La escritura no se permite en modo seguro). Nota que las claves también están colocadas en grupos. Las siguientes rutinas trabajan por defecto con

el grupo HKEY_CURRENT_USER. Pero si quieres puedes cambiar este grupo raíz de trabajo. Por ejemplo, para obtener el directorio temporal actual, usa:

Related documents