Base de datos relacional de archivos CSV en C

En la programación C , se utilizan arrays y strings para el almacenamiento de datos en tiempo de ejecución, que es volátil y obtiene memoria en la RAM. Pero para almacenar datos permanentemente en un disco duro que además puede ser manipulado. Entonces, la idea es usar un archivo CSV para almacenar y manipular datos. No solo CSV, sino también otros archivos como data , txt y bin también se pueden usar para la manipulación de datos. Pero el archivo CSV , como sugiere el nombre ( Valores separados por comas ) almacena datos en un formato de tabla que ahorra mucho tiempo en la creación de una estructura perfecta.

En las bases de datos relacionales, los datos se almacenan en un formato de tabla, por lo que al usar el archivo CSV, se puede crear la base de datos.

A continuación se muestra un ejemplo de un archivo CSV:

Para conocer los conceptos de Manejo de archivos, consulte el artículo Manejo básico de archivos en C.

Cree un búfer de array de caracteres (puede denominarse string) que toma todos los datos presentes en el archivo y, mediante el uso de File Pointer y fgets() , se pueden extraer los datos. Utilice dos variables fila y columna que mantendrán la identificación única de cada entrada.

Como la string contiene una coma ‘,’ para separar valores, la idea es usar la función strtok() para dividir valores. Esta función divide una string usando un delimitador aquí estamos usando ‘, ‘ .

Extracción de datos :

La extracción de datos se ocupa de abrir un archivo CSV existente y extraer e imprimir todos los datos en la consola.

 Acercarse:

  1. Abra el archivo CSV usando el puntero de archivo.
  2. Extraiga todos los datos del archivo en una array de búfer de caracteres.
  3. Ahora inicialice las variables de fila y columna con el valor 0 .
  4. Imprime los datos separados por una coma y aumenta la variable de la columna.
  5. Cuando llegue al final de una entrada de fila, inicialice la variable de columna a 0 y aumente la variable de fila.
  6. Repita los pasos 4 y 5 hasta que el puntero llegue al final del archivo.
  7. Cierra el archivo.

A continuación se muestra el programa para el mismo:

C

// C program for the above approach
#include <conio.h>
#include <stdio.h>
#include <string.h>
 
// Driver Code
int main()
{
    // Substitute the full file path
    // for the string file_path
    FILE* fp = fopen("file_path", "r");
 
    if (!fp)
        printf("Can't open file\n");
 
    else {
        // Here we have taken size of
        // array 1024 you can modify it
        char buffer[1024];
 
        int row = 0;
        int column = 0;
 
        while (fgets(buffer,
                     1024, fp)) {
            column = 0;
            row++;
 
            // To avoid printing of column
            // names in file can be changed
            // according to need
            if (row == 1)
                continue;
 
            // Splitting the data
            char* value = strtok(buffer, ", ");
 
            while (value) {
                // Column 1
                if (column == 0) {
                    printf("Name :");
                }
 
                // Column 2
                if (column == 1) {
                    printf("\tAccount No. :");
                }
 
                // Column 3
                if (column == 2) {
                    printf("\tAmount :");
                }
 
                printf("%s", value);
                value = strtok(NULL, ", ");
                column++;
            }
 
            printf("\n");
        }
 
        // Close the file
        fclose(fp);
    }
    return 0;
}

Adición de datos :

La adición de datos se ocupa de abrir un archivo CSV existente, tomar las entradas del usuario para agregar los datos al archivo y luego agregar estos datos al archivo CSV.

Acercarse:

  1. Abra el archivo CSV usando el puntero de archivo en el modo de adición que colocará un puntero al final del archivo.
  2. Tome la entrada del usuario en variables temporales.
  3. Use fprintf() y separe las variables según su orden y coma.
  4. Cierra el archivo.

Ejemplo:

C

// C program for the above approach
#include <conio.h>
#include <stdio.h>
#include <string.h>
 
// Driver Code
int main()
{
    // Substitute the file_path string
    // with full path of CSV file
    FILE* fp = fopen("file_path", "a+");
 
    char name[50];
    int accountno, amount;
 
    if (!fp) {
        // Error in file opening
        printf("Can't open file\n");
        return 0;
    }
 
    // Asking user input for the
    // new record to be added
    printf("\nEnter Account Holder Name\n");
    scanf("%s", &name);
    printf("\nEnter Account Number\n");
    scanf("%d", &accountno);
    printf("\nEnter Available Amount\n");
    scanf("%d", &amount);
 
    // Saving data in file
    fprintf(fp, "%s, %d, %d\n", name,
            accountno, amount);
 
    printf("\nNew Account added to record");
 
    fclose(fp);
    return 0;
}

Producción:

Ventajas del archivo CSV :

  • Diferente del archivo .txt y .dat en términos de almacenamiento de datos en formato de tabla.
  • Fácil de organizar los datos por interacción directa con el usuario o por el programa.
  • Ampliamente adoptado en las industrias financieras para almacenar y transmitir datos a través de Internet.
  • Fácilmente convertido a otros archivos y formatos.
  • Se puede importar o exportar a varias plataformas e interfaces.

Publicación traducida automáticamente

Artículo escrito por sahilkataria1999 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *