package org.kjtw.structures; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.Hashtable; import org.kjtw.process.SRFLoad; import com.kreative.ksfl.KSFLUtilities; public class JackAttackOut extends YDKJQ { String title; String[] questions; String[] answers; String[] decoy1; String[] decoy2; String[] decoy3; public JackAttackOut(String wout, QHeader qh) throws IOException { SRFLoad QData = new SRFLoad(qh.getPath()); Hashtable<String, byte[]> supplements = QData.getData(); Hashtable<String, String[]> strings = QData.getStrs(); String[] strsa = strings.get("STR_130"); final String[] roots = strings.get("Root_128"); final String[] match = strings.get("Mtch_128"); final String[] decoy = strings.get("Dcoy_128"); for (int i=0; i < strsa.length; i++) { int position = Integer.valueOf(strsa[0].substring(i, i+1)); questions[i] = roots[position-1]; answers[i] = match[position-1]; decoy1[i] = decoy[position-1]; } File typedir = new File (wout+File.separator+"snd"); typedir.mkdirs(); for (String key : supplements.keySet()) { if (key.startsWith("snd")) { try { File output = new File(typedir.toString(),key.substring(4)+".wav"); output.createNewFile(); FileOutputStream fos = new FileOutputStream(output); fos.write(supplements.get(key)); fos.close(); } catch (IOException e) { System.err.println("Error: Cannot write file ("+e.getClass().getSimpleName()+": "+e.getMessage()+")"); } } } title = qh.getTitle(); } }