ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/outil/src/ot_parametres.cpp
Revision: 396
Committed: Thu Apr 18 15:09:10 2013 UTC (12 years ago) by francois
File size: 3320 byte(s)
Log Message:
Ajout du type pour OT_PARMETRES afin de pourvoir les reecrire comme y faut

File Contents

# User Rev Content
1 francois 258 #include "gestionversion.h"
2 francois 265 #include <stdio.h>
3 francois 258 #include "ot_parametres.h"
4    
5    
6    
7    
8    
9    
10    
11    
12    
13    
14    
15    
16    
17    
18     OT_PARAMETRES::OT_PARAMETRES()
19     {
20     }
21    
22     OT_PARAMETRES::OT_PARAMETRES(OT_PARAMETRES &mdd)
23     {
24 francois 283 int taille=nom_param.size();
25     for (int i=0;i<taille;i++)
26     {
27     nom_param.insert(nom_param.end(),mdd.nom_param[i]);
28     valeur_param.insert(valeur_param.end(),mdd.valeur_param[i]);
29 francois 396 aide_param.insert(aide_param.end(),mdd.aide_param[i]);
30     type_param.insert(type_param.end(),mdd.type_param[i]);
31 francois 283 }
32 francois 258 }
33    
34    
35     OT_PARAMETRES::~OT_PARAMETRES()
36     {
37     }
38    
39    
40 francois 396 void OT_PARAMETRES::ajouter(std::string chaine,double valeur,int typep,std::string aide)
41 francois 258 {
42 francois 283 nom_param.insert(nom_param.end(),chaine);
43     char mess[255];
44     sprintf(mess,"%lf",valeur);
45     valeur_param.insert(valeur_param.end(),mess);
46     aide_param.insert(aide_param.end(),aide);
47 francois 396 type_param.insert(type_param.end(),typep);
48 francois 258 }
49    
50 francois 396 void OT_PARAMETRES::ajouter(std::string chaine,std::string valeurstring,int typep,std::string aide)
51 francois 258 {
52 francois 283 nom_param.insert(nom_param.end(),chaine);
53     valeur_param.insert(valeur_param.end(),valeurstring);
54     aide_param.insert(aide_param.end(),aide);
55 francois 396 type_param.insert(type_param.end(),typep);
56 francois 258 }
57    
58     void OT_PARAMETRES::enregistrer(char *nom)
59     {
60 francois 283 FILE* in=fopen(nom,"wt");
61     int taille=nom_param.size();
62     for (int i=0;i<taille;i++)
63     fprintf(in,"%s = %s //%s\n",nom_param[i].c_str(),valeur_param[i].c_str(),aide_param[i].c_str());
64     fclose(in);
65 francois 258 }
66    
67     void OT_PARAMETRES::lire(char *nom)
68     {
69 francois 283 FILE* in=fopen(nom,"rt");
70     while (!feof(in))
71     {
72     char chaine[4000];
73     char* res=fgets(chaine,4000,in);
74     if (!feof(in))
75     {
76     char nom[255],c;
77     char nom2[255];
78     nom2[0]=0;
79     int nb=sscanf(chaine,"%s %c %s",nom,&c,nom2);
80 francois 396 double val;
81     int num=sscanf(nom2,"%lf",&val);
82     if (num==1) ajouter(nom,nom2,DOUBLE);
83     else ajouter(nom,nom2,STRING);
84 francois 283 }
85     }
86     fclose(in);
87 francois 258 }
88    
89    
90    
91     double OT_PARAMETRES::get_valeur(std::string chaine)
92     {
93 francois 283 int taille=nom_param.size();
94     for (int i=0;i<taille;i++)
95     {
96     std::string valtmp=nom_param[i];
97     if (valtmp==chaine)
98     {
99     double val;
100     sscanf(valeur_param[i].c_str(),"%lf",&val);
101     return val;
102     }
103    
104     }
105     return 0.;
106 francois 258 }
107    
108     std::string OT_PARAMETRES::get_nom(std::string chaine)
109     {
110 francois 283 int taille=nom_param.size();
111     for (int i=0;i<taille;i++)
112     {
113     std::string valtmp=nom_param[i];
114     if (valtmp==chaine)
115     {
116 cuillier 338 return valeur_param[i];
117 francois 283 }
118    
119     }
120     return "";
121 francois 258 }
122    
123 francois 396 int OT_PARAMETRES::get_type(std::string chaine)
124     {
125     int taille=nom_param.size();
126     for (int i=0;i<taille;i++)
127     {
128     std::string valtmp=nom_param[i];
129     if (valtmp==chaine)
130     {
131     return type_param[i];
132     }
133    
134     }
135     return 0;
136     }
137 francois 271 double OT_PARAMETRES::get_valeur(int num)
138     {
139 francois 283 double val;
140     sscanf(valeur_param[num].c_str(),"%lf",&val);
141     return val;
142 francois 271 }
143    
144     std::string OT_PARAMETRES::get_nom(int num)
145     {
146 francois 283 return nom_param[num];
147 francois 271 }
148    
149 francois 396 int OT_PARAMETRES::get_type(int num)
150     {
151     return type_param[num];
152     }
153 francois 271 int OT_PARAMETRES::get_nb(void)
154     {
155 francois 283 return nom_param.size();
156 francois 271 }
157    
158    
159 francois 258 void OT_PARAMETRES::vide(void)
160     {
161 francois 283 nom_param.clear();
162     valeur_param.clear();
163     aide_param.clear();
164 francois 396 type_param.clear();
165 francois 258 }
166