diff --git a/msi.gama.core/src/msi/gama/common/preferences/GamaPreferences.java b/msi.gama.core/src/msi/gama/common/preferences/GamaPreferences.java
index 547cbcbb32..62e037824c 100644
--- a/msi.gama.core/src/msi/gama/common/preferences/GamaPreferences.java
+++ b/msi.gama.core/src/msi/gama/common/preferences/GamaPreferences.java
@@ -40,6 +40,7 @@
import msi.gama.util.GamaMapFactory;
import msi.gama.util.file.GenericFile;
import msi.gama.util.file.IGamaFile;
+import msi.gama.util.file.csv.AbstractCSVManipulator;
import msi.gaml.compilation.GAML;
import msi.gaml.compilation.kernel.GamaMetaModel;
import msi.gaml.operators.Cast;
@@ -59,6 +60,10 @@
* The Class GamaPreferences.
*/
+/**
+ * The Class GamaPreferences.
+ */
+
/**
* The Class GamaPreferences.
*/
@@ -352,10 +357,12 @@ public static class Runtime {
// public static final Pref CORE_DELAY_STEP = create("pref_experiment_default_step",
/** The Constant CORE_SYNC. */
// "Default step for the delay slider (in sec.)", 0.001, IType.FLOAT, true).in(NAME, EXECUTION).disabled();
-
+
public static final Pref CORE_SLIDER_TYPE = create("pref_experiment_type_slider",
- "Set the step duration slider incrementation to linear. If false set to logarithmic", true, IType.BOOL, true).in(NAME, EXECUTION);
-
+ "Set the step duration slider incrementation to linear. If false set to logarithmic", true, IType.BOOL,
+ true).in(NAME, EXECUTION);
+
+ /** The Constant CORE_SYNC. */
public static final Pref CORE_SYNC =
create("pref_display_synchronized", "Synchronize outputs with the simulation", false, IType.BOOL, true)
.in(NAME, EXECUTION);
@@ -815,6 +822,16 @@ public static class External {
if (codes.isEmpty()) return false;
return true;
});
+
+ /** The Constant CSV_STRING_QUALIFIER. */
+ public static final Pref CSV_STRING_QUALIFIER = GamaPreferences
+ .create("pref_csv_string_qualifier", "Default separator for strings", String.valueOf(AbstractCSVManipulator.Letters.QUOTE), IType.STRING, true)
+ .in(NAME, "CSV Files");
+
+ /** The Constant CSV_SEPARATOR. */
+ public static final Pref CSV_SEPARATOR =
+ GamaPreferences.create("pref_csv_separator", "Default separator for fields", String.valueOf(AbstractCSVManipulator.Letters.COMMA), IType.STRING, true)
+ .in(GamaPreferences.External.NAME, "CSV Files");
}
/**
diff --git a/msi.gama.core/src/msi/gama/outputs/FileOutput.java b/msi.gama.core/src/msi/gama/outputs/FileOutput.java
index 93c8778034..79171eb361 100644
--- a/msi.gama.core/src/msi/gama/outputs/FileOutput.java
+++ b/msi.gama.core/src/msi/gama/outputs/FileOutput.java
@@ -1,12 +1,11 @@
/*******************************************************************************************************
*
- * FileOutput.java, in msi.gama.core, is part of the source code of the
- * GAMA modeling and simulation platform (v.1.9.2).
+ * FileOutput.java, in msi.gama.core, is part of the source code of the GAMA modeling and simulation platform (v.1.9.2).
*
* (c) 2007-2023 UMI 209 UMMISCO IRD/SU & Partners (IRIT, MIAT, TLU, CTU)
*
* Visit https://github.com/gama-platform/gama for license information and contacts.
- *
+ *
********************************************************************************************************/
package msi.gama.outputs;
@@ -19,7 +18,6 @@
import java.util.Arrays;
import java.util.Calendar;
import java.util.List;
-import java.util.stream.Collectors;
import msi.gama.common.interfaces.IKeyword;
import msi.gama.kernel.experiment.IExperimentPlan;
@@ -34,6 +32,7 @@
import msi.gama.runtime.IScope;
import msi.gama.runtime.exceptions.GamaRuntimeException;
import msi.gama.util.IMap;
+import msi.gama.util.file.csv.AbstractCSVManipulator;
import msi.gaml.compilation.GAML;
import msi.gaml.descriptions.IDescription;
import msi.gaml.expressions.IExpression;
@@ -46,6 +45,7 @@
*
* A particular output file especially design for the batch experiment output
*
+ *
* @author drogoul
*/
@symbol (
@@ -125,55 +125,55 @@ public FileOutput(/* final ISymbol context, */final IDescription desc) {
/** The file. */
File file = null;
-
+
/** The file name. */
String fileName = "";
-
+
/** The rewrite. */
boolean rewrite = false;
-
+
/** The header. */
String header = "";
-
+
/** The footer. */
String footer = "";
-
+
/** The last value. */
Object lastValue = null;
-
+
/** The last values. */
List