This repository has been archived on 2023-11-03. You can view files and clone it, but cannot push or open issues or pull requests.
GINPA/Modele/fileIO.h

45 lines
1.6 KiB
C

#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include "../Headers/structures.h"
/** @def BUFSIZE
* @brief Nombre max de caractères récupérés sur une ligne.*/
#define BUFSIZE 100
/**
* @brief Charge les logs de localisation en mémoire
*
* La fonction traite le fichier de logs et fait correspondre chaque ligne à une struture 'Point'.
* Le double pointeur tabPoint DOIT être free à la fin de son utilisation !
*
* @param logsName Chemin + nom du fichier de logs.
* @param tabPoint Pointeur sur lequel tout le fichier va être chargé.
* @param nbLigne Pointeur sur une variable qui contiendra le nombre de structures allouées dans 'tabPoint'.
* @return Retourne une valeur d'erreur définie dans 'structures.h'. LOAD_SUCCESS en cas de réussite.
*/
ErrEnum loadLogs(const char *logsName, Point **tabPoint, uint32_t *nbLigne);
/**
* @brief Traite la ligne envoyée en argument pour la charger dans une structure Point
*
* @param line Ligne à traiter.
* @param point Structure qui va recevoir l'information de la ligne.
* @return Booléen. False si problème de parsage. True si réussite de la lecture de la ligne.
*/
bool convertLine(char *line, Point *point);
/**
* @brief Remplit un tableau de chaînes de caractères composé de chemins absolus (séparés par des '|') dans `temp`.
*
* @param temp Chaînes de caractères à parser !
* @param selectedFiles Tableau de chaînes de caractères à remplir.
* @return Entier, représentant le nombre de chemins dans ce tableau.
*/
uint16_t convertLineToFilePaths(const char *const temp, char selectedFiles[MAXSELECTEDFILES][MAXPATHLENGTH]);