/**
 * Programa Transpose <br>
 * Transpose.java <br>
 * <br>
 * Propósito: Genera una serie de matrices traspuestas que se almacenan en ficheros de 
 * texto independientes. Como entrada este programa recibe un fichero de texto con información
 * de los diferentes elementos de la situación experimental.
 *
 * @author Omar Salvador Gómez Gómez
 * @version 1.0 12/21/2010
 */

import java.io.File;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
import com.infomata.data.*;

public class Transpose{

  public static void main(String[] argv) throws Exception{
	
	DataFile read1 = DataFile.createReader("8859_1");
	read1.setDataFormat(new CSVFormat());
	read1.containsHeader(true);
	
		int i1=1,i2=1,i3=1,i4=1,i5=1,i6=1,i7=1,i8=1,i9=1,i10=1,i11=1,i12=1,i13=1,i14=1,i15=1;
		int i16=1,i17=1,i18=1,i19=1,i20=1,i21=1,i22=1,i23=1,i24=1,i25=1,i26=1,i27=1,i28=1,i29=1;
		int i30=1,i31=1,i32=1,i33=1,i34=1,i35=1,i36=1,i37=1,i38=1;
	String id="";
	String partition=argv[0];
	try {
  		read1.open(new File(partition));	
	
  		for (DataRow row = read1.next(); row != null; row = read1.next()) {			
			id = row.getString("ID");
			if (id.equals("1.1")) i1++;
			else if (id.equals("1.2")) i2++;
			else if (id.equals("1.3")) i3++;
			else if (id.equals("1.4")) i4++;
			else if (id.equals("1.5")) i5++;
			else if (id.equals("2")) i6++;
			else if (id.equals("3.1.1")) i7++;
			else if (id.equals("3.2.1")) i8++;
			else if (id.equals("3.2.2")) i9++;
			else if (id.equals("3.2.3")) i10++;
			else if (id.equals("3.2.4")) i11++;
			else if (id.equals("3.2.5")) i12++;
			else if (id.equals("3.2.6")) i13++;
			else if (id.equals("3.3.1")) i14++;
			else if (id.equals("3.4.1")) i15++;
			else if (id.equals("3.4.2")) i16++;
			else if (id.equals("3.5.1")) i17++;
			else if (id.equals("3.5.2")) i18++;
			else if (id.equals("3.5.3")) i19++;
			else if (id.equals("4.1.1.1")) i20++;
			else if (id.equals("4.1.1.2")) i21++;
			else if (id.equals("4.1.1.3")) i22++;
			else if (id.equals("4.1.1.4")) i23++;
			else if (id.equals("4.1.1.5")) i24++;
			else if (id.equals("4.1.2.1")) i25++;
			else if (id.equals("4.1.2.2")) i26++;
			else if (id.equals("4.1.2.3")) i27++;
			else if (id.equals("4.1.2.4")) i28++;
			else if (id.equals("4.1.2.5")) i29++;
			else if (id.equals("4.2.1")) i30++;
			else if (id.equals("4.2.2")) i31++;
			else if (id.equals("5.1.1")) i32++;
			else if (id.equals("5.1.2")) i33++;
			else if (id.equals("5.1.3")) i34++;
			else if (id.equals("5.2.1")) i35++;
			else if (id.equals("5.2.2")) i36++;
			else if (id.equals("5.2.3")) i37++;
			else if (id.equals("5.2.4")) i38++;	
  		}
	}
	finally {
  		read1.close();
	}	
	
	DataFile read =	DataFile.createReader("8859_1");
	read.setDataFormat(new CSVFormat());
	read.containsHeader(true);
	
	try {
  		read.open(new File(partition));
  		
  		List ids = new ArrayList();
		List header = read.getHeaderList();
		Iterator iterator = header.iterator();
		int j = header.size();
		String [][] m1_1 = new String[j][i1];
		String [][] m1_2 = new String[j][i2];
		String [][] m1_3 = new String[j][i3];
		String [][] m1_4 = new String[j][i4];
		String [][] m1_5 = new String[j][i5];
		String [][] m2 = new String[j][i6];
		String [][] m3_1_1 = new String[j][i7];
		String [][] m3_2_1 = new String[j][i8];
		String [][] m3_2_2 = new String[j][i9];
		String [][] m3_2_3 = new String[j][i10];
		String [][] m3_2_4 = new String[j][i11];
		String [][] m3_2_5 = new String[j][i12];
		String [][] m3_2_6 = new String[j][i13];
		String [][] m3_3_1 = new String[j][i14];
		String [][] m3_4_1 = new String[j][i15];
		String [][] m3_4_2 = new String[j][i16];
		String [][] m3_5_1 = new String[j][i17];
		String [][] m3_5_2 = new String[j][i18];
		String [][] m3_5_3 = new String[j][i19];
		String [][] m4_1_1_1 = new String[j][i20];
		String [][] m4_1_1_2 = new String[j][i21];
		String [][] m4_1_1_3 = new String[j][i22];
		String [][] m4_1_1_4 = new String[j][i23];
		String [][] m4_1_1_5 = new String[j][i24];
		String [][] m4_1_2_1 = new String[j][i25];
		String [][] m4_1_2_2 = new String[j][i26];
		String [][] m4_1_2_3 = new String[j][i27];
		String [][] m4_1_2_4 = new String[j][i28];
		String [][] m4_1_2_5 = new String[j][i29];
		String [][] m4_2_1 = new String[j][i30];
		String [][] m4_2_2 = new String[j][i31];
		String [][] m5_1_1 = new String[j][i32];
		String [][] m5_1_2 = new String[j][i33];
		String [][] m5_1_3 = new String[j][i34];
		String [][] m5_2_1 = new String[j][i35];
		String [][] m5_2_2 = new String[j][i36];
		String [][] m5_2_3 = new String[j][i37];
		String [][] m5_2_4 = new String[j][i38];
		
		int inc=0;
		String s;
		while ( iterator.hasNext() ){
			s = (String)iterator.next();
			m1_1[inc][0] = s;
			m1_2[inc][0] = s;
			m1_3[inc][0] = s;
			m1_4[inc][0] = s;
			m1_5[inc][0] = s;
			m2[inc][0] = s;
			m3_1_1[inc][0] = s;
			m3_2_1[inc][0] = s;
			m3_2_2[inc][0] = s;
			m3_2_3[inc][0] = s;
			m3_2_4[inc][0] = s;
			m3_2_5[inc][0] = s;
			m3_2_6[inc][0] = s;
			m3_3_1[inc][0] = s;
			m3_4_1[inc][0] = s;
			m3_4_2[inc][0] = s;
			m3_5_1[inc][0] = s;
			m3_5_2[inc][0] = s;
			m3_5_3[inc][0] = s;
			m4_1_1_1[inc][0] = s;
			m4_1_1_2[inc][0] = s;
			m4_1_1_3[inc][0] = s;
			m4_1_1_4[inc][0] = s;
			m4_1_1_5[inc][0] = s;
			m4_1_2_1[inc][0] = s;
			m4_1_2_2[inc][0] = s;
			m4_1_2_3[inc][0] = s;
			m4_1_2_4[inc][0] = s;
			m4_1_2_5[inc][0] = s;
			m4_2_1[inc][0] = s;
			m4_2_2[inc][0] = s;
			m5_1_1[inc][0] = s;
			m5_1_2[inc][0] = s;
			m5_1_3[inc][0] = s;
			m5_2_1[inc][0] = s;
			m5_2_2[inc][0] = s;
			m5_2_3[inc][0] = s;
			m5_2_4[inc][0] = s;
			inc++;
			
		}	
		
		i1=1;i2=1;i3=1;i4=1;i5=1;i6=1;i7=1;i8=1;i9=1;i10=1;i11=1;i12=1;i13=1;i14=1;i15=1;
		i16=1;i17=1;i18=1;i19=1;i20=1;i21=1;i22=1;i23=1;i24=1;i25=1;i26=1;i27=1;i28=1;i29=1;
		i30=1;i31=1;i32=1;i33=1;i34=1;i35=1;i36=1;i37=1;i38=1;
		id="";
  		for (DataRow row = read.next(); row != null; row = read.next()) {			
			id = row.getString("ID");
			int x=0;
			if (id.equals("1.1")){
					for(x=0; x<j; x++){
						m1_1[x][i1] = row.getString(x);
					}
					i1++;
					ids.add(id);
			} else if (id.equals("1.2")) {
					for(x=0; x<j; x++){
						m1_2[x][i2] = row.getString(x);
					}
					i2++;
					ids.add(id);
			} else if (id.equals("1.3")) {
					for(x=0; x<j; x++){
						m1_3[x][i3] = row.getString(x);
					}
					i3++;
					ids.add(id);					
			} else if (id.equals("1.4")) {
					for(x=0; x<j; x++){
						m1_4[x][i4] = row.getString(x);
					}
					i4++;
					ids.add(id);
			} else if (id.equals("1.5")) {
					for(x=0; x<j; x++){
						m1_5[x][i5] = row.getString(x);
					}
					i5++;
					ids.add(id);
			} else if (id.equals("2")) {
					for(x=0; x<j; x++){
						m2[x][i6] = row.getString(x);
					}
					i6++;
					ids.add(id);					
			} else if (id.equals("3.1.1")) {
					for(x=0; x<j; x++){
						m3_1_1[x][i7] = row.getString(x);
					}
					i7++;
					ids.add(id);
			} else if (id.equals("3.2.1")) {
					for(x=0; x<j; x++){
						m3_2_1[x][i8] = row.getString(x);
					}
					i8++;
					ids.add(id);
			} else if (id.equals("3.2.2")) {
					for(x=0; x<j; x++){
						m3_2_2[x][i9] = row.getString(x);
					}
					i9++;
					ids.add(id);
			} else if (id.equals("3.2.3")) {
					for(x=0; x<j; x++){
						m3_2_3[x][i10] = row.getString(x);
					}
					i10++;
					ids.add(id);		
			} else if (id.equals("3.2.4")) {
					for(x=0; x<j; x++){
						m3_2_4[x][i11] = row.getString(x);
					}
					i11++;
					ids.add(id);
			} else if (id.equals("3.2.5")) {
					for(x=0; x<j; x++){
						m3_2_5[x][i12] = row.getString(x);
					}
					i12++;
					ids.add(id);
			} else if (id.equals("3.2.6")) {
					for(x=0; x<j; x++){
						m3_2_6[x][i13] = row.getString(x);
					}
					i13++;
					ids.add(id);
			} else if (id.equals("3.3.1")) {
					for(x=0; x<j; x++){
						m3_3_1[x][i14] = row.getString(x);
					}
					i14++;
					ids.add(id);		
			} else if (id.equals("3.4.1")) {
					for(x=0; x<j; x++){
						m3_4_1[x][i15] = row.getString(x);
					}
					i15++;
					ids.add(id);
			} else if (id.equals("3.4.2")) {
					for(x=0; x<j; x++){
						m3_4_2[x][i16] = row.getString(x);
					}
					i16++;
					ids.add(id);
			} else if (id.equals("3.5.1")) {
					for(x=0; x<j; x++){
						m3_5_1[x][i17] = row.getString(x);
					}
					i17++;
					ids.add(id);
			} else if (id.equals("3.5.2")) {
					for(x=0; x<j; x++){
						m3_5_2[x][i18] = row.getString(x);
					}
					i18++;
					ids.add(id);					
			} else if (id.equals("3.5.3")) {
					for(x=0; x<j; x++){
						m3_5_3[x][i19] = row.getString(x);
					}
					i19++;
					ids.add(id);
			} else if (id.equals("4.1.1.1")) {
					for(x=0; x<j; x++){
						m4_1_1_1[x][i20] = row.getString(x);
					}
					i20++;
					ids.add(id);
			} else if (id.equals("4.1.1.2")) {
					for(x=0; x<j; x++){
						m4_1_1_2[x][i21] = row.getString(x);
					}
					i21++;
					ids.add(id);
			} else if (id.equals("4.1.1.3")) {
					for(x=0; x<j; x++){
						m4_1_1_3[x][i22] = row.getString(x);
					}
					i22++;
					ids.add(id);
			} else if (id.equals("4.1.1.4")) {
					for(x=0; x<j; x++){
						m4_1_1_4[x][i23] = row.getString(x);
					}
					i23++;
					ids.add(id);
			} else if (id.equals("4.1.1.5")) {
					for(x=0; x<j; x++){
						m4_1_1_5[x][i24] = row.getString(x);
					}
					i24++;
					ids.add(id);					
			} else if (id.equals("4.1.2.1")) {
					for(x=0; x<j; x++){
						m4_1_2_1[x][i25] = row.getString(x);
					}
					i25++;
					ids.add(id);					
			} else if (id.equals("4.1.2.2")) {
					for(x=0; x<j; x++){
						m4_1_2_2[x][i26] = row.getString(x);
					}
					i26++;
					ids.add(id);
			} else if (id.equals("4.1.2.3")) {
					for(x=0; x<j; x++){
						m4_1_2_3[x][i27] = row.getString(x);
					}
					i27++;
					ids.add(id);
			} else if (id.equals("4.1.2.4")) {
					for(x=0; x<j; x++){
						m4_1_2_4[x][i28] = row.getString(x);
					}
					i28++;
					ids.add(id);
			} else if (id.equals("4.1.2.5")) {
					for(x=0; x<j; x++){
						m4_1_2_5[x][i29] = row.getString(x);
					}
					i29++;
					ids.add(id);					
			} else if (id.equals("4.2.1")) {
					for(x=0; x<j; x++){
						m4_2_1[x][i30] = row.getString(x);
					}
					i30++;
					ids.add(id);
			} else if (id.equals("4.2.2")) {
					for(x=0; x<j; x++){
						m4_2_2[x][i31] = row.getString(x);
					}
					i31++;
					ids.add(id);					
			} else if (id.equals("5.1.1")) {
					for(x=0; x<j; x++){
						m5_1_1[x][i32] = row.getString(x);
					}
					i32++;
					ids.add(id);
			} else if (id.equals("5.1.2")) {
					for(x=0; x<j; x++){
						m5_1_2[x][i33] = row.getString(x);
					}
					i33++;
					ids.add(id);
			} else if (id.equals("5.1.3")) {
					for(x=0; x<j; x++){
						m5_1_3[x][i34] = row.getString(x);
					}
					i34++;
					ids.add(id);
			} else if (id.equals("5.2.1")) {
					for(x=0; x<j; x++){
						m5_2_1[x][i35] = row.getString(x);
					}
					i35++;
					ids.add(id);
			} else if (id.equals("5.2.2")) {
					for(x=0; x<j; x++){
						m5_2_2[x][i36] = row.getString(x);
					}
					i36++;
					ids.add(id);
			} else if (id.equals("5.2.3")) {
					for(x=0; x<j; x++){
						m5_2_3[x][i37] = row.getString(x);
					}
					i37++;
					ids.add(id);
			} else if (id.equals("5.2.4")) {
					for(x=0; x<j; x++){
						m5_2_4[x][i38] = row.getString(x);
					}
					i38++;
					ids.add(id);
			}		
  		}
 		
  		
		iterator = ids.iterator();
  		while ( iterator.hasNext() ){
			id = (String)iterator.next();
			if (id.equals("1.1")){
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m1_1.length; x++){  						
  						DataRow row = write.next();
  						for (int y=0; y < m1_1[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m1_1[x][y].equals("X")) && (!m1_1[x][y].equals(""))) 
  								row.add( m1_1[x][y] );
  							else if (m1_1[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("1.2")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m1_2.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m1_2[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m1_2[x][y].equals("X")) && (!m1_2[x][y].equals(""))) 
  								row.add( m1_2[x][y] );
  							else if (m1_2[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("1.3")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m1_3.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m1_3[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m1_3[x][y].equals("X")) && (!m1_3[x][y].equals(""))) 
  								row.add( m1_3[x][y] );
  							else if (m1_3[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }  				
			} else if (id.equals("1.4")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m1_4.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m1_4[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m1_4[x][y].equals("X")) && (!m1_4[x][y].equals(""))) 
  								row.add( m1_4[x][y] );
  							else if (m1_4[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }	
			} else if (id.equals("1.5")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m1_5.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m1_5[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m1_5[x][y].equals("X")) && (!m1_5[x][y].equals(""))) 
  								row.add( m1_5[x][y] );
  							else if (m1_5[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("2")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m2.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m2[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m2[x][y].equals("X")) && (!m2[x][y].equals(""))) 
  								row.add( m2[x][y] );
  							else if (m2[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }  
			} else if (id.equals("3.1.1")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m3_1_1.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m3_1_1[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m3_1_1[x][y].equals("X")) && (!m3_1_1[x][y].equals(""))) 
  								row.add( m3_1_1[x][y] );
  							else if (m3_1_1[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }   				
			} else if (id.equals("3.2.1")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m3_2_1.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m3_2_1[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m3_2_1[x][y].equals("X")) && (!m3_2_1[x][y].equals(""))) 
  								row.add( m3_2_1[x][y] );
  							else if (m3_2_1[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("3.2.2")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m3_2_2.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m3_2_2[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m3_2_2[x][y].equals("X")) && (!m3_2_2[x][y].equals(""))) 
  								row.add( m3_2_2[x][y] );
  							else if (m3_2_2[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("3.2.3")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m3_2_3.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m3_2_3[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m3_2_3[x][y].equals("X")) && (!m3_2_3[x][y].equals(""))) 
  								row.add( m3_2_3[x][y] );
  							else if (m3_2_3[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("3.2.4")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m3_2_4.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m3_2_4[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m3_2_4[x][y].equals("X")) && (!m3_2_4[x][y].equals(""))) 
  								row.add( m3_2_4[x][y] );
  							else if (m3_2_4[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("3.2.5")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m3_2_5.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m3_2_5[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m3_2_5[x][y].equals("X")) && (!m3_2_5[x][y].equals(""))) 
  								row.add( m3_2_5[x][y] );
  							else if (m3_2_5[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("3.2.6")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m3_2_6.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m3_2_6[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m3_2_6[x][y].equals("X")) && (!m3_2_6[x][y].equals(""))) 
  								row.add( m3_2_6[x][y] );
  							else if (m3_2_6[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("3.3.1")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m3_3_1.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m3_3_1[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m3_3_1[x][y].equals("X")) && (!m3_3_1[x][y].equals(""))) 
  								row.add( m3_3_1[x][y] );
  							else if (m3_3_1[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("3.4.1")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m3_4_1.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m3_4_1[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m3_4_1[x][y].equals("X")) && (!m3_4_1[x][y].equals(""))) 
  								row.add( m3_4_1[x][y] );
  							else if (m3_4_1[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }  				
			} else if (id.equals("3.4.2")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m3_4_2.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m3_4_2[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m3_4_2[x][y].equals("X")) && (!m3_4_2[x][y].equals(""))) 
  								row.add( m3_4_2[x][y] );
  							else if (m3_4_2[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("3.5.1")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m3_5_1.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m3_5_1[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m3_5_1[x][y].equals("X")) && (!m3_5_1[x][y].equals(""))) 
  								row.add( m3_5_1[x][y] );
  							else if (m3_5_1[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
 			} else if (id.equals("3.5.2")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m3_5_2.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m3_5_2[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m3_5_2[x][y].equals("X")) && (!m3_5_2[x][y].equals(""))) 
  								row.add( m3_5_2[x][y] );
  							else if (m3_5_2[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); } 				
			} else if (id.equals("3.5.3")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m3_5_3.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m3_5_3[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m3_5_3[x][y].equals("X")) && (!m3_5_3[x][y].equals(""))) 
  								row.add( m3_5_3[x][y] );
  							else if (m3_5_3[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("4.1.1.1")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m4_1_1_1.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m4_1_1_1[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m4_1_1_1[x][y].equals("X")) && (!m4_1_1_1[x][y].equals(""))) 
  								row.add( m4_1_1_1[x][y] );
  							else if (m4_1_1_1[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("4.1.1.2")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m4_1_1_2.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m4_1_1_2[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m4_1_1_2[x][y].equals("X")) && (!m4_1_1_2[x][y].equals(""))) 
  								row.add( m4_1_1_2[x][y] );
  							else if (m4_1_1_2[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("4.1.1.3")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m4_1_1_3.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m4_1_1_3[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m4_1_1_3[x][y].equals("X")) && (!m4_1_1_3[x][y].equals(""))) 
  								row.add( m4_1_1_3[x][y] );
  							else if (m4_1_1_3[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("4.1.1.4")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m4_1_1_4.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m4_1_1_4[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m4_1_1_4[x][y].equals("X")) && (!m4_1_1_4[x][y].equals(""))) 
  								row.add( m4_1_1_4[x][y] );
  							else if (m4_1_1_4[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("4.1.1.5")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m4_1_1_5.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m4_1_1_5[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m4_1_1_5[x][y].equals("X")) && (!m4_1_1_5[x][y].equals(""))) 
  								row.add( m4_1_1_5[x][y] );
  							else if (m4_1_1_5[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }  				
			} else if (id.equals("4.1.2.1")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m4_1_2_1.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m4_1_2_1[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m4_1_2_1[x][y].equals("X")) && (!m4_1_2_1[x][y].equals(""))) 
  								row.add( m4_1_2_1[x][y] );
  							else if (m4_1_2_1[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }  				
			} else if (id.equals("4.1.2.2")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m4_1_2_2.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m4_1_2_2[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m4_1_2_2[x][y].equals("X")) && (!m4_1_2_2[x][y].equals(""))) 
  								row.add( m4_1_2_2[x][y] );
  							else if (m4_1_2_2[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("4.1.2.3")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m4_1_2_3.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m4_1_2_3[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m4_1_2_3[x][y].equals("X")) && (!m4_1_2_3[x][y].equals(""))) 
  								row.add( m4_1_2_3[x][y] );
  							else if (m4_1_2_3[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("4.1.2.4")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m4_1_2_4.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m4_1_2_4[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m4_1_2_4[x][y].equals("X")) && (!m4_1_2_4[x][y].equals(""))) 
  								row.add( m4_1_2_4[x][y] );
  							else if (m4_1_2_4[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }  
			} else if (id.equals("4.1.2.5")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m4_1_2_5.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m4_1_2_5[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m4_1_2_5[x][y].equals("X")) && (!m4_1_2_5[x][y].equals(""))) 
  								row.add( m4_1_2_5[x][y] );
  							else if (m4_1_2_5[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }    				
			} else if (id.equals("4.2.1")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m4_2_1.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m4_2_1[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m4_2_1[x][y].equals("X")) && (!m4_2_1[x][y].equals(""))) 
  								row.add( m4_2_1[x][y] );
  							else if (m4_2_1[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("4.2.2")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m4_2_2.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m4_2_2[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m4_2_2[x][y].equals("X")) && (!m4_2_2[x][y].equals(""))) 
  								row.add( m4_2_2[x][y] );
  							else if (m4_2_2[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }				
			} else if (id.equals("5.1.1")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m5_1_1.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m5_1_1[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m5_1_1[x][y].equals("X")) && (!m5_1_1[x][y].equals(""))) 
  								row.add( m5_1_1[x][y] );
  							else if (m5_1_1[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("5.1.2")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m5_1_2.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m5_1_2[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m5_1_2[x][y].equals("X")) && (!m5_1_2[x][y].equals(""))) 
  								row.add( m5_1_2[x][y] );
  							else if (m5_1_2[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("5.1.3")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m5_1_3.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m5_1_3[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m5_1_3[x][y].equals("X")) && (!m5_1_3[x][y].equals(""))) 
  								row.add( m5_1_3[x][y] );
  							else if (m5_1_3[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("5.2.1")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m5_2_1.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m5_2_1[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m5_2_1[x][y].equals("X")) && (!m5_2_1[x][y].equals(""))) 
  								row.add( m5_2_1[x][y] );
  							else if (m5_2_1[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("5.2.2")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m5_2_2.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m5_2_2[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m5_2_2[x][y].equals("X")) && (!m5_2_2[x][y].equals(""))) 
  								row.add( m5_2_2[x][y] );
  							else if (m5_2_2[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("5.2.3")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m5_2_3.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m5_2_3[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m5_2_3[x][y].equals("X")) && (!m5_2_3[x][y].equals(""))) 
  								row.add( m5_2_3[x][y] );
  							else if (m5_2_3[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			} else if (id.equals("5.2.4")) {
  				DataFile write = DataFile.createWriter("8859_1", false);
				write.setDataFormat(new TabFormat());		
				try{
  					write.open(new File(id.concat(".txt")));  		
  					for (int x=0; x < m5_2_4.length; x++){
  						DataRow row = write.next();
  						for (int y=0; y < m5_2_4[x].length; y++){
  							if (x==0 && y==0) row.add("");
  							else if ( (!m5_2_4[x][y].equals("X")) && (!m5_2_4[x][y].equals(""))) 
  								row.add( m5_2_4[x][y] );
  							else if (m5_2_4[x][y].equals("X")) row.add("1"); 
  							else row.add("0");
  						}
  					}
  				}
  				finally { write.close(); }
			}
				
		}	
  		  	
	}
	finally {
  		read.close();
	}

  }
}
