Extraer datos de una Cadena

117 views
Skip to first unread message

integral

unread,
Oct 30, 2025, 11:32:16 AM (5 days ago) Oct 30
to Comunidad de Visual Foxpro en Español
Que tal amigos del Foro.

Muy Buenos Días

Deseo extraer el 1er. nombre y el 1er. Apellido de los Clientes.

En el formulario de ingreso los nombres y apellidos están creados en 2 controles Textbox. 

He creado el siguiente método para obtener lo mencionado.

Al ejecutarlo me da como resultado 2do. Nombre con el 2do. Apellido.

Aquí el código utilizado...

LOCAL cNombreCompleto, cApellidoCompleto, cNombre, cApellido                          

cNombreCompleto   = Thisform.txtNom.Value
cApellidoCompleto = Thisform.txtApell.Value

* Encontrar la posición del primer espacio
nPosicionEspacio = AT(" ", cNombreCompleto)

* Extraer el nombre
cNombre = SUBSTR(cNombreCompleto, 1, nPosicionEspacio - 1)

* Extraer el apellido
cApellido = SUBSTR(cApellidoCompleto, nPosicionEspacio + 1)

* Mostrar el resultado
WAIT WINDOW "Nombre : " + cNombre + CHR(13) + "Apellido : " + cApellido TIMEOUT 1.5

RETURN cNombre + cApellido

Ej.-
 Cliente = "Julio Cesar Ramon Ribeyro"

Resultado : Cesar Ribeyro

Agradezco sus comentarios y sugerencias...

Saludos,

Integral

Message has been deleted

Zarlu

unread,
Oct 30, 2025, 12:13:51 PM (5 days ago) Oct 30
to Comunidad de Visual Foxpro en Español
Buenos días Integral!

Quiza:
lcDato1="Julio  César"
lcDato2="Ramon Ribeyro"
? GETWORDNUM(lcDato1,1," ")+SPACE(1)+GETWORDNUM(lcDato2,1," ")
lcDato1="Julio César  Ramon Ribeyro"
? GETWORDNUM(lcDato1,1," ")+SPACE(1)+GETWORDNUM(lcDato1,3," ")

Con tu código:
cNombreCompleto="Julio  César"
cApellidoCompleto="Ramon Ribeyro"

nPosicionEspacio = AT(" ", cNombreCompleto)
cNombre = SUBSTR(cNombreCompleto,1,nPosicionEspacio-1)
nPosicionEspacio = AT(" ", cApellidoCompleto)
cApellido = SUBSTR(cApellidoCompleto,1,nPosicionEspacio - 1)
? "Nombre : " + cNombre
? "Apellido : " + cApellido

Suerte
zarlu
Chetumal, Quintana Roo, México

Wagner Cevallos

unread,
Oct 30, 2025, 12:49:08 PM (5 days ago) Oct 30
to publice...@googlegroups.com
Asi funciona:

cNombre= SUBSTR(cNombreCompleto, 1, AT(' ', cNombreCompleto) - 1) +SPACE(1)+ SUBSTR(cNombreCompleto, nPosicionEspacio + 1)


cApellido = SUBSTR(cApellidoCompleto, 1, AT(' ', cApellidoCompleto) - 1) +SPACE(1)+ SUBSTR(cApellidoCompleto, nPosicionEspacio + 1)

--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/publicesvfoxpro/14efcba8-8eda-4166-86aa-b399391a1adcn%40googlegroups.com.


--
Ing. Wagner Javier Cevallos  Macías
0985303564-0996496512
Portoviejo-Manabí-Ecuador

Gerardo Cagnola

unread,
Oct 30, 2025, 1:56:31 PM (5 days ago) Oct 30
to publice...@googlegroups.com
le estamos haciendo la tarea!!!
a mi gusto le están "regalando" tiempo, no son complejas las tareas que tiene que hacer... DEBERIA aprenderlas solo...
hay que enseñar a pescar y no regalar el pescado

mi centavo... 

--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

Patricio Muñoz

unread,
Oct 30, 2025, 2:13:48 PM (5 days ago) Oct 30
to publice...@googlegroups.com
Hola Gerardo 

