Pagini recente » Cod sursa (job #1935100) | Cod sursa (job #2979511) | Cod sursa (job #2934333) | Rating Alexandru Gorgoi (al3xys) | Cod sursa (job #1348777)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
void parse(string s, ofstream &fout){
int i = 0;
if( s.find_first_of('[') != string::npos ) {
do {
string key;
i = s.find('"',i);
key = s.substr(i+1,s.find('"',i+1)-i-1);
if (!key.empty()){
fout<<key<<',';
i = s.find(',',i);
}
}while(i != string::npos);
fout << '\n';
}
i = s.find(':',0);
while( i != string::npos) {
string key;
i = s.find_first_not_of(" \n",i+1);
if(s[i] == '"')
key = s.substr(i+1,s.find('"',i+1)-i-1);
else
key = s.substr(i,s.find_first_of(",\n ",i+1)-i);
fout << key <<',';
i = s.find(':',i);
}
fout << '\n';
}
int main(){
ifstream f("convertor.in");
ofstream g("convertor.out");
vector<string> keys;
vector<string> values;
string sir;
while(!f.eof()){ // To get you all the lines.
getline(f,sir,'}');
//cout<<sir<<endl;
int a=sir.find_last_of("]");
if ( !sir.empty() && a == string::npos ){
parse(sir, g);
// cout<<sir<<endl;
}
}
f.close();
g.close();
return 0;
}