Home | Develop | Download | Contact
Namespaces
Funciones Pds::Ra – File

Funciones para trabajar con archivos: Pds::Ra::ElementsInFile(), etc. Más...

Namespaces

namespace  Pds
 Nombre de espacio para Pds (Procesamiento Digital de Senales)
 
namespace  Pds::Ra
 Nombre de espacio para RA (Real Arrays)
 

Trabajar con busqueda archivos

Salva datos de matrices

std::vector< std::string > Pds::Ra::GetArquives (const std::string &dirpath, Pds::Ra::ArqType Type, const std::string &pattern_include, const std::string &pattern_exclude)
 Retorna los archivos dentro de un directorio (en un nivel solamente y siguiendo algunos criterios). Más...
 
std::vector< std::string > Pds::Ra::GetFiles (const std::string &dirpath, const std::string &pattern_include="*", const std::string &pattern_exclude="")
 Retorna los ficheros dentro de un directorio (en un nivel solamente y siguiendo algunos criterios). Más...
 
std::vector< std::string > Pds::Ra::GetSubDirs (const std::string &dirpath, const std::string &pattern_include="*", const std::string &pattern_exclude="")
 Retorna todos los subdirectorios dentro de un directorio (recursivamente y siguiendo algunos criterios). Más...
 
std::vector< std::string > Pds::Ra::GenPath (const std::string &dirpath)
 Retorna el directorio actual y todos los subdirectorios (recursivamente y siguiendo algunos criterios). Más...
 
std::vector< std::string > Pds::Ra::GenSignificativeLines (const std::string &filepath)
 Retorna un vector de cadenas con las lineas significativas (no vacias) del archivo. Una linea no significativa solo contiene white-spaces. Más...
 

Trabajar con unión y división de filepaths

Salva datos de matrices

std::string Pds::Ra::FullFile (std::vector< std::string > str_text_list)
 Retorna una nueva cadena con un filepath creado por la union de las cadenas de entrada, usando para concatenar Pds::Ra::FileSep. Más...
 
std::string Pds::Ra::ReplaceExtension (std::string filepath, std::string new_ext)
 Retorna un std::string con un filepath con otra extension de un filepath. Más...
 
std::string Pds::Ra::Dirname (std::string filepath)
 Retorna un std::string con el directorio de un filepath. Más...
 
std::string Pds::Ra::Basename (std::string filepath)
 Retorna un std::string con el basename de un filepath. Más...
 
std::string Pds::Ra::Extension (std::string filepath)
 Retorna un std::string con el extension de un filepath. Más...
 
std::string Pds::Ra::Filename (std::string filepath)
 Retorna un std::string con el filename de un filepath. Más...
 

Trabajar con verificacion de archivos

Salva datos de matrices

bool Pds::Ra::IsFile (std::string path)
 Retorna true si es un fichero existenteste (simbólico o real) no directorio, o false si no. Más...
 
bool Pds::Ra::IsDir (std::string path)
 Retorna true si es un directorio existenteste (simbólico o real) no fichero, o false si no. Más...
 

Trabajar con cuenta de datos en archivos

Salva datos de matrices

long Pds::Ra::SignificativeLinesInFile (const std::string &filepath)
 Retorna el número de lineas significativas de un archivo. Se asume que es un archivo de texto. Más...
 
bool Pds::Ra::ElementsInFile (const std::string &filepath, unsigned int &Nel)
 Retorna el número de elementos de un archivo. Se asume que es un archivo de texto. Más...
 
bool Pds::Ra::ArraySizeInFile (const std::string &filepath, unsigned int &Nlin, unsigned int &Ncol)
 Retorna el número de lineas significativas y columnas de un archivo. Se asume que es un archivo de texto. Más...
 
bool Pds::Ra::ArraySizeInFile (const std::string &filepath, const std::string &sep, unsigned int &Nlin, unsigned int &Ncol)
 Retorna el número de lineas significativas y columnas de un archivo. Se asume que es un archivo de texto. Más...
 

Trabajar con archivos otros

Salva datos de matrices

char * Pds::Ra::Fgets (FILE *fd)
 Retorna una linea leida desde un desriptor de fichero de texto. No descarta el salto de linea '\n' y no descarta 1 retorno de carro '\r' si este existe depues del salto de linea. Más...
 

