Hola Foro
Tengo una cadena bastante larga con delimitadores numéricos, hay alguna función con la que pueda convertir la cadena en un registro por cada delimitador?
Gracias
Cordialmente
Jairo Barbosa
Texto a Registros
- Manuel Valdenebro
- Posts: 706
- Joined: Thu Oct 06, 2005 9:57 pm
- Location: Málaga-España
*----------------------------------------------------------------Manuel Valdenebro wrote:Se me ocurren dos posibles soluciones:
1) Grabar la cadena en un fichero txt con memowrit() y añadir los registro con APPEND FROM indicando el delimitador.
2) Con un bucle usando strtoken() para determinar los parámetros de inicio y fin de cada regstro y SUBSTR().
Manuel Gracias pr tu respuesta
lo intento y te comento
Jairo
**---------------------------------------------------------------jaba wrote:*----------------------------------------------------------------Manuel Valdenebro wrote:Se me ocurren dos posibles soluciones:
1) Grabar la cadena en un fichero txt con memowrit() y añadir los registro con APPEND FROM indicando el delimitador.
2) Con un bucle usando strtoken() para determinar los parámetros de inicio y fin de cada regstro y SUBSTR().
Manuel Gracias pr tu respuesta
lo intento y te comento
Jairo
Manuel
Un saludo cordial
Manuel he estado haciendo las pruebas sin exito, tiene algun ejemplo que me pueda ilistrar como lo puedo lograr?
Te lo agradeceria mucho
Jairo Barbosa
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Jairo,
Esta funcion es muy rapida:
Solo tienes que cambiar CRLF por el delimitador que uses
Esta funcion es muy rapida:
Code: Select all
// nFrom hay que pasarlo por referencia "@" y empieza valiendo 1
function ExtractLine( cText, nFrom )
local cLine, nAt
nAt := At( CRLF, SubStr( cText, nFrom ) )
if nAt > 0
cLine := Substr( cText, nFrom, nAt - 1 )
nFrom += nAt + 1
else
cLine := Substr( cText, nFrom )
nFrom := Len( cText ) + 1
endif
return cLine
//------------------------------------------------------------------------Antonio Linares wrote:Jairo,
Esta funcion es muy rapida:Solo tienes que cambiar CRLF por el delimitador que usesCode: Select all
// nFrom hay que pasarlo por referencia "@" y empieza valiendo 1 function ExtractLine( cText, nFrom ) local cLine, nAt nAt := At( CRLF, SubStr( cText, nFrom ) ) if nAt > 0 cLine := Substr( cText, nFrom, nAt - 1 ) nFrom += nAt + 1 else cLine := Substr( cText, nFrom ) nFrom := Len( cText ) + 1 endif return cLine
Antonio Gracias, lo intentare
Jairo