GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: tmp_project/FileParser/src/file_utils.cpp Lines: 37 37 100.0 %
Date: 2023-10-11 10:52:07 Branches: 29 34 85.3 %

Line Branch Exec Source
1
/***************************************
2
	Auteur : Pierre Aubert
3
	Mail : pierre.aubert@lapp.in2p3.fr
4
	Licence : CeCILL-C
5
****************************************/
6
7
8
#include "file_utils.h"
9
10
11
///fonction qui renvoie le nom du fichier du nom complet de fichier passé en paramètre
12
/**	@param fileName : nom complet de fichier dont on veut le nom (/nom/du/fichier -> fichier)
13
 * 	@return nom du fichier passé en paramètre
14
*/
15
3
std::string getFileName(const std::string & fileName){
16
3
	std::string buffer("");
17
3
	std::string::const_reverse_iterator rit = fileName.rbegin();
18
15
	while(rit != fileName.rend()){
19
14
		if(*rit == '/') break;
20
12
		buffer = *rit + buffer;
21
12
		rit++;
22
	}
23
6
	return buffer;
24
}
25
26
///fonction qui renvoie tout le contenu d'un fichier texte dans une chaîne
27
/**	@param filename : nom du fichier
28
 * 	@return chaîne contenant le fichier
29
*/
30
75
std::string getFileContent(const std::string & filename){
31
75
	FILE * fp = fopen(filename.c_str(), "r");
32
75
	if(fp == NULL){
33

11
		std::cerr << "Impossible d'ouvrir le fichier '" << filename << "'" << std::endl;
34
11
		return "";
35
	}
36
128
	std::string tmp(getFileContent(fp));
37
64
	fclose(fp);
38
64
	return tmp;
39
}
40
41
///fonction qui renvoie tout le contenu d'un fichier texte dans une chaîne
42
/**	@param fp : pointeur vers le fichier dont on veut mettre le contenu dans une string
43
 * 	@return chaîne contenant le fichier
44
*/
45
64
std::string getFileContent(FILE* fp){
46

64
	if(fp == NULL) return "";
47
192
	std::string bufferAllFile("");
48
	int buffer;
49
19779
	while(!feof(fp)){
50
19779
		buffer = fgetc(fp);
51
19779
		if(buffer != EOF) bufferAllFile += (char)buffer;
52
64
		else break;
53
	}
54
64
	return bufferAllFile;
55
}
56
57
///fonction qui permet de sauvegader le contenu d'un fichier
58
/**	@param filename : nom du fichier dans lequel on veut écrire
59
 * 	@param content : contenu du fichier
60
 * 	@return true si la fonction à réussie false sinon
61
*/
62
69
bool saveFileContent(const std::string & filename, const std::string & content){
63
69
	if(filename == ""){return false;}
64
67
	FILE * fp = fopen(filename.c_str(), "w");
65
67
	if(fp == NULL){
66
2
		std::cerr << "Impossible d'ouvrir le fichier'" << filename << "'" << std::endl;
67
2
		return false;
68
	}
69
65
	bool result(saveFileContent(fp, content));
70
65
	fclose(fp);
71
65
	return result;
72
}
73
74
///fonction qui permet de sauvegader le contenu d'un fichier
75
/**	@param fp : pointeur vers le fichier dans lequel on veut écrire
76
 * 	@param content : contenu du fichier
77
 * 	@return true si la fonction à réussie false sinon
78
*/
79
65
bool saveFileContent(FILE* fp, const std::string & content){
80
65
	if(fp == NULL) return false;
81
65
	fprintf(fp, "%s", content.c_str());
82
65
	return true;
83
}
84
85
86
87