Autor
|
Tema: Nose si usar el replace... alternativa? (Leído 10,627 veces)
|
CAR3S?
Desconectado
Mensajes: 343
Level xXx
|
hay alguna alternativa para el replace? porq el replace, por ejemplo, tengo esto en un textbox: habia una vez un patito que tenia alto pitito y le hago un replace... Source = src.Text Source = Replace(Source, "a", ("5" & a.Text & "5")) Source = Replace(Source, "b", ("5" & b.Text & "5")) Source = Replace(Source, "c", ("5" & c.Text & "5")) Source = Replace(Source, "d", ("5" & d.Text & "5")) Source = Replace(Source, "e", ("5" & e.Text & "5")) Source = Replace(Source, "f", ("5" & f.Text & "5")) Source = Replace(Source, "g", ("5" & g.Text & "5")) Source = Replace(Source, "h", ("5" & h.Text & "5")) Source = Replace(Source, "i", ("5" & i.Text & "5")) Source = Replace(Source, "j", ("5" & j.Text & "5")) Source = Replace(Source, "k", ("5" & k.Text & "5")) Source = Replace(Source, "l", ("5" & l.Text & "5")) Source = Replace(Source, "m", ("5" & m.Text & "5")) Source = Replace(Source, "n", ("5" & n.Text & "5")) Source = Replace(Source, "ñ", ("5" & ñ.Text & "5")) Source = Replace(Source, "o", ("5" & o.Text & "5")) Source = Replace(Source, "p", ("5" & p.Text & "5")) Source = Replace(Source, "q", ("5" & q.Text & "5")) Source = Replace(Source, "r", ("5" & r.Text & "5")) Source = Replace(Source, "s", ("5" & s.Text & "5")) Source = Replace(Source, "t", ("5" & t.Text & "5")) Source = Replace(Source, "u", ("5" & u.Text & "5")) Source = Replace(Source, "v", ("5" & v.Text & "5")) Source = Replace(Source, "w", ("5" & w.Text & "5")) Source = Replace(Source, "x", ("5" & x.Text & "5")) Source = Replace(Source, "y", ("5" & y.Text & "5")) Source = Replace(Source, "z", ("5" & z.Text & "5")) Form2.srca.Text = Source
queda completamente horrible, dependiendo de lo que haya en a.text b.text........ z.textentienden? supongamos que en h.text hay una J se reemplaza: jabia (Primera palabra vamos a usar de ejemplo) Cuando llega la hora de reemplazar la j ( Supongamos que en j.text hay "l") termina quedando labia y es cualquier cosa, y eso me esta complicando! :S Hay alguna alternativa para el replace?
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
. mmm tienes un problema de logica ya que estas reemplazando por el alfabeto y sustituyes a las mismas, lo que te recomiendo es que uses mid$(Source , Posicion, longitud ) = replace$ ( mid$(Source , Posicion, longitud ) , Antiguo_String , Nuevo_String )
con esto evitas eso que dices. P.D.: Ese codigo se reducen a unas cuantas lineas de codigo usando un For Next sin esfuerzo alguno y un array. Dulces Lunas!¡.
|
|
« Última modificación: 6 Febrero 2011, 09:02 am por BlackZeroX▓▓▒▒░░ »
|
En línea
|
The Dark Shadow is my passion.
|
|
|
CAR3S?
Desconectado
Mensajes: 343
Level xXx
|
Gracias por responder black! estoy leyendo sobre mid, pero a que te refieres con posicion y longitud? Tengo algun que otro problemita mental... Agrego: Ya lei http://www.eggheadcafe.com/software/aspnet/33594988/funcion-mid.aspx , pero sigo sin entender porque usar mid osea, lo q no entiendo es porq usar el replace con el mid$
|
|
« Última modificación: 6 Febrero 2011, 09:16 am por nuKje »
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
. No es un problema mental, mas bien de flojera en muchos casos, donde nadie se detiene a leer un poco sobre el mismo ni a practicarlo. Mejor EXplicacion que la MSDN no hay mira Mid()Este es un codigo de "Esboso" los caracteres ñ y/o Ñ te los dejo ati estan como comentarios. Option Explicit Private Sub Form_Load() MsgBox Codificate("Temibles Lunas!¡.") End Sub Private Function Codificate(ByVal vsData As String, Optional ByVal ToReplaceABC As String = "zyxwvutsrqponmlkjihgfedcba") As String Dim lng_i As Long Dim byt_char As Byte If Len(ToReplaceABC) = 26 Then ' // Asc("a")-Asc(z)+1=25 poner 27 si se quiere afgregar la ñ For lng_i = 1 To Len(vsData) byt_char = Asc(Mid$(vsData, lng_i, 1)) If byt_char >= 97 And byt_char <= 122 Then ' a - z Mid$(vsData, lng_i, 1) = LCase$(Mid$(ToReplaceABC, byt_char - 96, 1)) ElseIf byt_char >= 65 And byt_char <= 90 Then ' A -Z Mid$(vsData, lng_i, 1) = UCase$(Mid$(ToReplaceABC, byt_char - 64, 1)) 'ElseIf byt_char = 241 Then ' ñ 'Mid$(vsData, lng_i, i) = Mid$(ToReplaceABC, byt_char - 98, lng_i, i) 'ElseIf byt_char = 209 Then ' Ñ 'Mid$(vsData, lng_i, i) = Mid$(ToReplaceABC, byt_char - 66, lng_i, i) End If Next lng_i End If Codificate = vsData End Function
Dulces Lunas!¡.
|
|
« Última modificación: 7 Febrero 2011, 07:44 am por BlackZeroX▓▓▒▒░░ »
|
En línea
|
The Dark Shadow is my passion.
|
|
|
CAR3S?
Desconectado
Mensajes: 343
Level xXx
|
Gracias por el codigo, una cosa....este codigo reemplazax letra por otra letra al azar? Editado, entendido, no te rias ajjajajaaja
|
|
« Última modificación: 6 Febrero 2011, 10:00 am por nuKje »
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
. Ya que no entendiste nada (aun que editste tu post con otro mensaje) aqui tienes: La explicacion: se recorre la string vsData y se toma un caracter ese caracter se transforma a su valor ASCII o mejor dicho a byte despues se le hace una SUSTITUCION de esa posicion del caracter por la que este en la variable del parametro llamada "ToReplaceABC", verificando y RESPETANDO mayusculas de minusculas para esto se usa el if then dentro del for que esta recorriendo la cadena y haci tomando un caracter por cada iteración es decir es decir: Si ingresas en la funcion la palabra "Hola" 1ra iteracion * Tomamos la primera letra o caracter y se convierte a ASCII para saber si es una minuscula o mayuscula dependiendo de esto el if deside que hacer: ** Caso uno minuscula: ** Caso Mayuscula. *** aun que la unica diferencia de estas desiciones es convertir la letra a mayuscula o minuscola con LCase$() o UCase$() respectivamente despues de tomar la letra de la cadena de la variable "ToReplaceABC". *** En una forma mas practica: ABC-Normal: abdefhhijklmnopqrstuvwxyz ABC Invertido y usado en la funcion: zyxwvutsrqponmlkjihgfedcba Es decir que la H se sustituye por la S ya que hay es donde deberia estar a H pero en su lugar esta la S lade demas Iteracciones son con el mismo proceso ¿Te falta esta base?: codigo ASCII aqui tienes la tabla ( con esto sabras el por que del numero 65, 90, 97, 122 y el por que de la ñ/Ñ ) -------------------------------------- se usa Mid$() = algo paraque no se rearme la string y por ende se trabaje directamente en ella sin crear una nueva. P.D.: el codigo es simple y no nesesitabatanta explicación o comentarios, solo puse cosas breves para saber los rangos, ---------------------------------------------- Gracias por el codigo, una cosa.... este codigo reemplazax letra por otra letra al azar? es enserio? Dulces Lunas!¡.
|
|
« Última modificación: 6 Febrero 2011, 09:58 am por BlackZeroX▓▓▒▒░░ »
|
En línea
|
The Dark Shadow is my passion.
|
|
|
CAR3S?
Desconectado
Mensajes: 343
Level xXx
|
Gracias black! Add: No me mates pero... sinceramente no entiendo como funciona, de visual basic se "Lo basico" (No tengo tanto tiempo para leer, estoy intentando "Estudiar" para rendir ahora en febrero Volviendo al tema, si tengo el source en la cadena "source" Form2.srca.Text = Codificate(source) como dijiste arriba, "Invierte" (Por asi decir) el avecedario, por ende, queda: no sabia que frog era psyke1 jajaml hzyrz jfv uilt viz khbpv1 qzqzLo que busco ahora es modificar el source para que envez de "Girar el abc", reemplaze el texto de la string (source) por las letras (a.text b.text c.text) Osea, reemplazar tu diccionario alrevez con los casi 30 textbox's. Si hago eso, el codigo queda muy largo, o me parece ami? Y lo mas importante, se puede hacer? No quiero que me digan como, pero aveces parece chino avanzado.
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
. LOL
ya viste el 2do parametro?
Dulces Lunas.
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
CAR3S?
Desconectado
Mensajes: 343
Level xXx
|
La segunda y la ultima? Zi zeñoda! Gracias por la ayuda black, pero no entiendo "Paso por paso" lo que hace el codigo, por ende, no puedo modificarlo... No entienndo como funciona! Add: Como no entendi el codigo, le preste atencion al primero que puso. Dim source As String source = Text1.Text MsgBox Mid(source, 1) = Replace$(Mid(source, 1), "a", a.Text)
Creo que seria algo asi, pero tampoco anda. (Da como resultado "False") Add2: Como se daran cuenta, los codigos hechos nunca me sirvieron de nada, y que me manden a leer menos...no es por "Flojera", es porque sinceramente, no entiendo!
|
|
« Última modificación: 6 Febrero 2011, 16:50 pm por nuKje »
|
En línea
|
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
Aprender y no leer es incompatible, BlackZer0x te mostró una manera sencilla de hacerlo. Ve poco a poco, si no entiendes una función busca en Google, encontrarás explicación y muuuuuchos ejemplos. DoEvents!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Un replace multiple, se puede?
.NET (C#, VB.NET, ASP)
|
SeniorX
|
1
|
2,500
|
3 Enero 2007, 17:42 pm
por jorson
|
|
|
replace texto centrado
« 1 2 »
Programación Visual Basic
|
andrer03
|
18
|
6,433
|
2 Febrero 2009, 15:50 pm
por andrer03
|
|
|
problemas con cadena de texto (replace)
Programación Visual Basic
|
fede_cp
|
3
|
2,315
|
11 Septiembre 2009, 23:54 pm
por fede_cp
|
|
|
Replace que borra todo..
Programación Visual Basic
|
Petro_Boca
|
5
|
3,021
|
2 Agosto 2010, 21:36 pm
por BlackZeroX
|
|
|
Dejar cursor al final luego de usar replace
Programación Visual Basic
|
oliverm
|
4
|
2,115
|
2 Junio 2013, 23:03 pm
por XresH
|
|