Enumeraciones en RaFile

para trabajar con lectura de archivos

enum  Pds::Ra::ArqType { Pds::Ra::TYPE_FILE , Pds::Ra::TYPE_DIR }
 Una union de tipo ArqType. Esta union tiene dos tipos de datos tipo directorio y tipo documento.
Más...
 

Descripción detallada

Funciones para trabajar con archivos: Pds::Ra::ElementsInFile(), etc.

#include <Pds/RaFile>

Documentación de las enumeraciones

◆ ArqType

Una union de tipo ArqType. Esta union tiene dos tipos de datos tipo directorio y tipo documento.

Valores de enumeraciones
TYPE_FILE 

Pds::Ra::TYPE_FILE Buscando ficheros excluyendo los simbólicos.

TYPE_DIR 

Pds::Ra::TYPE_DIR Buscando directorios excluyendo los simbólicos.

Definición en la línea 68 del archivo RaFile.hpp.

68 {
69 TYPE_FILE,
70 TYPE_DIR,
71 }ArqType;
ArqType
Una union de tipo ArqType. Esta union tiene dos tipos de datos tipo directorio y tipo documento.
Definition: RaFile.hpp:68
@ TYPE_FILE
Definition: RaFile.hpp:69
@ TYPE_DIR
Definition: RaFile.hpp:70

Documentación de las funciones

◆ GetArquives()

std::vector< std::string > Pds::Ra::GetArquives ( const std::string &  dirpath,
Pds::Ra::ArqType  Type,
const std::string &  pattern_include,
const std::string &  pattern_exclude 
)

Retorna los archivos dentro de un directorio (en un nivel solamente y siguiendo algunos criterios).

Retorna una estructura std::vector<std::string> con un vector de nombres de arquivo.


std::vector<std::string> fullnames;
fullnames=Pds::Ra::GetArquives("/home/fernando/data",Pds::Ra::TYPE_FILE,"*.txt","");
Pds::Ra::PrintVectorString(fullnames);
     

La salida sería:

/home/fernando/data/file1.txt
/home/fernando/data/file10.txt
/home/fernando/data/file2.txt
/home/fernando/data/file21.txt
/home/fernando/data/file3.txt
     
Atención
No ordena los archivos. Se recomienda usar
// Alphabetical sort
    std::sort(fullnames.begin(), fullnames.end());
// Natural sort
    std::sort(fullnames.begin(), fullnames.end(),Pds::Ra::NaturalCompare);
Parámetros
[in]dirpathCamino del directorio en consulta.
[in]TypeEl tipo de arquivo a leer, pueden ser usados los valores :
[in]pattern_includePatrón de archivos a incluir solamente. Ej. "*" para todos los archivos.
[in]pattern_excludePatrón de archivos a excluir. Ej. "" para ninguno de los archivos.
Devuelve
Retorna un std::vector<std::string> con un vector de string con nombres de arquivo.
Ejemplos
example_ra_file_find.cpp.

◆ GetFiles()

std::vector< std::string > Pds::Ra::GetFiles ( const std::string &  dirpath,
const std::string &  pattern_include = "*",
const std::string &  pattern_exclude = "" 
)

Retorna los ficheros dentro de un directorio (en un nivel solamente y siguiendo algunos criterios).

Retorna una estructura std::vector<std::string> con un vector de nombres de arquivo.


std::vector<std::string> fullnames;
fullnames=Pds::Ra::GetFiles("/home/fernando/data","*.txt","");
Pds::Ra::PrintVectorString(fullnames);
     

La salida sería:

/home/fernando/data/file1.txt
/home/fernando/data/file10.txt
/home/fernando/data/file2.txt
/home/fernando/data/file21.txt
/home/fernando/data/file3.txt
     
Atención
No ordena los archivos. Se recomienda usar
     // Alphabetical sort
     std::sort(fullnames.begin(), fullnames.end());
     // Natural sort
     std::sort(fullnames.begin(), fullnames.end(),Pds::Ra::NaturalCompare);
