Visual Basic - Sustituir una letra en una cadena

Life is soft - evento anual de software empresarial
 
Vista:

Sustituir una letra en una cadena

Publicado por Mikel (1 intervención) el 11/07/2015 11:56:19
¡Hola buenas!
Estoy preparando un juego (una especie de ahorcado). En determinado momento necesito sustituir un asterisco por una letra concreta, es decir:

Pasar de eso: *******
A esto: ***T***

Estoy probando funciones como ltrim, replace, split... pero ni idea, nada funciona. ¿Con qué función podría decirle que coja una cadena y sustituya una letra concreta por otra?

¡Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Sustituir una letra en una cadena

Publicado por Cris (33 intervenciones) el 11/07/2015 13:41:56
Hola,

Prueba esto a ver si funciona.

Label1.Caption = Replace(Label1.Caption, "perro", "gato")

Sustituye perro por gato

Otra función:


Dim sOriginal As String
Dim sBuscar As String
Dim sPoner As String

sOriginal = "El perro de *******."
sBuscar = "*******"
sPoner = "***T***"

Label1 = Replace(sOriginal, sBuscar, sPoner, , , vbTextCompare)

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Sustituir una letra en una cadena

Publicado por Mikel (1 intervención) el 11/07/2015 13:57:54
Gracias por la respuesta, pero no me sirve de mucho. Es culpa mía porque no me expliqué bien.

Veréis, el funcionamiento es el siguiente.
Se elige una palabra de la base de datos de forma aleatoria, por ejemplo "PULPO". Se guarda en la variable "Palabra". Después el programa crea la variable "Palabraoculta" que cuenta las letras de Palabra mediante la función "len" y sabe cuantos asteriscos tiene que poner. Palabraoculta sería "*****".

Una vez tenemos la palabraoculta, es esa la que se muestra. Y cada 2 segundos, uno de los asteriscos se va desvelando hasta que haya suficientes letras mostradas para que el usuario pueda desvelar la respuesta, y después verá si ha acertado o no.
El tema es que se va desvelando una letra de forma aleatoria. Es decir, lo siguiente a mostrarse podría ser P**** o podría ser ****O.

Lo que yo necesito es una función que, pasándole los parámetros de la variable que contiene la palabra que sería "palabraoculta", y el número de posición que ha salido de forma aleatoria (1-5), me sustituya el asterisco de esa posición por la palabra en esa posición en la variable "Palabra".

***** -> Se elige aleatoriamente la 3 posición
compruebo que la tercera posición sea *
como es asterisco, voy a la variable "palabra" y elijo la tercera letra
PULPO -> L
Necesito intercambiar el tercer asterisco por una L

Seguro que alguno tenéis idea de qué función puedo utilizar.
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Sustituir una letra en una cadena

Publicado por Andres Leonardo (1798 intervenciones) el 11/07/2015 16:44:17
Pues ahi deberas concatenar es mejor

Debes jugar con la longitud y la posicionq ue tu desees

Considerando que tu tienes
si quieres reemplazar la T en la tercera pos tu deberas concatenar las palabra
ahora te paso un ejemplo

Claro salvo mejor criterio de los que mas saben esta es solo una manera facil de hacerlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo
Val: 8
Ha aumentado su posición en 9 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Sustituir una letra en una cadena

Publicado por Wilfredo Patricio Castillo (260 intervenciones) el 11/07/2015 19:30:56
La función MID(cadena,posision_inicial,cuantos_tomar)

Eso te facilitará la vida, pero como años que no tengo VB6, no tengo como hacerte un ejemplo y menos desde este dispositivo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 147
Ha disminuido 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Sustituir una letra en una cadena

Publicado por Juan Gilberto (323 intervenciones) el 12/07/2015 19:24:35
Yo utilizaria mejor un vector donde cada posicion lo puedo accesar directamente con el numero aleatorio generado

Tambien debes de tener cuidado de no repetir los numeros aleatorios generados
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar