package yuku.alkitabconverter.en_kjv_thml;
import java.io.File;
import java.io.FileInputStream;
import java.io.PrintWriter;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
public class Proses2 {
PrintWriter pw;
Map<String, Integer> nomerKitab;
private int hitungan = 0;
public static void main(String[] args) throws Exception {
new Proses2().loadUpTheData();
}
public void loadUpTheData() throws Exception {
muatNomerKitab();
Scanner sc = new Scanner(new FileInputStream("./bahan/en-kjv-thml/in/kjv.proses"), "utf-8");
pw = new PrintWriter(new File("./bahan/en-kjv-thml/in/kjv3_teks_bdb.txt"), "utf-8");
proses(sc);
pw.close();
sc.close();
}
private void muatNomerKitab() throws Exception {
Scanner sc = new Scanner(new FileInputStream("./bahan/en-kjv-thml/in/kjv.nomerkitab"), "utf-8");
nomerKitab = new TreeMap<>();
while (sc.hasNext()) {
String k = sc.next();
int v = sc.nextInt();
if (v != -1) {
nomerKitab.put(k, v);
}
}
sc.close();
}
private void proses(Scanner sc) {
String parsed = null;
StringBuilder isi = new StringBuilder();
while (sc.hasNextLine()) {
String baris = sc.nextLine();
if (parsed != null) {
if (!baris.startsWith("#ayat:|")) {
if (isi.length() != 0) {
isi.append(' ');
}
isi.append(baris.trim());
}
}
if (baris.startsWith("#ayat:|")) {
// komit yang lama
if (parsed != null) {
tulis(parsed, isi);
}
parsed = baris.substring(7);
}
}
tulis(parsed, isi);
}
private void tulis(String parsed, StringBuilder isi) {
if (prosesParsed(parsed)) {
output('\t');
String isi2 = isi.toString().trim().replaceAll("\u2019", "'").replace("<i>", "@9").replace("</i>", "@7").replace("<red>", "@6").replace("</red>", "@5").replaceAll("\\s+@5$", "@5").replace("@6@5", "").replace("- ", "-");
if (isi2.indexOf('@') != -1) {
isi2 = "@@" + isi2;
}
output(isi2);
output('\n');
}
isi.setLength(0);
}
private boolean prosesParsed(String parsed) {
String[] xkolom = parsed.split("\\|");
String n = xkolom[0];
int p = Integer.parseInt(xkolom[1]);
int a = Integer.parseInt(xkolom[2]);
Integer nokitab = nomerKitab.get(n);
if (nokitab != null) {
hitungan ++;
output(hitungan);
output('\t');
output(nokitab + 1);
output('\t');
output(p);
output('\t');
output(a);
return true;
}
return false;
}
public void output(Object x) {
pw.print(x);
}
}