Pagini recente » Cod sursa (job #635331) | Cod sursa (job #2691263) | Cod sursa (job #2849707) | Cod sursa (job #2873358) | Cod sursa (job #1349039)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
void parsekeys(string s, ofstream &g){
for(int i=0;i<s.size();i++) {
string key;
if(s[i] == '"'){
key.push_back(s[i+1]);
i=i+2;
while(s[i]!='"'){
key.push_back(s[i]);
i++;
}
if (!key.empty()){
g<<key<<',';
i = s.find(',',i);
if(i == string::npos)
break;
}
}
}
g<<"\n";
}
void parsevalues(string s, ofstream &g){
for(int i=0;i<s.size();i++) {
string key;
if(s[i] == ':'){
while (s[i+1]=='\n' || s[i+1]==' '){
i++;
}
if(s[i+1] == '"'){
key.push_back(s[i+2]);
i=i+3;
while(s[i]!='"'){
key.push_back(s[i]);
i++;
}
}
else{
key.push_back(s[i+1]);
i=i+2;
while(s[i]!=',' && s[i]!='\n' && s[i]!=' '){
key.push_back(s[i]);
i++;
}
}
if (!key.empty()){
g<< key <<',';
}
}
}
}
int main(){
ifstream f("convertor.in");
ofstream g("convertor.out");
string sir, s;
getline(f,s,'}');
parsekeys(s, g);
parsevalues(s, g);
g<<'\n';
while(!f.eof()){
getline(f,sir,'}');
int a=sir.find("]");
if ( (sir!="" ) && a<0 ){
parsevalues(sir, g);
g<<'\n';
}
}
f.close();
g.close();
return 0;
}