/**
 * CREATE TABLE `democratie_en2025`.`Aléamétrie 2025` (
 *  `NIR` VARCHAR( 15 ) NOT NULL DEFAULT '000000000000000',
 *  `Prénom` VARCHAR( 22 ) NOT NULL DEFAULT 'X',
 *  `Rôle` CHAR( 1 ) NOT NULL DEFAULT '?',
 *  `Du` DATE NOT NULL ,
 *  `Au` DATE NOT NULL ,
 *  UNIQUE (`NIR`)
 * )
 * 2460140005733 : I du 1 janv. 2025 0h00GMT au 8 janv. 2025 0h00GMT\
 * 2460647659795 : I du 1 janv. 2025 0h00GMT au 8 janv. 2025 0h00GMT\
 * 2461186811472 : I du 1 janv. 2025 0h00GMT au 8 janv. 2025 0h00GMT\
 * NIR      varchar(15) "..."
 * Prénom   varchar(22) "..."
 * Rôle     char(1) "."
 * Du       Date '2005-00-00'
 * Au       Date '2005-00-00'
 * INSERT INTO `Aléamétrie 2025` (`NIR`, `Prénom`, `Rôle`, `Du`, `Au`) VALUES (...);
 */

package com.seknet.txt2sql;

import java.io.File;
import java.io.FileWriter;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author im
 */
public class Txt2sql {
    static String[] mois = {"janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."};
    static String s2s(int idx, String txt) {
        int xdu = txt.indexOf(" du "), xau = txt.indexOf(" au ");
        int xjdu = xdu+4, xjau = xau+4;
        int xmdu = txt.indexOf(" ",xjdu+1)+1, xmau = txt.indexOf(" ", xjau+1)+1;
        int xadu = txt.indexOf(" ", xmdu+1)+1, xaau = txt.indexOf(" ", xmau+1)+1;
        //int xhdu = txt.indexOf(" 0h00GMT", xdu), xhau = txt.indexOf(" 0h00GMT", xau);
        int imdu = 0, imau = 0;
        for (int im=0; im<mois.length; im++) {
            if (txt.substring(xmdu, xadu-1) == null ? mois[im] == null : txt.substring(xmdu, xadu-1).equals(mois[im])) imdu = im;
            if (txt.substring(xmau, xaau-1) == null ? mois[im] == null : txt.substring(xmau, xaau-1).equals(mois[im])) imau = im;
        }
        String du = txt.substring(xadu, xadu+4)+"-"+(imdu+1)+"-"+txt.substring(xjdu, xmdu-1), au = txt.substring(xaau, xaau+4)+"-"+(imau+1)+"-"+txt.substring(xau+4, xmau-1);
        String sql = "INSERT INTO `Aléamétrie 2025` (`Aléa`, `NIR`, `Prénom`, `Rôle`, `Du`, `Au`) VALUES ("+idx+", \""+txt.substring(0, 13)+"\",\"\",\""+txt.substring(16,17)+"\",'"+du+"','"+au+"');";
        while (sql.length()<110) sql +=" ";
        sql += "\n";
        return sql;
    }
    public static void main(String[] args) {
        String  l1="2460140005733 : I du 1 janv. 2025 0h00GMT au 8 janv. 2025 0h00GMT\\",
                l2="2460647659795 : I du 1 janv. 2025 0h00GMT au 8 janv. 2025 0h00GMT\\",
                l3="2461186811472 : I du 1 janv. 2025 0h00GMT au 8 janv. 2025 0h00GMT\\";
        System.out.println("Hello World!");
        System.out.println(l1);
        System.out.println(s2s(0,l1));
        System.out.println(l2);
        System.out.println(s2s(1,l2));
        System.out.println(l3);
        System.out.println(s2s(3,l3));
        //----------
        int idx = 0;
        String sftxt = "/home/im/democratie.en2025.free.fr/DadFR2025.txt", ssqlF = "/home/im/democratie.en2025.free.fr/DadFR2025.sql";
        File txtF = new File(sftxt), oldfsql = new File(ssqlF);
        oldfsql.delete();
        try {
            FileWriter fwsql = new FileWriter(ssqlF);
            Scanner scftxt = new Scanner(txtF);
            String data = scftxt.nextLine();
            //for (int i=0; i<10000; i++) {
            while ((scftxt.hasNextLine()) && ((data.indexOf("janv.")>0)||(data.indexOf("févr.")>0)||(data.indexOf("mars")>0)||(data.indexOf("avr.")>0)||(data.indexOf("mai")>0)||(data.indexOf("juin")>0)||(data.indexOf("juil.")>0)||(data.indexOf("août")>0)||(data.indexOf("sept.")>0)||(data.indexOf("oct.")>0)||(data.indexOf("nov.")>0))) {
                //System.out.println(s2s(scftxt.nextLine()));
                fwsql.write(s2s(idx, scftxt.nextLine()));
                idx++;
            }
            fwsql.close();
        } catch (Exception ex) {
            ex.printStackTrace();
            Logger.getLogger(Txt2sql.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
