Pagini recente » Cod sursa (job #73617) | Cod sursa (job #808596) | Cod sursa (job #1345201) | Cod sursa (job #2117599) | Cod sursa (job #1361575)
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.StringTokenizer;
import java.util.Vector;
class Main {
private static Vector<String> storage;
private static int mainField = 0;
private static int query = 0;
private static String mainFields = "";
private static String buildLine = "";
public static void readFromInternFile() throws IOException {
storage = new Vector<String>();
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(
new FileInputStream("convertor.in"), "UTF8"));
String line;
while((line = br.readLine()) != null) {
processLine(line);
}
storage.add(0, mainFields);
storage.add(buildLine);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
printCSVinFile();
br.close();
}
}
public static void printCSVinFile() throws FileNotFoundException, UnsupportedEncodingException {
PrintWriter pw = new PrintWriter("convertor.out","UTF8");
int size = storage.size();
for(int j = 0; j < size; j++) {
pw.print(storage.get(j));
pw.println();
}
pw.close();
}
public static void processLine(String line) throws FileNotFoundException, UnsupportedEncodingException {
StringTokenizer st = new StringTokenizer(line,"\\{|\\}");
while(st.hasMoreElements()) {
String stringToAdd = st.nextToken();
if(stringToAdd.contains("[")) {
query++;
mainField = 0;
continue;
}
if(stringToAdd.contains("]")) {
break;
}
StringTokenizer stringTokenByQuotes = new StringTokenizer(stringToAdd, "\"");
while(stringTokenByQuotes.hasMoreElements()) {
String stringToken = stringTokenByQuotes.nextToken();
StringTokenizer stringTokenByComma = new StringTokenizer(stringToken, ",");
if(!stringTokenByComma.hasMoreElements()) {continue;}
stringToken = stringTokenByComma.nextToken();
if(stringToken.contains(":")) {
stringToken = stringToken.substring(stringToken.indexOf(':')+1);
}
while(stringToken.startsWith(" ")) stringToken = stringToken.substring(1);
if(stringToken.length() == 0) {
continue;
}
if(mainField != 0) {
if(buildLine.length() == 0) buildLine = stringToken;
else
buildLine += "," + stringToken;
mainField = 0;
} else {
if(mainFields.startsWith(stringToken)) {
storage.add(buildLine);
buildLine = "";
query++;
mainField = query;
continue;
}
if(mainFields.contains(stringToken)) {
mainField = query;
continue;
}
if(mainFields.length() == 0) mainFields = stringToken;
else
mainFields += "," + stringToken;
mainField = query;
}
}
}
}
public static void main(String[] args) throws IOException {
readFromInternFile();
}
}