Relacionado con:
fix_filename_slashes,
fix_filename_path.
char *fix_filename_slashes(char *path);
Convierte los separadores de directorios de un nombre de fichero a un
car當ter est疣dar. En plataformas DOS, esto es la antibarra. Devuelve una
copia del par疥etro de camino.
Relacionado con:
fix_filename_case,
fix_filename_path.
char *fix_filename_path(char *dest, const char *path, int size);
Convierte un nombre de fichero parcial en una ruta completa, escribiendo
en dest como m痊imo el n?ero de bytes especificados. Devuelve una copia
del par疥etro dest.
Relacionado con:
fix_filename_case,
fix_filename_slashes.
char *replace_filename(char *dest, const char *path,
const char *filename, int size);
Sustituye el camino+nombre de fichero especificados con un nuevo nombre
de fichero, escribiendo en dest como m痊imo el n?ero de bytes
especificados. Devuelve una copia del par疥etro dest.
Relacionado con:
get_filename,
replace_extension,
append_filename.
char *replace_extension(char *dest, const char *filename,
const char *ext, int size);
Sustituye el nombre de fichero+extensi? especificados con una nueva
extensi?, escribiendo en dest como m痊imo el n?ero de bytes
especificados. Devuelve una copia del par疥etro dest.
Relacionado con:
get_extension,
replace_filename.
char *append_filename(char *dest, const char *path,
const char *filename, int size);
Concatena el nombre de fichero especificado al final del camino
especificado, escribiendo en dest como m痊imo el n?ero de bytes
especificados. Devuelve una copia del par疥etro dest.
Relacionado con:
replace_filename.
char *get_filename(const char *path);
Cuando se le pasa el path espec?ico de un fichero, devuelve un puntero a
la porci? del nombre del fichero. Tanto '\' como '/' son reconocidos
como separadores de directorios.
Relacionado con:
get_extension,
put_backslash,
replace_filename.
char *get_extension(const char *filename);
Cuando se le pasa un nombre de fichero completo (con o sin informaci?
de path) devuelve un puntero a la extensi? del fichero.
Relacionado con:
get_filename,
put_backslash,
get_filename.
int file_exists(const char *filename, int attrib, int *aret);
Chequea la existencia de un fichero de nombre y atributos dados (lea m疽
Relacionado con:
exists,
file_size,
file_time.
int exists(const char *filename);
Versi? reducida de file_exists(), que comprueba la existencia de ficheros
normales, los cuales pueden tener los bits de archivo o s?o lectura
activados, pero no son ocultos, directorios, ficheros de sistema, etc.
Relacionado con:
file_exists,
file_size,
file_time.
Relacionado con:
file_exists,
file_time.
time_t file_time(const char *filename);
Devuelve el tiempo de modificaci? de un fichero (n?ero de segundos desde
las 00:00:00 GMT del 1 de Enero de 1970).
Relacionado con:
file_exists,
file_size.
int delete_file(const char *filename);
Borra un fichero.
int for_each_file(const char *name, int attrib,
void (*callback)(const char *filename, int attrib,
int param), int param);
Encuentra todos los ficheros que se ajusten a la m疽cara (ej: *.exe) y
atributos especificados (lea m疽 arriba), y ejecuta callback() por cada
uno de ellos. A callback() se le pasan tres par疥etros, el primero es la
cadena que contiene el nombre completo del fichero, el segundo los
hechas a callback().
int al_findfirst(const char *pattern, struct al_ffblk *info, int attrib);
Funci? de bajo nivel para buscar ficheros. Esta funci? busca el primer
time_t time; - tiempo de modificaci? del fichero
long size; - tama? del fichero
char name[512]; - nombre del fichero
};
Hay m疽 cosas en esta estructura, pero son para uso interno.
Relacionado con:
al_findnext,
al_findclose.
Relacionado con:
al_findfirst,
al_findclose.
void al_findclose(struct al_ffblk *info);
Esto cierra una b?queda previamente abierta mediante al_findfirst().
Relacionado con:
al_findfirst,
al_findnext.
int find_allegro_resource(char *dest, const char *resource,
const char *ext, const char *datafile,
const char *objectname, const char *envvar,
const char *subdir, int size);
Busca un archivo de recursos, ej allegro.cfg o language.dat. Pas疣dole
clave en el ejecutable: si hay cadenas como "Soy la clave del fichero de
datos", ser? muy f當il acceder a sus datos :-)
Importante: tan pronto como haya abierto un fichero usando un password de
encriptaci?, llame a packfile_password(NULL). Mejor a?, no use esta
funci?. Nunca.
Relacionado con:
pack_fopen,
load_datafile.
PACKFILE *pack_fopen(const char *filename, const char *mode);
Abre un fichero seg? el modo, que puede contener cualquiera de los
siguientes letras.
-
'r' - abrir fichero para leer.
-
'w' - abrir fichero para escribir, sobreescribiendo datos existentes.
-
'p' - abrir fichero en modo comprimido. Los datos ser疣 comprimidos a
medida que se escriben en el fichero, y autom疸icamente
descomprimidos durante las operaciones de lectura. Los ficheros
creados de este modo producir疣 basura si se intentan leer sin
activar antes este modo.
-
datos no necesitan ser descomprimidos.
En vez de estos modos, una de las constantes F_READ, FWRITE,
F_READ_PACKED, F_WRITE_PACKED o F_WRITE_NOPACK puede ser usada como el
par疥etro de modo. Si todo funciona, pack_fopen() devuelve un puntero a
pueden ser usados por varios motivos. Estos nombres son:
-
"#" - lee datos que han sido a?didos al fichero ejecutable con la
utilidad exedat, como si fuesen de un fichero independiente.
-
'nombre.dat#nombre_obj' - abre un objeto espec?ico de un fichero de
datos, y lo lee como si fuese de un fichero normal. Puede crear
ficheros de datos anidados ex當tamente como una estructura normal de
directorios, por ejemplo podr? abrir el fichero
'nombre.dat#graficos/nivel1/datomapa'.
-
'#nombre_obj' - combinaci? de lo de arriba, leer un objeto de un
fichero de datos que ha sido a?dido al ejecutable.
Con estos nombres especiales, los contenidos de un objeto de un fichero de
datos o de un fichero a?dido pueden ser le?os de modo id駭tico que un
fichero normal, por lo que cualquiera de las funciones de acceso a
ficheros de Allegro (ejemplo: load_pcx() y set_config_file()) pueden ser
le?o). Finalmente, tenga en cuenta que los tipos de objetos especiales de
Allegro no son los mismos que los de los ficheros de los que importe los
datos. Cuando importe datos como bitmaps o samples en el grabber, 駸tos
son convertidos a un formato espec?ico de Allegro, pero el marcador de
sintaxis de ficheros '#' lee los objetos como trozos binarios raw. Esto
significa, que si por ejemplo, quiere usar load_pcx para leer una imagen
de un fichero de datos, deber? importarla como un bloque binario en vez
de un objeto BITMAP.
Relacionado con:
file_select,
packfile functions,
pack_fopen_chunk,
packfile_password.
Relacionado con:
pack_fopen.
int pack_fclose(PACKFILE *f);
int pack_fseek(PACKFILE *f, int offset);
int pack_feof(PACKFILE *f);
int pack_ferror(PACKFILE *f);
int pack_getc(PACKFILE *f);
int pack_putc(int c, PACKFILE *f);
int pack_igetw(PACKFILE *f);
long pack_igetl(PACKFILE *f);
int pack_iputw(int w, PACKFILE *f);
long pack_iputl(long l, PACKFILE *f);
int pack_mgetw(PACKFILE *f);
long pack_mgetl(PACKFILE *f);
int pack_mputw(int w, PACKFILE *f);
long pack_mputl(long l, PACKFILE *f);
long pack_fread(void *p, long n, PACKFILE *f);
long pack_fwrite(const void *p, long n, PACKFILE *f);
char *pack_fgets(char *p, int max, PACKFILE *f);
int pack_fputs(const char *p, PACKFILE *f);
Todas estas funcionan como las funciones equivalentes stdio, excepto que
pack_fread() y pack_fwrite() toman un s?o par疥etro de tama? en vez de
ese est?ido sistema de tama? y num_elements, s?o puede avanzar en un
fichero hacia delante desde la posici? relativa actual, y pack_fgets() no
incluye el retorno de carro en las cadenas que devuelve. Las rutinas
pack_i* y pack_m leen y escriben valores de 16 y 32 bits usando los
PACKFILE *pack_fopen_chunk(PACKFILE *f, int pack);
Abre sub-chunks en un fichero. Los chunks son primariamente usados por el
c?igo de ficheros de datos, pero pueden serle ?iles para sus propias
rutinas de ficheros. Un chunk provee una vista l?ica de parte de un
/* Asumo que f es un PACKFILE * que ha sido abierto en modo escritura*/
f = pack_fopen_chunk(f, pack);
escribe datos en f
f = pack_fclose_chunk(f);
Los datos escritos en el chunk ser疣 precedidos con dos contadores de
tama? (32 bits, big-endian). Para los chunks sin compresi?, 駸tos ser疣
ajustados al tama? de los datos del chunk. Para chunks comprimidos
(creados al activar la variable pack), el primer tama? es el tama? real
Los chunks pueden ser anidados unos dentro de otros al hacer llamadas
repetidas a pack_fopen_chunk(). Al escribir un fichero, el estado de
compresi? es heredado del fichero padre, por lo que s?o tiene que
activar la variable pack si el fichero padre no fue comprimido pero
Relacionado con:
pack_fclose_chunk,
pack_fopen.
PACKFILE *pack_fclose_chunk(PACKFILE *f);
Cierra un sub-chunk de un fichero, que previamente ha sido obtenido al
llamar pack_fopen_chunk().
Relacionado con:
pack_fopen_chunk.
Volver al Indice