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 |
|
|
|