Ing. En Sistemas

Páginas: 2 (415 palabras) Publicado: 29 de enero de 2013
class Archivos
{
public:
void Mostrar(FILE *fich)
{
char linea[128];
rewind(fich);
fgets(linea, 128, fich);
while(!feof(fich))
{
puts(linea);fgets(linea, 128, fich);
}
}
void Mezcla(FILE *fich)
{
int ordenado;
FILE *aux[2];
do
{
aux[0] = fopen("aux1.txt", "w+");
aux[1] =fopen("aux2.txt", "w+");
rewind(fich);
Separar(fich, aux);
rewind(aux[0]);
rewind(aux[1]);
rewind(fich);
ordenado = Mezclar(fich, aux);fclose(aux[0]);
fclose(aux[1]);
}while(!ordenado);
remove("aux1.txt");
remove("aux2.txt");
}
void Separar(FILE *fich, FILE **aux)
{
char linea[128], anterior[2][128];
int salida= 0;
strcpy(anterior[0], "");
strcpy(anterior[1], "");
fgets(linea, 128, fich);
while(!feof(fich))
{
if(salida == 0 && strcmp(linea, anterior[0]) < 0)
salida= 1;
else if(salida == 1 && strcmp(linea, anterior[1]) < 0)
salida = 0;
strcpy(anterior[salida], linea);
fputs(linea, aux[salida]);
fgets(linea, 128,fich);
}
}
int Mezclar(FILE *fich, FILE **aux)
{
char ultima[128], linea[2][128], anterior[2][128];
int entrada;
int tramos = 0;
fgets(linea[0], 128, aux[0]);
fgets(linea[1], 128,aux[1]);
strcpy(ultima, "");
strcpy(anterior[0], "");
strcpy(anterior[1], "");
while(!feof(aux[0]) && !feof(aux[1]))
{
if(strcmp(linea[0], linea[1]) <= 0)
entrada =0;
else
entrada = 1;
strcpy(anterior[entrada], linea[entrada]);
fputs(linea[entrada], fich);
fgets(linea[entrada], 128, aux[entrada]);
if(strcmp(anterior[entrada],linea[entrada]) >= 0)
{
if(!entrada)
entrada = 1;
else
entrada = 0;
tramos++;
do
{
strcpy(anterior[entrada], linea[entrada]);...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Ing de sistemas
  • Ing sistemas
  • Ing de sistemas
  • Ing. Sistemas
  • Ing Sistemas
  • Ing De Sistemas
  • Ing. En Sistemas
  • Ing. De Sistemas

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS