Changeset ddeef9e in tol


Ignore:
Timestamp:
May 31, 2010, 4:50:51 PM (16 years ago)
Author:
Víctor de Buen <vdebuen@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
0e2ab15
Parents:
9d984a5
Message:

Fixes #914

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@2208 be4846ae-f051-483a-831f-b64e7d08527f

Location:
tol
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • tol/bbasic/txtalgeb.cpp

    r9d984a5 rddeef9e  
    12441244 * \param sep : Separator character. Usually ;
    12451245 * \param quote : String quotes indicator. Usually "
    1246  * \param quote : Scape character into quoted strings. Usually \
     1246 * \param scape : Scape character into quoted strings. Usually \
    12471247 * \return  Number of tokens.
    12481248 */
  • tol/btol/text_type/txtgra.cpp

    r9d984a5 rddeef9e  
    19251925
    19261926//--------------------------------------------------------------------
     1927void Tokenizer(BSet& set, const BText& txt, BChar sep,
     1928               BChar quote, BChar scape)
     1929//--------------------------------------------------------------------
     1930{
     1931  BArray<BText> tok;
     1932  ReadAllTokens(txt,tok,sep,quote,scape);
     1933  set.PrepareStore(tok.Size());
     1934//Std(BText("\nTokenizer TARCE 1"));
     1935  for(BInt i=0; i<tok.Size(); i++)
     1936  {
     1937    set.AddElement(new BContensText(tok[i]));
     1938  }
     1939//Std(BText("\nTokenizer TARCE 2"));
     1940}
     1941
     1942
     1943//--------------------------------------------------------------------
    19271944DeclareContensClass(BSet, BSetTemporary, BSetReadAllTokens);
    1928 DefExtOpr(1, BSetReadAllTokens, "Tokenizer", 2, 2,  "Text Text",
    1929           I2("(Text string, Text separator)",
    1930              "(Text cadena, Text separador)"),
    1931           I2(".",
     1945DefExtOpr(1, BSetReadAllTokens, "Tokenizer", 2, 4,  "Text Text Text Text",
     1946          "(Text string, Text separator [, Text quote=\"\", Text scape=\"\"])",
     1947          I2("Divides a text in fields separated by specified character."
     1948       "If <quote> argument is specified, then fields begining by this char "
     1949       "will stand joint even of there are occurences of the separator char. "
     1950       "If <scape> argument is specified, then fields begining by <quote> "
     1951       "character then the pair <scape><quote> will be treated as <quote>.",
    19321952             "Divide un texto en cada una de las partes separadas por el caracter "
    1933              "de separacion dado."),
     1953             "de separacion dado."
     1954       "Si se especifica el argumento <quote>, entonces los campos que "
     1955       "comiencen por ese caracter podrán incluir el caracter separador sin "
     1956       "que les afecte el mismo."
     1957       "Si además se especifica el argumento <quote>, entonces el par "
     1958       "<scape><quote> será tratado como <quote>"),
    19341959          BOperClassify::System_);
    19351960
    … …  
    19401965  BText& txt = Text(Arg(1));
    19411966  BText& sep = Text(Arg(2));
    1942   Tokenizer(contens_,txt,sep.Get(0));
     1967  if(!Arg(3))
     1968  {
     1969    Tokenizer(contens_,txt,sep.Get(0));
     1970  }
     1971  else
     1972  {
     1973    BText& quote = Text(Arg(3));
     1974    BText scape = "\\";
     1975    if(Arg(4)) { scape = Text(Arg(4)); }
     1976    Tokenizer(contens_,txt,sep.Get(0),quote.Get(0),scape.Get(0));
     1977  }
    19431978}
    19441979
Note: See TracChangeset for help on using the changeset viewer.