COMPARTE ESTE ARTÍCULO

En la programación, especialmente en lenguajes como C, la gestión eficiente de archivos es crucial. A continuación, se proporciona una visión práctica sobre cómo manipular archivos de texto para realizar tareas comunes como la clasificación y fusión de contenidos, con ejemplos de código que ilustran estos procesos.

Ejemplo Práctico de Clasificación de Contenidos

Supongamos que necesitamos clasificar palabras de un archivo de texto basándonos en la letra inicial. El siguiente código en C demuestra cómo se puede implementar esta funcionalidad:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
    FILE *fp, *foutput;
    char filename[20];
    char word[100];
    char initial;

    fp = fopen("input.txt", "r"); // Abrir archivo de entrada
    if (!fp) {
        perror("Error al abrir el archivo");
        return EXIT_FAILURE;
    }

    while (fscanf(fp, "%s", word) != EOF) { // Leer palabras del archivo
        initial = tolower(word[0]); // Convertir inicial a minúscula
        sprintf(filename, "sorted-%c.txt", initial); // Crear nombre de archivo de salida
        foutput = fopen(filename, "a"); // Abrir archivo de salida en modo append
        if (!foutput) {
            perror("Error al abrir el archivo de salida");
            return EXIT_FAILURE;
        }
        fprintf(foutput, "%s\n", word); // Escribir palabra en el archivo correspondiente
        fclose(foutput); // Cerrar archivo de salida
    }

    fclose(fp); // Cerrar archivo de entrada
    return EXIT_SUCCESS;
}

Este código lee un archivo denominado “input.txt” y distribuye cada palabra en archivos separados según la letra inicial de cada palabra. Utiliza la función fscanf para leer las palabras y fprintf para escribir en los archivos de salida correspondientes.

Ejemplo Práctico de Fusión de Archivos

Ahora, consideremos un escenario donde queremos intercalar las líneas de dos archivos de texto en un nuevo archivo. El siguiente ejemplo muestra cómo hacerlo en C:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
    FILE *f1, *f2, *fout;
    char line1[256], line2[256];

    f1 = fopen("file1.txt", "r"); // Abrir primer archivo de entrada
    f2 = fopen("file2.txt", "r"); // Abrir segundo archivo de entrada
    fout = fopen("merged.txt", "w"); // Abrir archivo de salida

    if (!f1 || !f2 || !fout) {
        perror("Error al abrir los archivos");
        return EXIT_FAILURE;
    }

    while (!feof(f1) || !feof(f2)) { // Mientras no se llegue al final de ninguno de los archivos
        if (fgets(line1, sizeof(line1), f1)) // Leer línea del primer archivo
            fputs(line1, fout); // Escribir línea en el archivo de salida
        if (fgets(line2, sizeof(line2), f2)) // Leer línea del segundo archivo
            fputs(line2, fout); // Escribir línea en el archivo de salida
    }

    fclose(f1); // Cerrar primer archivo
    fclose(f2); // Cerrar segundo archivo
    fclose(fout); // Cerrar archivo de salida
    return EXIT_SUCCESS;
}

Este código combina las líneas de “file1.txt” y “file2.txt” en un nuevo archivo “merged.txt”. Utiliza fgets para leer cada línea y fputs para escribir en el archivo de salida, asegurando que las líneas de ambos archivos se intercalen correctamente.

Conclusión

Estos ejemplos ilustran cómo la manipulación básica de archivos en C puede ser extendida para realizar tareas más complejas como la clasificación y fusión de datos. Dominar estas técnicas permite a los programadores abordar problemas comunes de procesamiento de datos de manera efectiva y eficiente.

… … …

¡Coméntanos que te ha parecido este artículo al final de la página!

TÚ OPINIÓN IMPORTA


NUESTRAS ÚLTIMAS PUBLICACIONES

Contenido restringido

Acceso de usuarios existentes
   
Registro de un nuevo usuario
*Campo necesario

Tags:

Comments are closed

Estado de acceso
ESTADO DE ACCESO
TRADUCTORES
COMPARTENOS
error: CONTENIDO PROTEGIDO