#914 closed enhancement (fixed)
Caracteres de escape en Tokenizer
| 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 16 years ago by
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
comment:2 Changed 16 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