renforcé l'algorithme pour éviter toute casse
This commit is contained in:
parent
d2e900a78b
commit
e1f3fe111d
@ -1,4 +1,4 @@
|
|||||||
package config;
|
package config;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -27,15 +27,15 @@ 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) {
|
||||||
// Constructeur, prend en parametre le chemin vers le fichier source
|
// Constructeur, prend en parametre le chemin vers le fichier source
|
||||||
source = s;
|
source = 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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -278,4 +284,4 @@ public class Config {
|
|||||||
param.replace("AnswerSheetPresentation", s);
|
param.replace("AnswerSheetPresentation", s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user