Yo desde hace muchos años que me di cuenta que la mayoría de los integrantes de este foro no se dan el tiempo de buscar y pensar, sino que todo lo preguntan, es más, año tras año veo que realizan las mismas preguntas, y lo más entretenido, que aún hay algunos que las siguen respondiendo, sin importar si esa pregunta ya ha sido contestada 100 veces. Es por ello que yo casi no participo.

Saludos 
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxpro+unsubscribe@googlegroups.com.

--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxpro+unsubscribe@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/publicesvfoxpro/CA%2B7ERduizGFxH45petDOJmLfwEZP9V%2BjgD7HU5pGDjr7X9iong%40mail.gmail.com.


--
Saludos

Patricio Muñoz
Pro&Tech
Ing. en Informática

Octavio Rodriguez

unread,
Oct 30, 2025, 2:26:16 PM (5 days ago) Oct 30
to publice...@googlegroups.com
ups!

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.


--
Saludos

Patricio Muñoz
Pro&Tech
Ing. en Informática

--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/publicesvfoxpro/CA%2Bwbvbz1M65G%3Dh5iPk302v8kT%2BBPXnBGFfoMSu4BTu8b0XYbwA%40mail.gmail.com.

integral

unread,
Oct 30, 2025, 3:04:54 PM (5 days ago) Oct 30
to Comunidad de Visual Foxpro en Español

Gracias a los Colegas Zarlu y al Ing. Javier Cevallos por su valiosa ayuda y pronta respuesta...

No se repitió la historia en responder a una pregunta que recuerdo fue hecha en el año 2011, recién en el año 2024 la respondieron.  

Siempre habrá gente sabia dispuesta a colaborar...

Y también gente que solo se dedica a criticar.  

Como dicen aquí en mi país son los pincha llantas...

El perro del Hortelano...
No come ni deja comer...

Mis saludos.

Atte.

Integral

Mik

unread,
Oct 30, 2025, 3:10:58 PM (5 days ago) Oct 30
to Comunidad de Visual Foxpro en Español
Solo usa :

Getwordnum(cNombreCompleto, 1) + Space(1) +   Getwordnum(cApellidoCompleto, 1)

Saludos

integral

unread,
Oct 30, 2025, 3:43:12 PM (5 days ago) Oct 30
to Comunidad de Visual Foxpro en Español
Que tal colega Mik

Buenas Tardes

Leyendo y investigando un poco a partir de VFP 7 se pueden usar la funciones GetWordCount y GetWordNum. 

Estoy realizando otra rutina con dicho comando y veremos que resulta..

Saludos,

Integral

Patricio Muñoz

unread,
Oct 30, 2025, 6:57:59 PM (5 days ago) Oct 30
to publice...@googlegroups.com
Integral 


Claro que este tema está más que respondido.... Hace años se trató este tema resolviendo además el dilema de los nombres compuestos como "del transito" y apellidos compuestos como "San Martín". En fin.... No es para hacer polémica, pero si para reflexionar...


Saludos 
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxpro+unsubscribe@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/publicesvfoxpro/5a805420-ad67-4e03-862f-809125b188f5n%40googlegroups.com.

integral

unread,
Oct 31, 2025, 1:39:09 AM (5 days ago) Oct 31
to Comunidad de Visual Foxpro en Español
Buenas Noches Amigos

Aquí otra forma de obtener el resultado deseado  aplicando los 2 comandos

Local i, sNombre

Clear
sNombre = "ANTHONY NAREA REYES AGUIRRE"

* Este FOR lo que hace es obtener cada palabra que este separado por espacios en blanco(" ").

For i = 1 to GetWordCount(sNombre," ")
    =Messagebox(GetWordnum(sNombre,i," "),16+0,800)
NEXT

* Obtener un Array con las palabras separadas con ALINES():

FOR ln = 1 TO ALINES(laArray,sNombre,' ')
 *   ? laArray(ln)
ENDFOR

lcNombre    = laArray[1]
lcApellido    = laArray[3]

? lcNombre + ", " + lcApellido

Hasta la proxima

Atte.,

Integral

Reply all
Reply to author
Forward
0 new messages