Parámetros
[in]dirpathCamino del directorio en consulta.
[in]pattern_includePatrón de archivos a incluir solamente. Ej. "*" para todos los archivos.
[in]pattern_excludePatrón de archivos a excluir. Ej. "" para ninguno de los archivos.
Devuelve
Retorna un std::vector<std::string> con un vector de string con nombres de arquivo.
Ejemplos
example_ra_file_find.cpp.

◆ GetSubDirs()

std::vector< std::string > Pds::Ra::GetSubDirs ( const std::string &  dirpath,
const std::string &  pattern_include = "*",
const std::string &  pattern_exclude = "" 
)

Retorna todos los subdirectorios dentro de un directorio (recursivamente y siguiendo algunos criterios).

Retorna una estructura std::vector<std::string> con un vector de nombres de arquivo.


std::vector<std::string> fullnames;
fullnames=Pds::Ra::GetSubDirs("/home/fernando/data","info*","");
Pds::Ra::PrintVectorString(fullnames);
     

La salida sería:

/home/fernando/data/info1
/home/fernando/data/info10
/home/fernando/data/info2
/home/fernando/data/info21
/home/fernando/data/info3
     
Atención
No ordena los archivos. Se recomienda usar
     // Alphabetical sort
     std::sort(fullnames.begin(), fullnames.end());
     // Natural sort
     std::sort(fullnames.begin(), fullnames.end(),Pds::Ra::NaturalCompare);
Parámetros
[in]dirpathCamino del directorio en consulta.
[in]pattern_includePatrón de archivos a incluir solamente. Ej. "*" para todos los archivos.
[in]pattern_excludePatrón de archivos a excluir. Ej. "" para ninguno de los archivos.
Devuelve
Retorna un std::vector<std::string> con un vector de string con nombres de arquivo.
Ejemplos
example_ra_file_find.cpp.

◆ GenPath()

std::vector< std::string > Pds::Ra::GenPath ( const std::string &  dirpath)

Retorna el directorio actual y todos los subdirectorios (recursivamente y siguiendo algunos criterios).

Retorna una estructura std::vector<std::string> con un vector de nombres de arquivo. Los directorios son ordenados naturalmente con Pds::Ra::NaturalCompare().


std::vector<std::string> fullnames;
fullnames=Pds::Ra::GenPath("/home/fernando/data");
Pds::Ra::PrintVectorString(fullnames);
     

La salida sería:

/home/fernando/data
/home/fernando/data/backup
/home/fernando/data/info1
/home/fernando/data/info2
/home/fernando/data/info3
/home/fernando/data/info10
/home/fernando/data/info21
/home/fernando/data/lab/others
     
Parámetros
[in]dirpathCamino del directorio en consulta.
Devuelve
Retorna un std::vector<std::string> con un vector de string con nombres de directorios.
Ejemplos
example_ra_file_find.cpp.

◆ GenSignificativeLines()

std::vector< std::string > Pds::Ra::GenSignificativeLines ( const std::string &  filepath)

Retorna un vector de cadenas con las lineas significativas (no vacias) del archivo. Una linea no significativa solo contiene white-spaces.


std::vector<std::string> line;
line=Pds::Ra::GenSignificativeLines("/home/fernando/filename.txt");
Pds::Ra::PrintVectorString(line);
     

La salida sería:

No existen lineas vacias.
Cada string tiene longitud diferente de cero.
     
Parámetros
[in]filepathArchivo en consulta.
Devuelve
Retorna un std::vector<std::string> con las lineas significativas (no vacias) delarchivo.
Ejemplos
example_ra_file.cpp.

◆ FullFile()

std::string Pds::Ra::FullFile ( std::vector< std::string >  str_text_list)

Retorna una nueva cadena con un filepath creado por la union de las cadenas de entrada, usando para concatenar Pds::Ra::FileSep.


std::string str_out=FullFile({"/usr","share","program_name","icons"});
std::cout<<str_out<<std::endl; 

La salida sería:

/usr/share/program_name/icons 
 
Parámetros
[in]str_text_listLista de argumentos a concatenar.
Devuelve
Retorna una nueva cadena con un filepath creado por la union de las cadenas de entrada, usando para concatenar Pds::Ra::FileSep.
Ejemplos
example_ra_file.cpp.

