30#ifndef __PDS_RASTRING_HPP__
31#define __PDS_RASTRING_HPP__
79 bool operator()(
const std::string &cstr1,
const std::string &cstr2)
const
83 unsigned int N1=cstr1.size();
84 unsigned int N2=cstr2.size();
91 while((id1<N1)&&(id2<N2))
94 if( (isdigit(cstr1[id1])!=0)&&(isdigit(cstr2[id2])!=0) )
99 while( isdigit(cstr1[id1])!=0 ) { s1=s1+cstr1[id1]; id1++; }
100 while( isdigit(cstr2[id2])!=0 ) { s2=s2+cstr2[id2]; id2++; }
102 if(atoi(s1.c_str())<atoi(s2.c_str()))
return true;
103 if(atoi(s1.c_str())>atoi(s2.c_str()))
return false;
107 if( cstr1[id1]<cstr2[id2] )
return true;
108 if( cstr1[id1]>cstr2[id2] )
return false;
116 if(N1<N2)
return true;
152 std::vector<std::string>
SubsInString(
const std::string &str,
char DelL,
char DelR);
177 const std::string &DelL,
178 const std::string &DelR,
200 const std::string &DelL,
201 const std::string &DelR,
225 const std::string &DelL,
226 const std::string &DelR,
253 std::vector<std::string> &Tag);
435 std::vector<std::string>
VectorSplitString(std::string str, std::string delimiter,
bool include_void);
619 std::string
Trim(
const std::string &str);
667 int CiCompare(
const std::string &str1,
const std::string &str2);
683 std::string
Repeat(
const std::string &str,
unsigned int N);
700 std::string
ReplaceAll(std::string str,
const std::string& from,
const std::string& to);
715 template <
typename T>
745 bool SaveString(
const std::string &filepath,
const std::string &str);
765 bool LoadString(
const std::string &filepath, std::string &str);
838 std::string delim_elem,
839 std::string delim_end);
860 std::string delim_elem,
861 std::string delim_end);
std::vector< std::string > VectorSplitString(std::string str, std::string delimeters)
Retorna un vector con los elementos en la cadena. Internamente usa la funcion isspace().
std::string ExportOctaveCellString(const std::vector< std::string > &X, const std::string &pname)
Exporta un std::vector<std::string> a una cadena en formato de código m.
std::string Trim(const std::string &str)
Esta función retorna una cadena que elimina al inicio y al final algunos caracteres si estos son cara...
std::vector< std::string > SplitMultipleTagAndSeparator(const std::string &str, char wrap, char sep, char dc)
Dado un caracter wrap y un caracter separador, retorna un vector con varios elementos (tags)....
std::vector< std::string > SubsInString(const std::string &str, char DelL, char DelR)
Retorna todas las cadenas de texto dentro de un par de delimitadores.
std::string Repeat(const std::string &str, unsigned int N)
Repite N veces una cadena de tipo std::string.
std::list< std::string > ListSplitString(std::string str, std::string delimeters)
Retorna una lista con los elementos en la cadena. Internamente usa la funcion isspace().
bool IsSpacesString(const std::string &str)
Esta función comprueba si los caracteres en la cadena son caracteres no visibles (white-spaces)....
std::vector< std::string > SplitMultipleObjectsAndSeparator(const std::string &str, char DelL, char DelR, char sep)
Dado un par de caracteres y un caracter separador, retorna un vector con varios objetos....
std::string FirstSubInString(const std::string &str, const std::string &DelL, const std::string &DelR, bool Full=false)
Retorna la primera cadena de texto dentro de un par de delimitadores.
std::vector< std::string > SubsXmlInString(const std::string &str, bool Full, std::vector< std::string > &Tag)
Busca etiquetas tag entre '<' y '>' de modo de que se busca la forma <tag> dato </tag>....
bool IsReal(const std::string &str)
Retorna true si es un real (double) o false si no.
std::string ReplaceAll(std::string str, const std::string &from, const std::string &to)
Remplaza todas las cadenas desde from a to.
std::vector< std::string > SplitSingleTagAndData(const std::string &str, char wrap, char Eq)
Dado un caracter wrap y un caracter separador, retorna un vector con dos elementos el tag y el dato....
int CiCompare(const std::string &str1, const std::string &str2)
Case-insensitive compare. Retorna 0 si las cadenas son iguales o un numero diferente de 0 si no.
bool NaturalCompare(const std::string &str1, const std::string &str2)
Esta función compara las cadenas str1 y str2 de forma natural (tomando en cuenta números).
bool ArraySizeInString(std::string str, 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 te...
std::vector< unsigned long int > FirstSubIdsInString(const std::string &str, const std::string &DelL, const std::string &DelR, bool Full=false)
Retorna la {posición, longitud} de la primera cadena de texto dentro de un par de delimitadores.
bool SaveString(const std::string &filepath, const std::string &str)
Save the string in a text file.
int ElementsInString(const std::string &str)
Retorna el número de elementos en la cadena. Internamente usa la funcion isspace().
std::string ToLower(const std::string &str)
Crea una nueva cadena con datos lower case.
bool PrintGridString(const Pds::Grid< std::string > &str, std::string delim_elem, std::string delim_end)
Print each string of a Pds::Grid<std::string> in a text file.
std::string ToString(T val)
Convierte en std::sring un int,long,unsigned int, unsigned long, float o double.
bool IsInteger(const std::string &str)
Retorna true si es un entero (positivo o negativo) o false si no.
bool PrintVectorString(const std::vector< std::string > &str)
Print each string of a vector string in a new line in a text file.
bool SaveVectorString(const std::string &filepath, const std::vector< std::string > &str)
Save each string of a vector string in a new line in a text file.
bool LoadString(const std::string &filepath, std::string &str)
Load the string in a text file.
Nombre de espacio para Pds (Procesamiento Digital de Senales)
Es una estructura para ordenar de forma "natural" datos std::string, es usada en los siguientes casos...
bool operator()(const std::string &cstr1, const std::string &cstr2) const