#914 closed enhancement (fixed)
Caracteres de escape en Tokenizer — at Version 2
Reported by: | Víctor de Buen Remiro | Owned by: | Víctor de Buen Remiro |
---|---|---|---|
Priority: | highest | Milestone: | Mantainance |
Component: | ASCII data files | Version: | 2.0.1 |
Severity: | blocker | Keywords: | |
Cc: |
Description (last modified by )
Ahora mismo Tokenizer no es capaz de parsear registros con campos en los que hay caracteres de escape.
Por ejemplo, este código
Set aux = Tokenizer("1,\"Par (\"Producto\",\"Dirección\")\",3",","); //Set aux = Tokenizer("1,\"Par (\"Producto\",\"Dirección\")\",3",",","\"","\\"); Set View(aux,"");
Produce un conjunto de 4 elementos
$tmp$="1" $tmp$=""Par ("Producto"" $tmp$=""Dirección")"" $tmp$="3"
cuando está claro que se pretendía definir uno de tres elementos.
$tmp$="1" $tmp$=""Par ("Producto","Dirección")"" $tmp$="3"
Change History (2)
comment:1 Changed 15 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:2 Changed 15 years ago by
Description: | modified (diff) |
---|
Se han añadido argumentos opcionales a Tokenizer para mantener la compatibilidad hacia atrás:
Set Tokenizer(Text string, Text separator [, Text quote="", Text scape=""])
Divide un texto en cada una de las partes separadas por el caracter de separacion dado.
Si se especifica el argumento <quote>
, entonces los campos que comiencen por ese caracter podrán incluir el caracter separador sin que les afecte el mismo.
Si además se especifica el argumento <quote>
, entonces el par <scape><quote>
será tratado como <quote>
De eta forma, la sentencia siguiente devuelve el resultado esperado
Set aux = Tokenizer("1,\"Par (\"Producto\",\"Dirección\")\",3",",","\"","\\"); Set View(aux,"");
(In [2208]) Fixes #914