#include <stdio.h>
#include <io.h>
#include"ordenamiento.h"
#define NOEXF 23
#define NOLEN 24
#define BUFFI 4
struct Data
{
struct Data *Pre,*Post;
int info;
};
/*captura datos para un arreglo, desde un archivo
de texto, los convierte en enteros y seguidamente
llena una estructura dinamica.
El archivo debe poseer elformato:
xxxx,xxxx,xxxx,xxxx, para que la funcion lo pueda entener*/
int Lectura(char *FileName,struct Data *Info)
{
FILE *fp=NULL;
char buff[BUFFI];
int fd,multip=0,buffy;
struct Data *aux;
if((fp=fopen(FileName,"r"))!=NULL)
{
fd=fileno(fp);
multip=filelength(fd);
if(multip%(BUFFI+1)==0)
{
Info->Pre=NULL;
Info->info=0;
Info->Post=NULL;
while(multip>0)
{
fread(buff,sizeof(buff),1,fp);
Info->info=strtol(buff,NULL,10);
aux=(struct Data *)malloc(sizeof(struct Data));
Info->Post=aux;
aux->Pre=Info;
aux->Post=NULL;
Info=aux;
fseek(fp,1,SEEK_CUR);
multip-=(BUFFI+1);
}
free(aux);
free(Info);
fflush(fp);
fclose(fp);
close(fd);
}
else
{
return NOLEN;//Archivo de tama¤o inapropiado no es multiplo de BUFFY+1
}
}
else
{
return NOEXF;//Archivo no existe
}
}