mirror of
https://gitlab.com/kauron/jstudy
synced 2024-12-22 16:33:33 +01:00
Import from other formats
This commit is contained in:
parent
637bc33d2d
commit
034464b7b9
2 changed files with 26 additions and 4 deletions
|
@ -86,10 +86,17 @@ public class Controller implements Initializable {
|
|||
@FXML
|
||||
private void onImportAction(ActionEvent event) {
|
||||
FileChooser chooser = new FileChooser();
|
||||
chooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Data files (.csv)", "*.csv"));
|
||||
chooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Data files (.csv, .txt)", "*.csv", "*.txt"));
|
||||
File file = chooser.showOpenDialog(root.getScene().getWindow());
|
||||
if (file == null) return;
|
||||
List<TestItem> aux = TestItem.loadFrom(file, TestItem.SEMICOLON);
|
||||
String separator;
|
||||
if (file.getName().matches(".*txt"))
|
||||
separator = TestItem.TAB;
|
||||
else if (file.getName().matches(".*csv"))
|
||||
separator = TestItem.SEMICOLON;
|
||||
else
|
||||
separator = TestItem.COMMA;
|
||||
List<TestItem> aux = TestItem.loadFrom(file, separator);
|
||||
if (aux != null) {
|
||||
tabPane.getTabs().add(createTableTab(file.getName().substring(0, file.getName().lastIndexOf('.')), aux));
|
||||
tabPane.getSelectionModel().selectLast();
|
||||
|
|
|
@ -10,7 +10,7 @@ import java.util.List;
|
|||
import java.util.Scanner;
|
||||
|
||||
public class TestItem {
|
||||
public static final String COMMA = ",", COLONS = "::", SEMICOLON = ";";
|
||||
public static final String TAB = "\t", COLONS = "::", SEMICOLON = ";", COMMA = ",";
|
||||
|
||||
private StringProperty question, answer;
|
||||
|
||||
|
@ -67,12 +67,27 @@ public class TestItem {
|
|||
public static List<TestItem> loadFrom(File file, String separator) {
|
||||
List<TestItem> list = new ArrayList<>();
|
||||
try {
|
||||
Scanner in = new Scanner(file);
|
||||
Scanner in;
|
||||
switch (separator) {
|
||||
case COMMA:
|
||||
case SEMICOLON:
|
||||
case TAB:
|
||||
in = new Scanner(new FileInputStream(file), "ISO-8859-1");
|
||||
break;
|
||||
default:
|
||||
in = new Scanner(file);
|
||||
break;
|
||||
}
|
||||
while (in.hasNextLine()) {
|
||||
String line = in.nextLine();
|
||||
if (!line.matches("..*" + separator + "..*")) continue;
|
||||
int index = line.indexOf(separator);
|
||||
String question = line.substring(0, index);
|
||||
String answer = line.substring(index + separator.length());
|
||||
index = answer.indexOf(separator);
|
||||
if (index != -1)
|
||||
answer = answer.substring(0, index);
|
||||
if (answer.isEmpty()) continue;
|
||||
list.add(new TestItem(question, answer));
|
||||
System.err.println(question + " :: " + answer);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue