Mensaje dentro de Foro VB.NET

Responder 
#1 - 27/11/2006 17:15:26 Reporta abuso | Link Permanente
Ana Lilia
Usuario no registrado
Separar Nombre de Apellidos

Responder Citar
 Hola a todos, mi nombre es ana y tengo una grave problema, intento separar un nombre por apellidos por eemplo: Juan Pablo Perez Hernandez en
Juan Pablo
Perez
Hernandez
mi problema es k el unico caracter k tengo es el espacio y no se como hacerlo por los apellidos compuestos por ejemplo: de la rosa.
espero k alguien me pueada ayudar
gracias
bye
Volver arriba

Respuestas
Mostrar de en 15
#2 - 15/01/2010 18:34:39 Reporta abuso | Link Permanente
wpablow
Usuario no registrado
RE: Separar Nombre de Apellidos

Responder Citar
Si lo que necesitas es separar desde una base de datos sqlserver y ya tenes un conjunto de columnas con nombres en otra tabla de los que puedas comparar como es mi caso podes utilizar este codigo y adaptarlo a tu necesidad:


DECLARE

@NombreCompleto VARCHAR(300);

DECLARE

@NombreCompleto2 VARCHAR(300);

DECLARE

@NombreA VARCHAR(300);

DECLARE

@NombreB VARCHAR(300);

--DECLARE @NombreC VARCHAR(300);

--DECLARE @NombreD VARCHAR(300);

DECLARE

@Nombres VARCHAR(300);

DECLARE

@Apellidos VARCHAR(300);

DECLARE

@Temp VARCHAR(300);

--FARIA MARIA SALOME

--DUARTE MANUEL ASCENCIO

--PAREDES RODOLFO INOCENCIO

SET

@NombreCompleto = 'PAREDES RODOLFO INOCENCIO';

SET

@NombreCompleto2 = @NombreCompleto;

SET

@Nombres = '';

SET

@Apellidos = '';

select

ISNULL(LTRIM(LEFT(Nombre, ISNULL(NULLIF(CHARINDEX(' ', LTRIM(Nombre)) - 1, -1), LEN(Nombre)))), 'JULIO') as NNN, COUNT (*) as Cantidad2

into

#tempoP1

from

Pacientes

group

by ISNULL(LTRIM(LEFT(Nombre, ISNULL(NULLIF(CHARINDEX(' ', LTRIM(Nombre)) - 1, -1), LEN(Nombre)))), 'JULIO')

having

COUNT (*) > 13SET @NombreA = LTRIM(LEFT(@NombreCompleto, ISNULL(NULLIF(CHARINDEX(' ', LTRIM(@NombreCompleto)) - 1, -1), LEN(@NombreCompleto))))
SET @NombreCompleto = LTRIM(SUBSTRING(@NombreCompleto, CHARINDEX(' ', @NombreCompleto) + 1, LEN(@NombreCompleto)));

Nuevo:

SET @Temp = NULL
select @Temp = NNN from #tempoP1 where NNN = @NombreAIF @Temp IS NOT NULL
BEGIN
SET @Nombres = @Nombres + ' ' + @NombreA END
ELSE
BEGIN
SET @Apellidos = @Apellidos + ' ' + @NombreA END
SET @NombreB = @NombreASET @NombreA = LTRIM(LEFT(@NombreCompleto, ISNULL(NULLIF(CHARINDEX(' ', LTRIM(@NombreCompleto)) - 1, -1), LEN(@NombreCompleto))))
SET @NombreCompleto = LTRIM(SUBSTRING(@NombreCompleto, CHARINDEX(' ', @NombreCompleto) + 1, LEN(@NombreCompleto)));

IF

@NombreA <> @NombreB

GOTO

Nuevo

IF

@Apellidos = ''

BEGIN

SET @Apellidos = LTRIM(LEFT(@NombreCompleto2, ISNULL(NULLIF(CHARINDEX(' ', LTRIM(@NombreCompleto2)) - 1, -1), LEN(@NombreCompleto2))))
SET @Nombres = LTRIM(SUBSTRING(@NombreCompleto2, CHARINDEX(' ', @NombreCompleto2) + 1, LEN(@NombreCompleto2)))

END

select

top 1 @Nombres as Nombres, @Apellidos as Apellidos from Pacientes

drop

table #tempoP1
Volver arriba

#3 - 29/05/2008 19:49:42 Reporta abuso | Link Permanente
FREDDY
Fecha de registro: 19/10/2009
1 post en este tema
1 post en foro vb.net
1 post en todos los foros
RE: Separar Nombre de Apellidos

Responder Citar
TU CODIGO CORRE MUY BIEN PARA UN CAMPO SEPARADO POR UN @ EJEMPLO JUAN@PEREZ
PERO COMO HARIAS PARA SEPARAR EN 4 CAMPOS UN CAMPO CUYO TEXTO ES JUAN@MIGUEL@PEREZ@CASASOLA
Volver arriba

#4 - 23/11/2007 17:34:55 Reporta abuso | Link Permanente
Albert
Usuario no registrado
RE: Separar Nombre de Apellidos

Responder Citar

