Page 1 of 1

Texto a Registros

Posted: Sat Nov 08, 2008 3:04 pm
by jaba
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

Posted: Sat Nov 08, 2008 6:30 pm
by Manuel Valdenebro
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().

Posted: Sat Nov 08, 2008 6:36 pm
by jaba
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

Posted: Wed Nov 19, 2008 2:50 pm
by jaba
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

Posted: Wed Nov 19, 2008 3:17 pm
by Antonio Linares
Jairo,

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 
Solo tienes que cambiar CRLF por el delimitador que uses

Posted: Wed Nov 19, 2008 11:41 pm
by jaba
Antonio Linares wrote:Jairo,

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 
Solo tienes que cambiar CRLF por el delimitador que uses
//------------------------------------------------------------------------

Antonio Gracias, lo intentare

Jairo