Wenas, tengo una duda sobre como hacer esto:
Tenemos una frase cualquiera: hola, que pasa que te cuentas
¿Como puedo hacer para que analize cada letra de la frase?
Ya vi que se puede hacer con un for pero no lo consigo....
un saludo;)
algo asi?
For i = 1 To Len(Text1.Text)
MsgBox Mid(Text1, i, 1)
Next i
Wenas, el ejemplo tal cual lo has puesto es justo lo q queria, grax :D
Cita de: WestOn en 4 Noviembre 2008, 18:27 PM
Wenas, el ejemplo tal cual lo has puesto es justo lo q queria, grax :D
Que bueno que te aalla servido ;)
Hola de nuevo, tengo una duda con el code de antes:
Para coger letra por letra no hay problemas me va muy bien, pero si tengo esto:
Private Sub Command2_Click()
For i = 1 To Len(Text2.Text)
a = Mid$(Text2, i, 1)
If a = "01000001" Then
...
Si pongo ese numero por ejemplo no me lo saca, quiero decir que con el ejemplo anterior reconoce letra por letra, pero ¿como haria para que usando el for de antes, (u otro), pudiese identificar el numero de arriba?
¿Quiza haciendo que se pare para 'analizar' cada vez que haya un espacio, y luego seguir?
un saludo ;)
No entiendo... estas buscando una palabra dentro de una cadena?
Por ejemplo... buscar si esta la palabra "fuga", dentro la fase, "ha habido una fuga"?
Porque para eso esta la función instr :-\
mmm creo q se me a ido la cabeza :rolleyes:, pero voy a aclarar lo q quiero hacer:
Identificar el numero '028736' en "293759 394856 028736 187357", pero como hay mas numeros hacer un for para que vaya uno a uno:
Primero 293759
Segundo 394856
y asi hasta el final
un saludo
Entonces es lo que he dicho.. porque no utilizar la función instr :huh:
msgbox instr(1,"293759 394856 028736 187357","028736",1)
Saludos
wenas, con InStr lo usaria asi:
i = InStr(1, Text1.Text, "028736", 1)
¿Pero si el numero se repite? si pasa esto:
028736 349812 569309 028736 982301 759836
Solo detectaria lo detectaria al principio, el siguiente numero igual a el no lo reconoce...nose si me explico bien :xD
grax de antemano
Claro, porque el instr devuelve la primer coincidencia, y hace referencia, al primer caracter de la palabra buscada.... para eso tienes que utilizar un bucle
i=1
do
e = InStr(i, Text1.Text, "028736", 1)
if e > 0 then
msgbox "coincidencia en " & e
i = e + 1
else
exit do
end if
loop
Saludos ;)
voy a probarlo y ya os comento, grax :D
wenas, pues estuve probando pero no me sirve lo de InStr, ya que no me vale para "ir paso a paso".
Si tengo que buscar, por ejemplo, 1000 entre 4469 6789 1000 2562 1000 0125
por cada vez q encuentre mil tiene que escribir una letra, pero no como lo hace InStr (que busca lo q le pongas de una tacada todo).
Lo q intento hacer esque vaya numero por numero, no que busque una letra determinada y me de la posicion de la letra inicial..
El for de arriba, el q usa Mid es muy bueno para lo de las letras, yo quiero hacer algo parecido (en el sentido de que va analizando en orden) pero q me busque envez de letra por letra numero por numero.
Numeros de mas de 6 digitos (lo digo porq con un numero de 1 digito si me serviria..;))
jaja espero q se haya entendido, un saludo ;)
Cita de: WestOn en 4 Noviembre 2008, 23:07 PM
Lo q intento hacer esque vaya numero por numero, no que busque una letra determinada y me de la posicion de la letra inicial..
Quieres que te busque por número y no por una letra determinada, pero que luego te de la posicion de la letra inicial... Ahora me pregunto..
Citar
Si tengo que buscar, por ejemplo, 1000 entre 4469 6789 1000 2562 1000 0125
por cada vez q encuentre mil tiene que escribir una letra, pero no como lo hace InStr (que busca lo q le pongas de una tacada todo).
Donde quieres poner la letra? Puedes hacer un ciclo... que cada vez que te muestra que lo tiene que coloque la letra A por ejemplo...
i=1
do
e = InStr(i, Text1.Text, "028736", 1)
if e > 0 then
msgbox "coincidencia en " & e
i = e + 1
'Coloca otro textbox y cada vez que encuentre esa cifra agregara la letra A
Text2.Text = Text2.Text + "A"
else
exit do
end if
loop
Aunque lo q posteaste arriba de este mensaje no se entiende... :xD
Cita de: ssccaann43 en 4 Noviembre 2008, 23:14 PM
Cita de: WestOn en 4 Noviembre 2008, 23:07 PM
Lo q intento hacer esque vaya numero por numero, no que busque una letra determinada y me de la posicion de la letra inicial..
Quieres que te busque por número y no por una letra determinada, pero que luego te de la posicion de la letra inicial... Ahora me pregunto..
EJ: 1000 = a
cada vez q encuentre "1000", escriba "a", pero asi con todos los numeros y tiene q seguir un orden porq sino la suma de las letras al final no tendria sentido ;)
un saludo
Arriba esta... :xD
no lo habia visto :xD, yaya si eso ya lo probe pero no me sirve..
Ya sabia yo q no se entenderia jeje, mira si tenemos un diccionario:
100= H
400= O
500= L
600= A
600= A
900= G
300= U
200= R
Si pongo --> 100 400 500 600 600 900 300 200 --> Hola agur
weno jaja si no me explico bien da =, ya mirare y posteare mañana si tengo alguna duda, pero espero alguna respuesta :P
un saludo
Si lo vas a poner así....split
texto = "100 400 500 600 800 900 300 200"
aray = split(texto," ")
for each a in aray
msgbox a
next
Luego sería cuestión de comparar los valores, con alguna tabla conde estén las equivalencias :P, por ejemplo con un diccionario ;)
ok probare el code mañana y ya comento que tal ;)
grax
lo q quiere hacer es reemplazar el 1000 x la letra A.. es muy facil, se hace con la funcion Remplace
Text1.Text = Replace(Text1.Text, "1000", "A")
SALUDOS
Cita de: vivachapas en 5 Noviembre 2008, 00:30 AM
lo q quiere hacer es reemplazar el 1000 x la letra A.. es muy facil, se hace con la funcion Remplace
Text1.Text = Replace(Text1.Text, "1000", "A")
Es otra manera, pero igualmente deberá de generar un listado de letras/números, y bien se reemplaza en la cadena completa, o bien se lee número a número y se genera el resultado :P
usando instr se puede, de esta manera:
Citarusamos una variable para determinar desde donde buscamos, la inicializamos a 0 para que empiece a buscar desde el principio
empieza el bucle
busca con instr DESDE LA POSICION DE LA VARIABLE
si instr dio resultados:
la variable pasa a tener de valor la posicion de la cadena +1
si no
sale del bucle, la cadena no esta mas
vuelve al comienzo
o si no, podes hacer algo asi:
For i = 1 To Len(Text1.Text)
MsgBox Mid(Text1, i, len("10021"))
Next i
Wenas, grax por los ejemplos ;), al final hice q funcionara :D.
Pero me quede con una duda con esto:
Private Sub Command2_Click()
For i = 1 To Len(Text1.Text)
a = Mid(Text1, i, 1)
If a = "250000" Then
c03 = "c" 'nueva letra
c01 = c01 + c02 + c03 'variable total + espacio + nueva letra
End If
.....
next
end sub
este ejemplo no era capaz de cambiarme "250000" a "c", ¿alguien sabe porque :huh:?
PD:Lo que hace es guardar la variable a como la variable c03
un saludo ;)
Estas extrayendo un solo carácter de la cadena original, "a" nunca será igual a "250000".
Tengo un text y en el pongo el valor de a (en este caso 250000) entonces ¿no tendria q entrar por fuerza :xD?
lo digo porq el valor de a lo pongo directamente yo, un saludo ;)
Te digo que si extraes UN solo caracter, nunca entrara al bloque if
Citara = Mid(Text1, i, 1)
If a = "250000" Then
Cita de: cΔssiΔnі en 6 Noviembre 2008, 19:17 PM
Te digo que si extraes UN solo caracter, nunca entrara al bloque if
Citara = Mid(Text1, i, 1)
If a = "250000" Then
:rolleyes: :rolleyes:
grax y un saludo ;)