D.Fernandez wrote:
Hola amigos:
Tengo una cadena de 200 caracteres. cStrings
Con n1:= HB_AT(" ",cstrings , 65, 75 ) busco donde hay un espacio entre 65 y 75 y lo muestra n1 (73)
? deta[1]:= substr(cstring , 1, n1) Aqui extraigo la cadena desde el 1 (primer caracter hasta n1 que es 73
Esto lo hace bien.
Pero si hago para probar
deta[2]:= substr(cstrings , 74, 160) Muestra el strings desde el 74 hasta el 200.
No muestra desde el 74 al 160
Cuando hago un MsgInfo(cStrings), lo hace a la perfección.
Gracias por cualquier sugerencia
Saludos
Ruben Fernandez
(No encuentro en el foro nada porque todavía no está actualizado totalmente)
Hola Ruben,
Sintaxis
SUBSTR(<cCadena>, <nInicio>, [<nCaracteres>]) --> cSubcadena
Argumentos
<cCadena> es la cadena de caracteres de la que va a extraerse una
subcadena. Puede tener hasta 65.535 (64K) bytes, el tama¤o m ximo de
cadena en CA-Clipper.
<nInicio> es la posici¢n inicial en <cCadena>. Si <nInicio> es
positivo, es relativo al car cter situado en el extremo izquierdo de
<cCadena>. Si es negativo, es relativo al car cter situado en el
extremo derecho de <cCadena>.
<nCaracteres> es el n£mero de caracteres que hay que extraer. Si se
omite, la subcadena empieza en <nInicio> y contin£a hasta el final de
la cadena. Si <nCaracteres> es mayor que el n£mero de caracteres desde
<nInicio> hasta el final de <cCadena>, los caracteres adicionales se
ignoran.
>><nCaracteres> es el n£mero de caracteres que hay que EXTRAER.
No C_U_A_N_T_O_S caracteres.
(He escrito con guiones por que si no los pongo no muestra la palabra, ¿Será una palabra malsonante en algún idioma?