Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
SimpleCsvReaderWriter.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* SimpleCsvReaderWriter.h (C) 2000-2022 */
9/* */
10/* Classe permettant de lire et d'écrire un fichier au format csv. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#ifndef ARCANE_STD_SIMPLECSVREADERWRITER_H
15#define ARCANE_STD_SIMPLECSVREADERWRITER_H
16
17/*---------------------------------------------------------------------------*/
18/*---------------------------------------------------------------------------*/
19
20#include "arcane/ISimpleTableReaderWriter.h"
21
22#include "arcane/Directory.h"
23#include "arcane/utils/FatalErrorException.h"
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28namespace Arcane
29{
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33
36{
37 public:
39 : m_simple_table_internal(simple_table_internal)
40 , m_separator(';')
41 , m_precision_print(6)
42 , m_is_fixed_print(false)
43 , m_scientific_notation(false)
44 {
45 if (simple_table_internal.isNull())
46 ARCANE_FATAL("La réference passée en paramètre est Null.");
47 }
48
50 : m_simple_table_internal()
51 , m_separator(';')
52 , m_precision_print(6)
53 , m_is_fixed_print(false)
54 , m_scientific_notation(false)
55 {
56 }
57
58 ~SimpleCsvReaderWriter() = default;
59
60 public:
61 bool writeTable(const Directory& dst, const String& file_name) override;
62 bool readTable(const Directory& src, const String& file_name) override;
63 void clearInternal() override;
64 void print() override;
65
66 Integer precision() override;
67 void setPrecision(Integer precision) override;
68
69 bool isFixed() override;
70 void setFixed(bool fixed) override;
71
72 bool isForcedToUseScientificNotation() override;
74
75 String fileType() override { return m_output_file_type; };
76
79
80 protected:
81 bool _openFile(std::ifstream& stream, Directory directory, const String& file);
82 void _closeFile(std::ifstream& stream);
83 void _print(std::ostream& stream);
84
85 protected:
86 Ref<SimpleTableInternal> m_simple_table_internal;
87
88 char m_separator;
89
90 Integer m_precision_print;
91 bool m_is_fixed_print;
92 bool m_scientific_notation;
93
94 const String m_output_file_type = "csv";
95};
96
97/*---------------------------------------------------------------------------*/
98/*---------------------------------------------------------------------------*/
99
100} // End namespace Arcane
101
102/*---------------------------------------------------------------------------*/
103/*---------------------------------------------------------------------------*/
104
105#endif
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Classe gérant un répertoire.
Definition Directory.h:33
Interface de classe permettant de lire un fichier et d'écrire un fichier avec ou à partir d'un Simple...
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
void setFixed(bool fixed) override
Méthode permettant de définir le flag 'std::fixed' ou non.
void setInternal(const Ref< SimpleTableInternal > &simple_table_internal) override
Méthode permettant de définir une référence vers un SimpleTableInternal.
bool isForcedToUseScientificNotation() override
Méthode permettant de savoir si le frag 'std::scientific' est actif ou non pour l'écriture des valeur...
void clearInternal() override
Méthode permettant d'effacer le contenu de l'objet SimpleTableInternal.
void setForcedToUseScientificNotation(bool use_scientific) override
Méthode permettant de définir le flag 'std::scientific' ou non.
bool readTable(const Directory &src, const String &file_name) override
Méthode permettant de lire un fichier contenant un tableau simple.
String fileType() override
Méthode permettant de récupérer le type de fichier qui sera écrit par l'implémentation....
void print() override
Méthode permettant d'écrire le tableau dans la sortie standard.
bool isFixed() override
Méthode permettant de savoir si le frag 'std::fixed' est actif ou non pour l'écriture des valeurs.
Ref< SimpleTableInternal > internal() override
Méthode permettant de récupérer une référence vers l'objet SimpleTableInternal utilisé.
bool writeTable(const Directory &dst, const String &file_name) override
Méthode permettant d'écrire un tableau simple dans un fichier.
void setPrecision(Integer precision) override
Méthode permettant de modifier la précision du print.
Integer precision() override
Méthode permettant de récupérer la précision actuellement utilisée pour l'écriture des valeurs.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-