package vortex;

import java.io.*;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class ReadFileTxt2Csv {
	 private double[] input;
	 private double output;
	 private String fichierLine=new String();
	 private String fichierCoord=new String();
	 private String fichierWork=new String();
	public  ReadFileTxt2Csv(String fichierLine,String fichierCoord, String fichierWork) throws IOException {
		this.fichierLine=fichierLine;
		this.fichierCoord=fichierCoord;
		this.fichierWork=fichierWork;
	
	}
	public void setFichierLine(String fichierLine) {
		this.fichierLine=fichierLine;
		
	}
	
	public void setFichierCoord(String fichierCoord) {
		this.fichierCoord=fichierCoord;
		
	}
	
	public void setFichierWork(String fichierWork) {
		this.fichierWork=fichierWork;
		
	}
	public void setInput(double[] input) {
		for(int i=0;i<input.length;i++) {
			this.input[i]=input[i];
		}
	}public void setOutput(double output) {
			this.output=output;
		
	}
	public String getFichierLine(){
		return this.fichierLine;
	}
	
	public String getFichierCoord(){
		return this.fichierCoord;
	}
	
	public String getFichierWork(){
		return this.fichierWork;
	}
	public double[] getInput() {
		return input;
	}
	public double getOutput() {
		return output;
	}
	
public void txt2csv(String fichierTxt,String fichierCsv) throws IOException {
	String fichierEntree = fichierTxt;
	FileReader entree = new FileReader(fichierEntree);
	FileWriter sortie = new FileWriter(fichierCsv);
	int c;
	System.out.println("transformation de " + fichierEntree + " en fichier CSV");
	while((c = entree.read()) != -1) {
				if((c==32)){
				sortie.write(59);	
				}
				sortie.write(c);
	}
	entree.close();
	sortie.close();
    }


	
	public void csvFindCoord(String file, String coord, String res) throws IOException {
		Scanner s = null;
		int cpt =0;
		int n=0;
		this.setFichierWork(res);
		String content="";
		//FileWriter sortie = new FileWriter(res+".csv");
	        try {
            s = new Scanner(new BufferedReader(new FileReader(new File(file))));

            while (s.hasNext()) {
            
            	 if(cpt==5) {
              	   
              	   cpt=0;
              	   content = content + "\n";
                 }
            		cpt++;
                n =Integer.parseInt(s.next());
                
           	     
           	     
           	       BufferedReader br = new BufferedReader(new FileReader(new File(coord)));
           	       for (int i=0;i<(n-1);i++) {
           	        br.readLine();
           	       
           	       }
           	         content = content+ (String)br.readLine();
           	         /*content.substring(content.indexOf(" "),content.lastIndexOf(" "));
           	         content.substring(0,content.lastIndexOf(" "));
           	        */content.replace(" ", ";");
           	    
           	        BufferedWriter bw = null;
        		FileWriter fw = null;

        		

        			//String content = "This is the content to write into file\n";
        		try {
        			
        			bw = new BufferedWriter(new FileWriter (new File (res)));
        			bw.write(content);
        			
        			//System.out.println("Done"+content);
        			
        		}catch(IOException ef) {
        			ef.printStackTrace();
        		}finally {

        			try {
        				
        				if (bw != null)
        					bw.close();

        				if (fw != null)
        					fw.close();
        				
        		}catch(IOException ex) {
        			ex.printStackTrace();
        		}
        		}
        			
        			
        		
        		
            
        		
	
        		
	
        }
        
        
	}catch(IOException e) {
		e.printStackTrace();
	}
        s.close();
	}
	


	public int countLines(String filename) throws IOException {
	    InputStream is = new BufferedInputStream(new FileInputStream(filename));
	    try {
	        byte[] c = new byte[1024];
	        int count = 0;
	        int readChars = 0;
	        boolean empty = true;
	        while ((readChars = is.read(c)) != -1) {
	            empty = false;
	            for (int i = 0; i < readChars; ++i) {
	                if (c[i] == '\n') {
	                    ++count;
	                }
	            }
	        }
	        return (count == 0 && !empty) ? 1 : count;
	    } finally {
	        is.close();
	    }
	}
	
	
		public static void main(String[] args) throws IOException {
		ReadFileTxt2Csv FileProceed = new ReadFileTxt2Csv(args[0],args[1],args[2]);
		FileProceed.txt2csv(FileProceed.getFichierCoord(),"coord.csv");
		FileProceed.csvFindCoord(FileProceed.getFichierLine(),"coord.csv", FileProceed.getFichierWork());
		}
}
	   