First commit 05/09/1999
This commit is contained in:
commit
ba40721193
88
JDIRECT.H
Normal file
88
JDIRECT.H
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
/*
|
||||||
|
Este fichero forma parte del Curso de C
|
||||||
|
Copyright (C) 1991 Grupo Editorial Jackson
|
||||||
|
Todos los derechos reservados
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* JDIRECT.H: cabecera para utilizar las funciones de b£squeda en los */
|
||||||
|
/* directorios MS-DOS tanto con Quick C como con Turbo C. */
|
||||||
|
|
||||||
|
|
||||||
|
#if !defined(__JDIRECT_H_) /*incluye s¢lo si no est ya incluido*/
|
||||||
|
#define __JDIRECT_H_
|
||||||
|
|
||||||
|
|
||||||
|
#include <dos.h>
|
||||||
|
|
||||||
|
typedef struct { /*define el tipo FileInfo: <1> */
|
||||||
|
char reserved[21]; /*espacio reservado para DOS*/
|
||||||
|
char atrib; /*atributos del fichero*/
|
||||||
|
struct { /*tiempo de la £ltima modific. <2>*/
|
||||||
|
unsigned int sec : 5;
|
||||||
|
unsigned int min : 6;
|
||||||
|
unsigned int hours : 5;
|
||||||
|
} time;
|
||||||
|
struct { /*fecha de la £ltima modific. <3>*/
|
||||||
|
unsigned int day : 5;
|
||||||
|
unsigned int month : 4;
|
||||||
|
unsigned int year : 7;
|
||||||
|
} date;
|
||||||
|
long size; /*dimensiones del fichero*/
|
||||||
|
char name[13]; /*nombre del fichero*/
|
||||||
|
} FileInfo;
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __TURBOC__ /*compila si Turbo C*/
|
||||||
|
|
||||||
|
#include <dir.h>
|
||||||
|
|
||||||
|
// #define FA_NORMAL 0 /*constante para ficheros 'normales'*/
|
||||||
|
|
||||||
|
/*convierte el tipo del puntero a datos del fichero: */
|
||||||
|
|
||||||
|
#define findfirst(p,b,a) findfirst(p,(struct ffblk *)b,a) /*<4>*/
|
||||||
|
#define findnext(b) findnext((struct ffblk *)b)
|
||||||
|
|
||||||
|
#else /*compila si Quick C*/
|
||||||
|
|
||||||
|
#include <direct.h>
|
||||||
|
|
||||||
|
#define FA_NORMAL _A_NORMAL /*convierte nombres const. atributos: */
|
||||||
|
#define FA_RDONLY _A_RDONLY /*s¢lo lectura*/
|
||||||
|
#define FA_HIDDEN _A_HIDDEN /*oculto*/
|
||||||
|
#define FA_SYSTEM _A_SYSTEM /*de sistema*/
|
||||||
|
#define FA_LABEL _A_VOLID /*etiqueta de volumen*/
|
||||||
|
#define FA_DIREC _A_SUBDIR /*directorio*/
|
||||||
|
#define FA_ARCH _A_ARCH /*archivo*/
|
||||||
|
|
||||||
|
/*convierte nombres funciones, cambia orden argumentos de findfirst: */
|
||||||
|
|
||||||
|
#define findfirst(p,b,a) (int)_dos_findfirst(p,a,(struct find_t *)b)
|
||||||
|
#define findnext(b) (int)_dos_findnext((struct find_t *)b) /*<5>*/
|
||||||
|
|
||||||
|
#endif /*fin opci¢n Turbo C / Quick C*/
|
||||||
|
|
||||||
|
|
||||||
|
#endif /*(si no incluido)*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Notas sobre DIRECT.H:
|
||||||
|
|
||||||
|
<1> FileInfo es una estructura que contiene informaci¢n relativa a
|
||||||
|
un fichero, restituida por findfirst y findnext.
|
||||||
|
<2> La componente time es un int (16 bits) que contiene en realidad tres
|
||||||
|
valores, cada uno conservado en un grupo de bits adyacentes. El orden
|
||||||
|
de lectura de los bits depende del compilador, as¡ esta definici¢n no
|
||||||
|
es port til (aunque sirve tanto con Turbo C como con Quick C). Se
|
||||||
|
pod¡an escribir tambi‚n simplemente los tres campos de bits como
|
||||||
|
componentes de la estructura FileInfo (sin utilizar la estructura
|
||||||
|
time), pero hemos preferido subrayar que los tres campos de bits
|
||||||
|
forman en conjunto un int: esto puede ser £til por comodidad de
|
||||||
|
manipulaci¢n (por ej. pasar time a una funci¢n).
|
||||||
|
<3> Ver nota 2.
|
||||||
|
<4> Este cast, desgraciadamente, le deja al compilador sin posibilidades
|
||||||
|
de comprobar los errores. S¢lo lo hemos utilizado para asegurar la
|
||||||
|
portabilidad entre Turbo C 2.0 y Quick C 2.0.
|
||||||
|
<5> Ver nota 4.
|
||||||
|
*/
|
Loading…
x
Reference in New Issue
Block a user