◆ ReplaceExtension()

std::string Pds::Ra::ReplaceExtension ( std::string  filepath,
std::string  new_ext 
)

Retorna un std::string con un filepath con otra extension de un filepath.


 std::string filepath="/usr/share/program_name/icons/image.png";
 std::cout<<Pds::Ra::ReplaceExtension(filepath,".bmp")<<std::endl;

Retorna:

/usr/share/program_name/icons/image.bmp
Devuelve
Retorna un std::string con un filepath con otra extension de un filepath.
Ejemplos
example_ra_file.cpp.

◆ Dirname()

std::string Pds::Ra::Dirname ( std::string  filepath)

Retorna un std::string con el directorio de un filepath.


 std::string filepath="/usr/share/program_name/icons/image.png";
 std::cout<<Pds::Ra::Dirname(filepath)<<std::endl;

Retorna:

 /usr/share/program_name/icons
Devuelve
Retorna un std::string con el directorio de un filepath.
Ejemplos
example_ra_file.cpp.

◆ Basename()

std::string Pds::Ra::Basename ( std::string  filepath)

Retorna un std::string con el basename de un filepath.


 std::string filepath="/usr/share/program_name/icons/image.png";
 std::cout<<Pds::Ra::Basename(filepath)<<std::endl;

Retorna:

 image.png
Devuelve
Retorna un std::string con el basename de un filepath.
Ejemplos
example_ra_file.cpp.

◆ Extension()

std::string Pds::Ra::Extension ( std::string  filepath)

Retorna un std::string con el extension de un filepath.


 std::string filepath="/usr/share/program_name/icons/image.png";
 std::cout<<Pds::Ra::Extension(filepath)<<std::endl;

Retorna:

.png
Devuelve
Retorna un std::string con el extension de un filepath.
Ejemplos
example_ra_file.cpp.

◆ Filename()

std::string Pds::Ra::Filename ( std::string  filepath)

Retorna un std::string con el filename de un filepath.


 std::string filepath="/usr/share/program_name/icons/image.png";
 std::cout<<Pds::Ra::Filename(filepath)<<std::endl;

Retorna:

image
Devuelve
Retorna un std::string con el filename de un filepath.
Ejemplos
example_ra_file.cpp.

◆ IsFile()

bool Pds::Ra::IsFile ( std::string  path)

Retorna true si es un fichero existenteste (simbólico o real) no directorio, o false si no.


if(Pds::Ra::IsFile("/usr/share/program_name/icons/image.png"))
    std::cout<<"Yes\n";
Parámetros
[in]pathDirección de fichero a testar.
Devuelve
Retorna true si es un fichero existenteste (simbólico o real) no directorio, o false si no.
Ejemplos
example_ra_file.cpp.

◆ IsDir()

bool Pds::Ra::IsDir ( std::string  path)

Retorna true si es un directorio existenteste (simbólico o real) no fichero, o false si no.


if(Pds::Ra::IsDir("/usr/share/program_name/icons"))
    std::cout<<"Yes\n";
Parámetros
[in]pathDirección de directorio a testar.
Devuelve
Retorna true si es un directorio existenteste (simbólico o real) no fichero, o false si no.
Ejemplos
example_ra_file.cpp.

◆ SignificativeLinesInFile()

long Pds::Ra::SignificativeLinesInFile ( const std::string &  filepath)

Retorna el número de lineas significativas de un archivo. Se asume que es un archivo de texto.

Una linea no significativa solo contiene white-spaces:

' ' (0x20) space (SPC)
'\t' (0x09) horizontal tab (TAB)
'\n' (0x0a) newline (LF)
'\v' (0x0b) vertical tab (VT)
'\f' (0x0c) feed (FF)
'\r' (0x0d) carriage return (CR)

long n=Pds::Ra::SignificativeLinesInFile("/home/fernando/data.txt");
std::cout<<n<<"\n";
Parámetros
[in]filepathDirección de archivo a testar.
Devuelve
Retorna el número de lineas significativas de un archivo o negativo en caso de error
Ejemplos
example_ra_string.cpp.

◆ ElementsInFile()

