renforcé l'algorithme pour éviter toute casse

This commit is contained in:
as704245 2019-10-10 14:36:33 +02:00
parent d2e900a78b
commit e1f3fe111d

View File

@ -1,4 +1,4 @@
package config; package config;
import java.io.*; import java.io.*;
import java.util.*; import java.util.*;
@ -27,13 +27,13 @@ public class Config {
this.questions = questions; this.questions = questions;
} }
public boolean isParsable(String s) { public boolean isParsable(String s) {
try { try {
Integer.valueOf(s); Integer.valueOf(s);
return true; return true;
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
return false; return false;
} }
} }
public Config(String s) { public Config(String s) {
@ -85,26 +85,28 @@ public class Config {
// ce caractere apparait uniquement en debut de fichier // ce caractere apparait uniquement en debut de fichier
if (ligne.startsWith("\uFEFF")) if (ligne.startsWith("\uFEFF"))
ligne = ligne.substring(1); ligne = ligne.substring(1);
while (ligne.equals("")) // on saute les lignes vides si elles sont au debut du fichier while (scan.hasNext() || !ligne.isEmpty() || ligne.equals(System.lineSeparator())) {
ligne = scan.nextLine(); if (!ligne.equals("")) {
while (scan.hasNext()) { if (!(ligne.substring(0, 1).equals("#"))) // si ligne commence par un # c'est un commentaire, donc
if (!(ligne.substring(0, 1).equals("#"))) // si ligne commence par un # c'est un commentaire, donc on // on
// l'ignore // l'ignore
{
if (ligne.substring(0, 1).equals("*")) // si ligne commence par une *, c'est une question
{ {
q = makeQuestion(ligne); if (ligne.substring(0, 1).equals("*")) // si ligne commence par une *, c'est une question
ligne = scan.nextLine(); // on scan la prochaine ligne
while (!ligne.equals("")) // tant que la ligne n'est pas vide, on lit la suite qui est supposé
// etre les reponses
{ {
q.addReponse(ligne); q = makeQuestion(ligne);
ligne = scan.nextLine(); ligne = scan.nextLine(); // on scan la prochaine ligne
while (!ligne.equals("")) // tant que la ligne n'est pas vide, on lit la suite qui est
// supposé
// etre les reponses
{
q.addReponse(ligne);
ligne = scan.nextLine();
}
questions.add(q);
} else // si c'est pas une *, alors c'est un parametre (on ignore les lignes vides)
{
lireParam(ligne);
} }
questions.add(q);
} else // si c'est pas une *, alors c'est un parametre (on ignore les lignes vides)
{
lireParam(ligne);
} }
} }
ligne = scan.nextLine(); ligne = scan.nextLine();
@ -154,57 +156,61 @@ public class Config {
public void lireParam(String s) { public void lireParam(String s) {
int n = s.indexOf(":"); // recherche de position du premier ":" pour pouvoir separer le nom du param de int n = s.indexOf(":"); // recherche de position du premier ":" pour pouvoir separer le nom du param de
// sa valeur // sa valeur
String spl[] = { s.substring(0, n), s.substring(n + 1, s.length()) }; if (n != -1) // si -1 alors il n'y a pas de : et donc ce n'est pas un paramètre
while (spl[1].substring(0, 1).equals(" "))
spl[1] = spl[1].substring(1, spl[1].length());
spl[0] = spl[0].toUpperCase(); // pour eviter la casse, on met tout en upper case
switch (spl[0]) // chaque case correspond é un parametre, pour le moment on ignore tout
// parametre qui n'est pas utile au programme.
{ {
case "PAPERSIZE": String spl[] = { s.substring(0, n), s.substring(n + 1, s.length()) };
setPaperSize(spl[1]); while (spl[1].substring(0, 1).equals(" "))
break; spl[1] = spl[1].substring(1, spl[1].length());
spl[0] = spl[0].toUpperCase().trim(); // pour eviter la casse, on met tout en upper case
switch (spl[0]) // chaque case correspond é un parametre, pour le moment on ignore tout
// parametre qui n'est pas utile au programme.
{
case "PAPERSIZE":
setPaperSize(spl[1]);
case "CODE": break;
setCode(spl[1]);
break; case "CODE":
setCode(spl[1]);
case "MARKFORMAT": break;
setMarkFormat(spl[1]);
break; case "MARKFORMAT":
setMarkFormat(spl[1]);
case "NAMEFIELD": break;
setNameField(spl[1]);
break; case "NAMEFIELD":
setNameField(spl[1]);
case "STUDENTIDFIELD": break;
setStudentIdField(spl[1]);
break; case "STUDENTIDFIELD":
setStudentIdField(spl[1]);
case "MARKFIELD": break;
setMarkField(spl[1]);
break; case "MARKFIELD":
setMarkField(spl[1]);
case "SEPARATEANSWERSHEET": break;
setSeparateAnswerSheet(spl[1]);
break; case "SEPARATEANSWERSHEET":
setSeparateAnswerSheet(spl[1]);
case "ANSWERSHEETTITLE": break;
setAnswerSheetTitle(spl[1]);
break; case "ANSWERSHEETTITLE":
setAnswerSheetTitle(spl[1]);
case "ANSWERSHEETPRESENTATION": break;
setAnswerSheetPresentation(spl[1]);
break; case "ANSWERSHEETPRESENTATION":
default: // parametre mal tapé ou non utile (pour le moment) au programme, on l'ignore setAnswerSheetPresentation(spl[1]);
break;
default: // parametre mal tapé ou non utile (pour le moment) au programme, on l'ignore
}
} }
} }