Yo tengo ese mismo problema, pero creo q podemos omitir los nombre q contienen .-.- de la rosa.-. ese tipo de nombres..... y trabajar unicamente con los que sólo tienen los dos apellidos mtz. ponce alberto por ejemplo.

Y si el código que dejo la primer persona q te contesto funciona, pues ya es menos trabajo!!

Suerte!
mtz_albert23@hotmail.com

Volver arriba

#5 - 23/09/2007 0:52:54 Reporta abuso | Link Permanente
guillermin1797@hotmail.com
Usuario no registrado
RE: Separar Nombre de Apellidos

Responder Citar

Este es un ejemplo sencillo de apenas unas pocas líneas (no por ello de poca utilidad), que muy a menudo nos puede servir, ya que es común encontrarse con una situaciones por ejemplo donde un SP nos devuelve el Apellido y el Nombre en un solo campo, y necesitamos tenerlos separados, para no tener que modificar el SP, con estas sencillas líneas queda todo resuelto!!!!

Public Class Form1

    Dim nombrecompleto As String
    Dim apellidos As String
    Dim nombres As String

    Dim coma As Integer
    Dim tamaño As Integer

    '------------------
    'hago click en el boton
    Private Sub Button1_Click(ByVal sender As System.Object _
, ByVal e As System.EventArgs) Handles Button1.Click

        nombrecompleto = TextBox1.Text
        coma = nombrecompleto.LastIndexOf(",")
        tamaño = nombrecompleto.Length

        TextBox2.Text = nombrecompleto.Substring(coma + 2, tamaño - (coma + 2))
        TextBox3.Text = nombrecompleto.Substring(0, coma)

    End Sub

End Class

Volver arriba

#6 - 12/03/2007 15:00:07 Reporta abuso | Link Permanente
subgurim
Fecha de registro: 01/12/2006
1 post en este tema
186 posts en foro vb.net
1777 posts en todos los foros
RE: Separar Nombre de Apellidos

Responder Citar
Aquí el problema principal es que no hay modo de decirle a un programa que una cosas son los nombres y otra los apellidos...

Porque alguien puede tener uno, dos o tres nombres, apellidos compuestos, incluso apellidos que sean igual que los nombres.

En cuanto a lo de quitar "Sra.", etc. eso es más sencillo, porque nadie se llama así
Volver arriba

#7 - 10/03/2007 17:23:22 Reporta abuso | Link Permanente
ceci renteria
Usuario no registrado
RE: Separar Nombre de Apellidos

Responder Citar
Hola yo tengo el mismo problema
en una base de datos SQL , tengo el nombre completo con todo y apellidos en un campo y lo que es peor a veces con el sufijo de Sra. O Sr.

Yo necesito hacer aqui varias cosas..
Primero , eliminar el Sr. Sra. en ese campo.
y segundo.. tambien necesito separar los apellidos en otros campos.
 
SE me estaba ocurriendo pasar el campo a excel y separar con la herramienta de importa rdatos separados por espacios . 
 
Pero lo del sr. o sra. solo se me ocurre meterme al enterprice y hacerlo manual.. jajaja... pero esta de locos es un ch..... de campos.
 

Volver arriba

#8 - 28/11/2006 18:34:56 Reporta abuso | Link Permanente
subgurim
Fecha de registro: 01/12/2006
1 post en este tema
186 posts en foro vb.net
1777 posts en todos los foros
RE: Separar Nombre de Apellidos

Responder Citar
Entonces lo que pides es magia

En serio, es no es posible. De algún modo has de hacer que te envíen la info en varios campos de texto (o celdas Excel)
Volver arriba

#9 - 28/11/2006 16:03:45 Reporta abuso | Link Permanente
Ana()
Usuario no registrado
RE: Separar Nombre de Apellidos

Responder Citar
Ana Lilia ha dicho:
 Hola a todos, mi nombre es ana y tengo una grave problema, intento separar un nombre por apellidos por eemplo: Juan Pablo Perez Hernandez en
Juan Pablo
Perez
Hernandez
mi problema es k el unico caracter k tengo es el espacio y no se como hacerlo por los apellidos compuestos por ejemplo: de la rosa.
espero k alguien me pueada ayudar
gracias
bye


ok gracias es k ellos me emandan la cadena completa en una celda de excel y necesito separarla para almacenar los datos en una base de datos, pero gracias de todos modos
Volver arriba

#10 - 28/11/2006 9:04:50 Reporta abuso | Link Permanente
subgurim
Fecha de registro: 01/12/2006
1 post en este tema
186 posts en foro vb.net
1777 posts en todos los foros
RE: Separar Nombre de Apellidos

Responder Citar
Hola Ana Lilia,

Lo único que se me ocurre es que cuando le pidas al usuario el nombre y apellidos lo hagas en diferentes campos de texto y lo pongas en diferentes campos de la base de datos.

O si lo quieres poner todo en un mismo campo, lo que puedes hacer es pedírselo en diferentes campos de texto y separar los nombres y apellidos con un caracter como el puntoycoma o algo parecido.

Por ejemplo (está en C#, con VB será análogo):

string nombreUsuario = tb_Nombre.Text + ";" + tb_Apellidos1.Text + ";" + tb_Apellidos2.Text;

Ya nos comentas qué tal!!
Volver arriba
Mostrar de en 15