Hola!
estoy usando este codigo :
x = Int(Rnd * 6)
me da decimales entre 0 y 6.
si yo uso por ejemplo
msgbox x, x, x,x
Voy a suponer que voy a obtener 4 numeros entre 0 y 6 distintos.
Pero no! (Muy obvio), ya que X vale un numero entre 0 y 6 , pero YA LO VALE, no cambia!.
Lo que yo necesito es que cambie :S:S:S
Alguien me dice como se hace?
GL!
edit: tendria que crear un bucle para que se repita la funcion y vuelva a dar valor.. alguna idea¿
Eso mismo lo han preguntado hace unos días (sin tener en cuenta que se ha respondido muuuuchas veces), busca sobre Randomize
Saludos
HOLA!!!
Mmm, creo que primero, cuando usas RND es preferible poner Randomize
Tomando tu codigo haria esto:
Suponiendo que no queres guardar los numeros que salgan:
Private Sub Msgbox_aleatorio()
Randomize
Msgbox Int(Rnd * 6), Int(Rnd * 6), Int(Rnd * 6),Int(Rnd * 6)
End Sub
Suponiendo que queres guardar los numeros que salgan:
Private Sub Msgbox_aleatorio()
Dim X(3) as integer
Randomize
For y = 0 To 3
X(y) = Int(Rnd * 6)
Next
msgbox X(0),X(1),X(2),X(3)
End Sub
GRACIAS POR LEER!!!
Miren, psa esto...
yo toco un boton, se establece el "Azar", y se edita un .txt remplazando la letra X por el numero al azar... por mas que use Randomize , la letra o numero q seria Azar sigue siendo la misma...
entonces, en el txt se remplazan todas las X por el mismo numero.
pero si toco 2 veces el boton, se remplazan las X por otro numero (Pero son todos iguales)
Se me ocurre: haz un timer con cierto retardo que genere uno de los números a sustituir cada vez y lo añada.
HOLA!!!
Mira, no se si leiste el segundo ejemplo que te escribi, o si lo entendiste...
Solucion:Mas abajo
GRACIAS POR LEER!!!
Sigue remplazando la X por el mismo numero.. Hay muchas X en el texto!, y las reemplaza por el mismo numero... M explico?
No, no te explicas, aún no hemos visto el código que dices estar usando :rolleyes:
sBuscar = "x"
Randomize
sPoner = Str(Int(Rnd * 6))
despues de eso se crea el txt.... balbal
HOLA!!!
Solucion:
Private Function Reemplazar_Aleatorio(Texto_orig As String, caracter_a_sustituir As String)
Randomize
For x = 1 To Len(Texto_orig)
If Mid(Texto_orig, x, 1) = caracter_a_sustituir Then
Texto_orig = Mid(Texto_orig, 1, x - 1) & Int(Rnd * 6) & Right(Texto_orig, Len(Texto_orig) - x)
End If
Next
Reemplazar_Aleatorio = Texto_orig
End Function
Private Sub Form_Load()
texto_nuevo = Reemplazar_Aleatorio("holax, comox andax", "x")
Debug.Print texto_nuevo
End Sub
GRACIAS POR LEER!!!
Es decir que tienes muuuchas X en un texto y quieres reemplazar cada una por algo diferente? es lo que interpreto, y apuesto a que estas utilizando replace así como así, con lo cual reemplazas todas por lo mismo :-X
Con lo cual, el código de 79137913 haría lo que estas pidiendo.
[offtopic]¡Viva los códigos hechos! ¡Que bonito es aprender a programar![/offtopic] :¬¬
Saludos
HOLA!!!
Bueno, perdon Novlucker, es que a estas horas de la mañana en el trabajo me aburro y me entretengo haciendo algun que otro codigo XD.
Si queres no doy mas codes hechos :-/ , como vos digas.
P.D: Pfff , me retaron :( .
GRACIAS POR LEER!!!
Hola!
No lo retes, es bueno (?) ^^.Gracias porel codigo!
Pero me queda una duda... Yo entre cada aleatorio tengo que escribir, por ejemplo...
holaALEATORIOchau
Como hago? No me sale :S
Edit, creo que ya vi la solucion, q tonto, no me di cuenta
HOLA!!!
Aca si me pongo del lado de no darte mas código, tenes una estructura armada, modificala a tu gusto.
GRACIAS POR LEER!!!
Cita de: 79137913 en 30 Diciembre 2010, 13:12 PM
Si queres no doy mas codes hechos :-/ , como vos digas.
Eso no es decisión mía sino tuya, si quieres dar códigos es cosa tuya, no es algo que vaya contra las reglas, solo que tengo un concepto distinto y la mayoría de las veces intento que los usuarios aprendan algo por si mismo ;)
Sino luego pasa como antes, "y si quiero modificar esto?", "y si quiero agregar esto otro?", "y si ....", eso no es programar sino picar código.
Saludos
Claaaro tiene razon, ;D
Ahora un boludo como yo te pregunta si lo quiero modificar, y no entiende ni bosta.
Si me queres decir decime, y sino, veo como me arreglo (:
Igual gracias por el codigo!
Pude hacerlo asi:
Private Function Reemplazar_Aleatorio(Texto_orig As String, caracter_a_sustituir As String)
Randomize
For x = 1 To Len(Texto_orig)
If Mid(Texto_orig, x, 1) = caracter_a_sustituir Then
Texto_orig = Mid(Texto_orig, 1, x - 1) & "PT" & Int(Rnd * 6) & "PTC" & Right(Texto_orig, Len(Texto_orig) - x)
End If
Next
Reemplazar_Aleatorio = Texto_orig
End Function
pero....
TXT original:
Citarhola soy un gordo requete puto
modificado:
CitarholaPT0PTCsoyPT5PTCunPT5PTCgordo requete puto
No completa :(
Lo único que tienes que hacer es utilizar otra variable temporal en lugar de sustituir la propia Texto_orig, es decir, solo tienes que sustituír en donde esta la igualdad :silbar:
Bueno, y modificar el IF, para que en caso de no coincidir con un caracter sustituible lo acumule igual pero sin cambios
Saludos
:o :o :huh: :huh: :huh: :huh:
Perdon, pero no entendi nada o.o
Private Function Reemplazar_Aleatorio(Texto_orig As String, caracter_a_sustituir As String)
Randomize
For x = 1 To Len(Texto_orig)
If Mid(Texto_orig, x, 1) = caracter_a_sustituir Then
Texto_orig = Mid(Texto_orig, 1, x - 1) & "PT" & Int(Rnd * 6) & "PTC" & Right(Texto_orig, Len(Texto_orig) - x)
'que cambies el nombre de la variable Texto_orig
Else
'concatena pero sin cambios
End If
Next
Reemplazar_Aleatorio = Texto_orig
'obviamente tambien hay que cambiar la variable
End Function
Soy tarado, y mas con sueño, no entiendo nada, voy a romper todooooooooooo :rolleyes: :rolleyes: :rolleyes: :(
alguien me puede explicar exactamente que renombrar y para que? Me siento cada vez mas estupido :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.
Sueño, sepan entender,
encima cuando modifico nose ni como se usa la funcion, aiiiiii dios q inutil...
Citarsolo que tengo un concepto distinto y la mayoría de las veces intento que los usuarios aprendan algo por si mismo
Lo intenté, dime que has aprendido hoy y si entiendes la lógica del código :¬¬
Private Function Reemplazar_Aleatorio(Texto_orig As String, caracter_a_sustituir As String, pre As String, post As String)
Dim temp As String
Randomize
For x = 1 To Len(Texto_orig)
If Mid(Texto_orig, x, 1) = caracter_a_sustituir Then
temp = temp & pre & Int(Rnd * 6) & post
Else
temp = temp & Mid(Texto_orig, x, 1)
End If
Next
Reemplazar_Aleatorio = temp
End Function
Private Sub Form_Load()
texto_nuevo = Reemplazar_Aleatorio("holax, comox andax", "x", "antes", "despues")
Debug.Print texto_nuevo
End Sub
Saludos
HOLA!!!
XD lo que pasa es que el code que habia armado era para sustituir caracteres 1 a 1 no 1 a 5.
Igual Novlucker lo soluciono y mejoro XD.
GRACIAS POR LEER!!!
@nuKjeEn mi opinión te falta más
Google y
paciencia para intentar resolver tus errores, no creo que aprendas mucho posteando cada
2x3 cada vez que te salte un error. :-\
@NovluckerHay variables sin declarar, no tira error por no poner el
Option Explicit... :P
Seguramente esto líe más las cosas :rolleyes:, pero yo lo haría así :
Option Explicit
Private Function RndReplace(ByVal sText As String, ByVal sChar As String, ByVal sFirstWord As String, ByVal sEndWord As String) As String
Dim sActualChar As String * 1
Dim lTextLen As Long
Dim Q As Long
lTextLen = Len(sText)
If lTextLen > 2 Then
Call Randomize(Timer)
For Q = 1 To lTextLen
sActualChar = Strings.Mid$(sText, Q, 1)
RndReplace = RndReplace & IIf((sActualChar = sChar), (sFirstWord & CStr(CInt(Rnd * 6)) & sEndWord), sActualChar)
Next Q
End If
End Function
Private Sub Form_Load()
' ¡Vivan las ranas! :D
Debug.Print RndReplace("holax, comox andax", "x", "ANTES", "DESPUÉS")
End Sub
Resultado:
CitarholaANTES6DESPUÉS, comoANTES3DESPUÉS andaANTES5DESPUÉS
DoEvents! :P
En realidad si hay variables sin declarar, pero no me iba a molestar por eso, son solo la x ,el texto_nuevo y el tipo de retorno de la función :xD, y si, creo que si no ha entendido el primer código ese menos :xD