bool Pds::Ra::ElementsInFile ( const std::string &  filepath,
unsigned int &  Nel 
)

Retorna el número de elementos de un archivo. Se asume que es un archivo de texto.

Una un elemento e cualquier grupo de caracteres con elementos que no contienen white-spaces:

' ' (0x20) space (SPC)
'\t' (0x09) horizontal tab (TAB)
'\n' (0x0a) newline (LF)
'\v' (0x0b) vertical tab (VT)
'\f' (0x0c) feed (FF)
'\r' (0x0d) carriage return (CR)

unsigned int nel;
Pds::Ra::ElementsInFile("/home/fernando/data.txt",nel);
std::cout<<nel<<"\n";
Parámetros
[in]filepathDirección de archivo a testar.
[out]NelVariable donde se guardara el numero de elementos.
Devuelve
Retorna true si todo fue bien o false si no. Si fue retornado false entonces Nel no es modificado.
Ejemplos
example_ra_string.cpp.

◆ ArraySizeInFile() [1/2]

bool Pds::Ra::ArraySizeInFile ( const std::string &  filepath,
unsigned int &  Nlin,
unsigned int &  Ncol 
)

Retorna el número de lineas significativas y columnas de un archivo. Se asume que es un archivo de texto.

Una linea no significativa solo contiene white-spaces:

' ' (0x20) space (SPC)
'\t' (0x09) horizontal tab (TAB)
'\n' (0x0a) newline (LF)
'\v' (0x0b) vertical tab (VT)
'\f' (0x0c) feed (FF)
'\r' (0x0d) carriage return (CR)

unsigned int nlin=0,ncol=0;
bool res=Pds::Ra::ArraySizeInFile("/home/fernando/data.txt",nlin,ncol);
std::cout<<" res:"<<res<<"\n";
std::cout<<"nlin:"<<nlin<<"\n";
std::cout<<"ncol:"<<ncol<<"\n";
Parámetros
[in]filepathDirección de archivo a testar.
[out]NlinVariable donde se guardara el numero de lineas.
[out]NcolVariable donde se guardara el numero de columnas.
Devuelve
Retorna true si todo fue bien o false si no. Si el numero de columnas no es constante entonces se retorna false. Si fue retornado false entonces Nlin y Ncol no son modificados.
Ejemplos
example_ra_file_sizeinfile.cpp y example_ra_string.cpp.

◆ ArraySizeInFile() [2/2]

bool Pds::Ra::ArraySizeInFile ( const std::string &  filepath,
const std::string &  sep,
unsigned int &  Nlin,
unsigned int &  Ncol 
)

Retorna el número de lineas significativas y columnas de un archivo. Se asume que es un archivo de texto.

Una linea no significativa solo contiene white-spaces:

' ' (0x20) space (SPC)
'\t' (0x09) horizontal tab (TAB)
'\n' (0x0a) newline (LF)
'\v' (0x0b) vertical tab (VT)
'\f' (0x0c) feed (FF)
'\r' (0x0d) carriage return (CR)

unsigned int nlin=0,ncol=0;
bool res=Pds::Ra::ArraySizeInFile("/home/fernando/data.csv",",",nlin,ncol);
std::cout<<" res:"<<res<<"\n";
std::cout<<"nlin:"<<nlin<<"\n";
std::cout<<"ncol:"<<ncol<<"\n";
Parámetros
[in]filepathDirección de archivo a testar.
[in]sepSeparador de elemento.
[out]NlinVariable donde se guardara el numero de lineas.
[out]NcolVariable donde se guardara el numero de columnas.
Devuelve
Retorna true si todo fue bien o false si no. Si el numero de columnas no es constante entonces se retorna false. Si fue retornado false entonces Nlin y Ncol no son modificados.

◆ Fgets()

char * Pds::Ra::Fgets ( FILE *  fd)

Retorna una linea leida desde un desriptor de fichero de texto. No descarta el salto de linea '\n' y no descarta 1 retorno de carro '\r' si este existe depues del salto de linea.

Parámetros
[in]fdDescriptor de fichero de texto a analizar.
Devuelve
Retorna una nueva cadena de texto con una copia de la linea leida incluyendo los caracteres de control finales exepto EOF.

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed