FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour substr() SOLUCIONADO
Posts: 555
Joined: Wed Jul 31, 2013 01:14 PM
substr() SOLUCIONADO
Posted: Fri Feb 07, 2025 10:54 PM
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)
Dario Fernandez

FWH 2501, Harbour, MVS2022 Community, MySql & MariaDB, Dbf/Cdx VSCode.

Maldonado - Uruguay
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Re: substr()
Posted: Fri Feb 07, 2025 11:18 PM
y si duplicas la variable y sacas la información que resta, puedes intentar de la siguiente manera, y mirar si funciona.
cValida := cstrings 
deta[2]:= substr(cValida, 74, 160)
msginfo(deta[2])
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 555
Joined: Wed Jul 31, 2013 01:14 PM
Re: substr()
Posted: Sat Feb 08, 2025 12:40 AM

Gracias Leandro por la respuesta.

El inconveniente que tengo es que siempre los valores cambian, por eso no puedo hacerlo así.

Seguimos viendo.

Gracias y saludos

Ruben Dario Fernandez

Dario Fernandez

FWH 2501, Harbour, MVS2022 Community, MySql & MariaDB, Dbf/Cdx VSCode.

Maldonado - Uruguay
Posts: 467
Joined: Fri Dec 09, 2005 12:41 AM
Re: substr()
Posted: Sat Feb 08, 2025 03:21 AM

Estimado,

Quizas, asi?

n1:= HB_AT(" ",cstrings , 65, 75 )

deta[2]:= substr(cstrings , n1+1, 200-n1)

saludos

Posts: 137
Joined: Mon Oct 22, 2012 04:43 PM
Re: substr()
Posted: Sat Feb 08, 2025 05:49 AM

Estimado,

Quizas, asi?

n1:= HB_AT(" ",cstrings , 65, 75 )

deta[2]:= substr(cstrings , n1+1, 160-n1)

saludos

Regards



Ing. Anton Lerchster
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Re: substr()
Posted: Sat Feb 08, 2025 08:48 AM
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?

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: substr()
Posted: Sat Feb 08, 2025 09:28 AM

cuantos CUANTOS

No CUANTOS caracteres

debería mostrarlo...

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Re: substr()
Posted: Sat Feb 08, 2025 10:49 AM
Antonio Linares wrote: cuantos

debería mostrarlo...
En la siguiente línea debería aparecer "No C_U_A_N_T_O_S caracteres" (sin los guiones).
No CUANTOS caracteres

En la siguiente línea sí que lo escribe bien.
No CUANTOS loquesea

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: substr()
Posted: Sat Feb 08, 2025 11:40 AM
Carlos,

Tienes toda la razón :)

Ni idea de por qué hace eso. He revisado la lista de palabras con censura y no aparece...

Gracias!
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 555
Joined: Wed Jul 31, 2013 01:14 PM
Re: substr() SOLUCIONADO
Posted: Sat Feb 08, 2025 08:58 PM

Hola a todos y gracias por la ayuda.

Muchas gracias alerchster lo use así como dices.

Muy amables todos y muchas gracias.

Saludos

Ruben Dario Fernandez

Dario Fernandez

FWH 2501, Harbour, MVS2022 Community, MySql & MariaDB, Dbf/Cdx VSCode.

Maldonado - Uruguay

Continue the discussion