Home | Develop | Download | Contact
Csv.hpp
1/*
2 * Csv.hpp
3 *
4 * Copyright 2018 Fernando Pujaico Rivera <fernando.pujaico.rivera@gmail.com>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19 * MA 02110-1301, USA.
20 *
21 */
22
32#ifndef __PDS_CSV_HPP__
33#define __PDS_CSV_HPP__
34
35#include <string>
36#include <Pds/Matrix>
37#include <Pds/Vector>
38#include <Pds/Grid>
39
48namespace Pds{
49
50
58class Csv
59{
60
61public:
62
64 std::string del;
65
66public:
67
77 Csv(void);
78
85 Csv(const std::string &filepath, const std::string &del=",");
86
87
96 Csv(unsigned int Nlin, unsigned int Ncol, char del);
97
105 Csv(const Pds::Csv &B);
106
107
109
114public:
115
141
152 bool Copy(const Pds::Csv &B);
153
159 void MakeEmpty(void);
160
161
167 bool IsEmpty(void) const;
168
173public:
174
185 unsigned int Nlin(void) const;
186
192 unsigned int Ncol(void) const;
193
194
206 std::string Get(unsigned int lin, unsigned int col) const;
207
219 const std::string& At(unsigned int lin, unsigned int col) const
220 {
221 return this->data.At(lin,col);
222 }
223
235 std::string& In(unsigned int lin, unsigned int col)
236 {
237 return this->data.In(lin,col);
238 }
239
244public:
245
266 Pds::Grid<std::string> GetColumnsString(const std::vector<unsigned int> &Id,
268
283 Pds::Matrix GetColumnsDouble( const std::vector<unsigned int> &Id,
285
300 Pds::Grid<std::string> GetRowsString( const std::vector<unsigned int> &Id,
302
317 Pds::Matrix GetRowsDouble( const std::vector<unsigned int> &Id,
319
334 std::vector<std::string> GetColumnString( unsigned int Id,
336
351 Pds::Vector GetColumnDouble(unsigned int Id,
353
354 //Pds::Vector x=Cvs.GetRowDouble(0,Pds::Ra::All);
355 //std::vector y=Cvs.GetRowString(2,Pds::Ra::WithoutLast);
360public:
361
372 bool Save(const std::string &filename) const;
373
378public:
379
390 void Print(std::string str="") const;
391
392
396}; // Class Csv
397
398} // namespace Pds
399
400
416 std::ostream& operator<<(std::ostream &out,const Pds::Csv &z);
417
418
428#endif
429
La clase tipo Pds::Csv . Esta clase genera un objeto con dos parametros Nlin y Ncol....
Definition: Csv.hpp:59
std::string del
Definition: Csv.hpp:64
Pds::Grid< std::string > data
Definition: Csv.hpp:63
La clase tipo Pds::Matrix . Esta clase genera una matriz de Nlin lineas y Ncol columnas....
Definition: Matrix.hpp:96
La clase tipo Pds::Vector . Esta clase genera una matriz de Nlin lineas y 1 columna....
Definition: Vector.hpp:80
Pds::Grid< std::string > GetRowsString(const std::vector< unsigned int > &Id, Pds::Ra::ImportRange Type=Pds::Ra::AllData) const
Retorna un conjunto de lineas.
void Print(std::string str="") const
Muestra en pantalla el contenido de Pds::Csv, elementos separados por tabulador.
std::string & In(unsigned int lin, unsigned int col)
Retorna una referencia de lectura y escritura al dato en la linea lin columna col.
Definition: Csv.hpp:235
Csv(const std::string &filepath, const std::string &del=",")
Crea un objeto de tipo Pds::Csv.
const std::string & At(unsigned int lin, unsigned int col) const
Retorna una referencia de solo lectura al dato en la linea lin columna col.
Definition: Csv.hpp:219
bool Copy(const Pds::Csv &B)
Copia en si mismo (A), el contenido de un Shape B. Este método es similar a usar el operador = .
std::vector< std::string > GetColumnString(unsigned int Id, Pds::Ra::ImportRange Type=Pds::Ra::AllData) const
Retorna datos de una columna.
unsigned int Nlin(void) const
Retorna el número de lineas.
Csv(unsigned int Nlin, unsigned int Ncol, char del)
Crea un objeto de tipo Pds::Csv con Nlin lineas, Ncol columnas y con delimitador ",...
Csv(const Pds::Csv &B)
Crea un objeto de tipo Pds::Csv copiando datos desde otra.
bool IsEmpty(void) const
Verifica la estructura está vazia.
std::ostream & operator<<(std::ostream &out, const Pds::Csv &z)
Retorna el contenido del objeto por la salida estándar.
unsigned int Ncol(void) const
Retorna el número de columnas.
Csv(void)
Crea un objeto de tipo Pds::Csv.
Pds::Matrix GetColumnsDouble(const std::vector< unsigned int > &Id, Pds::Ra::ImportRange Type=Pds::Ra::AllData) const
Retorna un conjunto de columnas.
Pds::Csv & operator=(const Pds::Csv &B)
Copia en si mismo (A), un Shape B. Este operador es similar al método Copy().
void MakeEmpty(void)
Cera los datos internos.
bool Save(const std::string &filename) const
Salva los datos en un archivo.
Pds::Matrix GetRowsDouble(const std::vector< unsigned int > &Id, Pds::Ra::ImportRange Type=Pds::Ra::AllData) const
Retorna un conjunto de lineas.
std::string Get(unsigned int lin, unsigned int col) const
Retorna el dato en la linea lin columna col.
Pds::Vector GetColumnDouble(unsigned int Id, Pds::Ra::ImportRange Type=Pds::Ra::AllData) const
Retorna datos de una columna.
Pds::Grid< std::string > GetColumnsString(const std::vector< unsigned int > &Id, Pds::Ra::ImportRange Type=Pds::Ra::AllData) const
Retorna un conjunto de columnas.
ImportRange
Cuales datos seran leidos.
Definition: RaDefines.hpp:325
const Datum & At(unsigned int Nlin, unsigned int Ncol) const
Acessar en modo lectura a un dato de un objeto de tipo Pds::Grid.
Definition: Grid.hpp:160
Datum & In(unsigned int Nlin, unsigned int Ncol)
Acessar en modo lectura y escritura a un dato de un objeto de tipo Pds::Grid.
Definition: Grid.hpp:144
Nombre de espacio para Pds (Procesamiento Digital de Senales)
Definition: AbstractRV.hpp:42

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed