package pobj.iface; import pobj.mediatheque.base.Mediatheque; import pobj.mediatheque.media.Cd; import pobj.mediatheque.media.Medium; import pobj.mediatheque.media.VHS; import pobj.mediatheque.media.Dvd; import java.io.*; public class princ { // fichier de base private static final String NOM_FIC_BASE = "/home/cyril/workspace/projet-LAVIER/medium"; public static void main (String[] args) throws FileNotFoundException, IOException { String continue1 = "O"; Mediatheque mediatheque = new Mediatheque(); String strfich = ""; System.out.println("Intialisation de la base\n..."); try { strfich = init_mediatheque(mediatheque); }catch (FileNotFoundException err1) { System.out.println("Fichier non trouvé."); err1.printStackTrace(); } catch (IOException err2) { System.out.println("Erreur d'entrée - sortie."); err2.printStackTrace(); } do { String rep_men1 = menu(); if (rep_men1.compareTo("Q") == 0) { break; } System.out.println(""); continue1 = action(rep_men1, mediatheque, strfich); System.out.println(""); } while (continue1.compareTo("O") == 0); System.out.println("Au revoir"); } public static String init_mediatheque(Mediatheque m) throws FileNotFoundException, IOException { String [] med; String ligne; String totalfich = ""; Reader r = new FileReader(NOM_FIC_BASE); BufferedReader br = new BufferedReader(r); while ((ligne=br.readLine()) != null) { totalfich = totalfich +ligne+"_"; med=ligne.split(";"); if (med[0].compareTo("vhs") == 0) { m.addMedium(new VHS(med[1],med[2],Integer.parseInt(med[3]))); }else{ if (med[0].compareTo("dvd") == 0) { m.addMedium(new Dvd(med[1],med[2],Integer.parseInt(med[3]))); }else{ if (med[0].compareTo("cd") == 0) { m.addMedium(new Cd(med[1],med[2], med[3])); } } } } r.close(); System.out.println(totalfich); System.out.println("Intialisation correctement effectuée\n"+m.getMedia().size()+" enregistrements ajoutés"); return totalfich; } public static String menu() { System.out.println("\n######################################################"); System.out.println("################# MENU PRINCIPAL #####################"); System.out.println("######################################################"); System.out.println("# L : LISTER LA MÉDIATHÈQUE ##########################"); System.out.println("# L-TYPE : LISTER LES ÉLÉMENTS DE TYPE \"TYPE\" ########"); System.out.println("# A-TYPE : AJOUTER UN ÉLÉMENT DU TYPE \"TYPE\" #########"); System.out.println("########## (Cd, Dvd, Vhs) ############################"); System.out.println("######################################################"); System.out.println("# Q : QUITTER ########################################"); System.out.println("######################################################"); System.out.print("\nChoix : "); String rep1 = SaisieClavier.LireChaine(); return rep1; } public static String action(String c, Mediatheque m, String strfich) throws IOException { String ret; if(c.startsWith("L") == true) { ret = affi(c, m); }else{ if(c.startsWith("A") == true) { ret = ajout(c, m, strfich); }else{ System.out.println("ERREUR"); ret = "O"; } } return ret; } public static String ajout(String c, Mediatheque m, String strfich) throws IOException { String ret; String [] type; String titremed; String auteurmed; type=c.split("-"); ret="O"; System.out.println("Titre ?"); titremed = SaisieClavier.LireChaine(); System.out.println("Auteur ?"); auteurmed = SaisieClavier.LireChaine(); if(type[1].compareToIgnoreCase("dvd") == 0) { String zonedvd; System.out.println("Zone du DVD ?"); zonedvd = SaisieClavier.LireChaine(); if (m.addMedium(new Dvd(titremed, auteurmed, Integer.parseInt(zonedvd)))) { System.out.println("Ajouter ce DVD à la base ?(O/N)"); String ch = SaisieClavier.LireChaine(); if (ch.compareToIgnoreCase("O") == 0) { String ligne = "dvd;"+titremed+";"+auteurmed+";"+zonedvd; ecriture_base(strfich+ligne); } } } if(type[1].compareToIgnoreCase("cd") == 0) { String formatcd; System.out.println("Format du CD ?"); formatcd = SaisieClavier.LireChaine(); if (m.addMedium(new Cd(titremed, auteurmed, formatcd))) { System.out.println("Ajouter ce CD à la base ?(O/N)"); String ch = SaisieClavier.LireChaine(); if (ch.compareToIgnoreCase("O") == 0) { String ligne = "cd;"+titremed+";"+auteurmed+";"+formatcd; ecriture_base(strfich+ligne); } } } if(type[1].compareToIgnoreCase("vhs") == 0) { String dureevhs; System.out.println("Durée de la VHS ?"); dureevhs = SaisieClavier.LireChaine(); if (m.addMedium(new VHS(titremed,auteurmed, Integer.parseInt(dureevhs)))) { System.out.println("Ajouter cette VHS à la base ?(O/N)"); String ch = SaisieClavier.LireChaine(); if (ch.compareToIgnoreCase("O") == 0) { String ligne = "vhs;"+titremed+";"+auteurmed+";"+dureevhs; ecriture_base(strfich+ligne); } } } return ret; } public static void ecriture_base(String ligne) throws IOException { String [] fichier = ligne.split("_"); Writer w = new FileWriter(NOM_FIC_BASE); for (int i=0; i 1) { c = choix[1].toLowerCase(); }else{ c = choix[0]; } for (int i=0; i