Bonjour, on m'impose de sauvegarder/relire dans le format suivant : une
section entre crochets, qui contient une série de valeurs textuelles
préfixées par l'index de la valeur et de \t. Par exemple :
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
kanze
"Guillaume Gourdin" wrote in message news:<bo5tvu$13e6$...
Bonjour, on m'impose de sauvegarder/relire dans le format suivant : une section entre crochets, qui contient une série de valeurs textuelles préfixées par l'index de la valeur et de t. Par exemple :
Comment écririez-vous les méthodes de lecture/écriture d'un tel format ?
std::string line ; while ( getline( source, line ) ) { if ( line.size() > 2 && line[ 0 ] == '[' && line[ line.size() - 1 ] == ']') { std::string section( line, 1, line.length() - 2 ) ; // ... } else { std::istringstream s( line + 'n' ) ; int index ; s >> index ; if ( ! s ) { // Erreur de format ou ligne vide... } else { s >> std::ws ; std::string valeur ; getline( s, valeur ) ; // ... } }
En passant, je ne manquerais pas d'utiliser un streambuf filtrant pour supporter des commentaires.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
"Guillaume Gourdin" <toto@toto.com> wrote in message
news:<bo5tvu$13e6$1@news6.isdnet.net>...
Bonjour, on m'impose de sauvegarder/relire dans le format suivant :
une section entre crochets, qui contient une série de valeurs
textuelles préfixées par l'index de la valeur et de t. Par exemple :
Comment écririez-vous les méthodes de lecture/écriture d'un tel format ?
std::string line ;
while ( getline( source, line ) ) {
if ( line.size() > 2
&& line[ 0 ] == '['
&& line[ line.size() - 1 ] == ']') {
std::string section( line, 1, line.length() - 2 ) ;
// ...
} else {
std::istringstream s( line + 'n' ) ;
int index ;
s >> index ;
if ( ! s ) {
// Erreur de format ou ligne vide...
} else {
s >> std::ws ;
std::string valeur ;
getline( s, valeur ) ;
// ...
}
}
En passant, je ne manquerais pas d'utiliser un streambuf filtrant pour
supporter des commentaires.
--
James Kanze GABI Software mailto:kanze@gabi-soft.fr
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
"Guillaume Gourdin" wrote in message news:<bo5tvu$13e6$...
Bonjour, on m'impose de sauvegarder/relire dans le format suivant : une section entre crochets, qui contient une série de valeurs textuelles préfixées par l'index de la valeur et de t. Par exemple :
Comment écririez-vous les méthodes de lecture/écriture d'un tel format ?
std::string line ; while ( getline( source, line ) ) { if ( line.size() > 2 && line[ 0 ] == '[' && line[ line.size() - 1 ] == ']') { std::string section( line, 1, line.length() - 2 ) ; // ... } else { std::istringstream s( line + 'n' ) ; int index ; s >> index ; if ( ! s ) { // Erreur de format ou ligne vide... } else { s >> std::ws ; std::string valeur ; getline( s, valeur ) ; // ... } }
En passant, je ne manquerais pas d'utiliser un streambuf filtrant pour supporter des commentaires.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16