Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Como recuperar ultima palabra de un string?

Estas en el tema de Como recuperar ultima palabra de un string? en el foro de Visual Basic clásico en Foros del Web. Otra vez aqui con las cadenas texto. Ahora quiero recuperar la ultima palabra de un string por ejemplo tengo esta cadena "01-producto1-precio1-estado" quiero recuperar la ...
  #1 (permalink)  
Antiguo 16/08/2009, 15:51
 
Fecha de Ingreso: junio-2008
Mensajes: 343
Antigüedad: 15 años, 10 meses
Puntos: 4
Como recuperar ultima palabra de un string?

Otra vez aqui con las cadenas texto.
Ahora quiero recuperar la ultima palabra de un string por ejemplo tengo esta cadena "01-producto1-precio1-estado" quiero recuperar la palabra "estado" dicha palabra variara en el numero de caracteres en este caso "estado" tiene 6 caracteres pero podria ser 7, 8 o cualquier numero asi que la funcion right no me funciona.

Anteriormente utilize la funcion split pero ahora no se como aplicarlo
  #2 (permalink)  
Antiguo 16/08/2009, 20:32
 
Fecha de Ingreso: noviembre-2003
Ubicación: Tabasco, Mexico
Mensajes: 249
Antigüedad: 20 años, 5 meses
Puntos: 2
Sonrisa Respuesta: Como recuperar ultima palabra de un string?

Puedes seguir usando la funcion Split, pero ahora tambien usaras la funcion UBound, que lo que hace es que devuelve el numero de elementos que contiene una matriz, entonces, sabiendo cual es el subindice del ultimo elemento podemos accesar a ese elemento obteteniendo asi el ultimo elemento del arreglo, en este caso, la ultima palabra.

Aqui un ejemplo sencillo:
Código:
  Cadena = "Hola como estas"
  Separador = " "
  Palabras = Split(Cadena, Separador)
  UltimoElemento = UBound(Palabras)
  UltimaPalabra = Palabras(UltimoElemento)
Obviamente todo eso lo puedes reducir a unas cuantas lineas pero lo puse asi para que sea mas facil de comprender.

Saludosy buen dia
__________________
Crea tu Foro Gratis
Portal Tabasco
  #3 (permalink)  
Antiguo 16/08/2009, 21:08
 
Fecha de Ingreso: junio-2008
Mensajes: 343
Antigüedad: 15 años, 10 meses
Puntos: 4
Respuesta: Como recuperar ultima palabra de un string?

muy bueno tio aunque esta forma de programar recien la veo?, como seria el codigo sino deseo utilizar la variable "Palabras"

Palabras = Split(Cadena, Separador)

UltimaPalabra = Palabras(UltimoElemento)

Como fusionaria estas 2 lineas ó no se puede?, igual funciona bien gracias
  #4 (permalink)  
Antiguo 17/08/2009, 14:43
 
Fecha de Ingreso: agosto-2009
Mensajes: 2
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Como recuperar ultima palabra de un string?

Código:
Dim Tmp() as string

tmp = split(";O-;D-xD", "-")

msgbox tmp(0)
msgbox tmp(1)
msgbox tmp(2)
Estas utilizando "-" como el separador, podes cambiar los datos y probar :)

Saludos
  #5 (permalink)  
Antiguo 17/08/2009, 20:34
 
Fecha de Ingreso: noviembre-2003
Ubicación: Tabasco, Mexico
Mensajes: 249
Antigüedad: 20 años, 5 meses
Puntos: 2
Sonrisa Respuesta: Como recuperar ultima palabra de un string?

Cita:
Iniciado por hunter18 Ver Mensaje
muy bueno tio aunque esta forma de programar recien la veo?, como seria el codigo sino deseo utilizar la variable "Palabras"

Palabras = Split(Cadena, Separador)

UltimaPalabra = Palabras(UltimoElemento)

Como fusionaria estas 2 lineas ó no se puede?, igual funciona bien gracias
La variable Palabras la vas a usar si o si, lo que se puede hacer es eliminar la variable UltimaPalabra quedando asi

