예제 #1
0
void read_file_to_concesionario(const char *file, struct concesionario *con)
{
	FILE *f;
	struct coche *c1;
	char dueno[50], matricula[50], gama[50];
	char buffer[100];
	char id[5];
	int br = 0;
	int max_coches = 0;

	f = fopen(file, "r");
	if (f == NULL) {
		printf("No se pudo leer el archivo %s\n", file);
		return;
	}

	br = nextAttr(f, dueno);

	curso_concesionario_attr_set_str(con, CURSO_CONCESIONARIO_ATTR_DUENO,
                                         dueno);

	while (max_coches < 10) {
		c1 = curso_coche_alloc();

		br = nextAttr(f, id);
                curso_coche_attr_set_u32(c1, CURSO_COCHE_ATTR_ID, atoi(id));

		br = nextAttr(f, matricula);
        	curso_coche_attr_set_str(c1, CURSO_COCHE_ATTR_MATRICULA,
					matricula);

		br = nextAttr(f, gama);
        	curso_coche_attr_set_str(c1, CURSO_COCHE_ATTR_MARCA, 
					gama);

		if (br < 1) {
			curso_coche_free(c1);
			break;
		}

		curso_concesionario_attr_set_coche(con,
					CURSO_CONCESIONARIO_ATTR_COCHE, c1);	

		max_coches++;

	}

	rewind(f);

	if (fclose(f) == EOF){
		printf("No se pudo cerrar el archivo %s\n", file);
		return;
	}
}
void print_attrs( Entity ent ) {
    const orderedAttr * oa;
    const char * dashes="--------------------------------------------------------------------------";
    printf( "Entity %s\n%s\n%s\n%s\n", ent->symbol.name, dashes,
            " In P21? |       attr name       |        creator        |     detail", dashes );
    orderedAttrsInit( ent );
    while( 0 != ( oa = nextAttr() ) ) {
        describeAttr( oa );
    }
    orderedAttrsCleanup();
}