Código:
  Palabras = Split(Cadena, Separador)
  UltimaPalabra = Palabras(UBound(Palabras))
Sin embargo, si apenas estas comenzando a familiarizarte con la programacion en VB, pues te sugiero que para que comprendas mejor los codigos y por tanto te sean mas faciles de depurar, pues mejor usa unas cuantas lineas mas de codigo.

Creo que estas haciendo pequeñas aplicaciones con lo cual el uso de una o 2 variables de mas no afectara considerablemente el rendimiento del programa, cuando tu logica de programacion sea mucho mas complejas y tengas que hacer aplicaciones mas complejas, asi si podrias reducir lineas de codigo siempre y cuando tu razonamiento o logica sea mas compleja.

Saludos.
__________________
Crea tu Foro Gratis
Portal Tabasco
  #6 (permalink)  
Antiguo 30/08/2009, 10:06
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Como recuperar ultima palabra de un string?

UltimaPalabra=Right$(Cadena,Len(Cadena)-instrrev(cadena,"-"))

Creo que esto es lo mas simple

El caso es que voy a estudiar eso de ubound y split a ver que es.

PD: Visto. No me he enterado. Espero no necesitarlo nunca.

Última edición por pkj; 30/08/2009 a las 10:12
  #7 (permalink)  
Antiguo 30/08/2009, 12:26
 
Fecha de Ingreso: junio-2008
Mensajes: 343
Antigüedad: 15 años, 10 meses
Puntos: 4
Respuesta: Como recuperar ultima palabra de un string?

Muy bueno tio con el split y ubound se generaba un array lo que limitada lo que necesitaba realizar, retomare lo que estaba haciendo saludos

Para que se coloca, en q casos y a que funciones el simbolo $ despues de la funcion
  #8 (permalink)  
Antiguo 30/08/2009, 12:48
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Como recuperar ultima palabra de un string?

El $ solo significa que trabajas con strings, y aunque funciones como Right, Mid, etc se pueden usar sin ese caracter, tengo entendido que es recomendable ponerlo.

Me alegro de haber servido de ayuda.
  #9 (permalink)  
Antiguo 30/08/2009, 18:08
 
Fecha de Ingreso: junio-2008
Mensajes: 343
Antigüedad: 15 años, 10 meses
Puntos: 4
Respuesta: Como recuperar ultima palabra de un string?

oks tio gracias por el dato, saludos
  #10 (permalink)  
Antiguo 06/09/2009, 16:32
 
Fecha de Ingreso: junio-2008
Mensajes: 343
Antigüedad: 15 años, 10 meses
Puntos: 4
Respuesta: Como recuperar ultima palabra de un string?

Que tal pkj como vas, tio y como podria recuperar la penultima palabra en lugar de la ultima?
He estado intentandolo pero no lo he conseguido.

Si utilizo el split y ubound es mas facil pero me convierte en array y solo necesito texto en cadena limpia

saludos
  #11 (permalink)  
Antiguo 07/09/2009, 02:06
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Como recuperar ultima palabra de un string?

Ahora que he entendido qué es lo que hace eso de split y ubound, creo que para conseguir el penúltimo elemento o cualquiera entre medias deberías usarlos.

Yo he cargado esto en un form con un botón y ha funcionado:

' siempre uso esto para obligarme a declarar las variables
Option Explicit

Private Sub Command1_Click()
Dim ArrayDeCadenas() As String
Dim Cadena As String ' esta variable la quitas y usas la que tienes cargada

' suponiendo que tienes la cadena...
Cadena = "cadena1-cadena2-cadena3"

ArrayDeCadenas = Split(Cadena, "-")

' como ubound te devuelve la cantidad de elementos,
' para conseguir la penúltima palabra sería...
MsgBox ArrayDeCadenas(UBound(ArrayDeCadenas) - 1)

End Sub

Tu cadena sigue intacta y el resultado es una simple cadena.

Suerte con ello. Yo ya he aprendido algo hoy.

Última edición por pkj; 07/09/2009 a las 03:12
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:10.