elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Nose si usar el replace... alternativa?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Nose si usar el replace... alternativa?  (Leído 10,627 veces)
CAR3S?


Desconectado Desconectado

Mensajes: 343


Level xXx


Ver Perfil
Nose si usar el replace... alternativa?
« en: 6 Febrero 2011, 07:46 am »

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...

Código
  1. Source = src.Text
  2. Source = Replace(Source, "a", ("5" & a.Text & "5"))
  3. Source = Replace(Source, "b", ("5" & b.Text & "5"))
  4. Source = Replace(Source, "c", ("5" & c.Text & "5"))
  5. Source = Replace(Source, "d", ("5" & d.Text & "5"))
  6. Source = Replace(Source, "e", ("5" & e.Text & "5"))
  7. Source = Replace(Source, "f", ("5" & f.Text & "5"))
  8. Source = Replace(Source, "g", ("5" & g.Text & "5"))
  9. Source = Replace(Source, "h", ("5" & h.Text & "5"))
  10. Source = Replace(Source, "i", ("5" & i.Text & "5"))
  11. Source = Replace(Source, "j", ("5" & j.Text & "5"))
  12. Source = Replace(Source, "k", ("5" & k.Text & "5"))
  13. Source = Replace(Source, "l", ("5" & l.Text & "5"))
  14. Source = Replace(Source, "m", ("5" & m.Text & "5"))
  15. Source = Replace(Source, "n", ("5" & n.Text & "5"))
  16. Source = Replace(Source, "ñ", ("5" & ñ.Text & "5"))
  17. Source = Replace(Source, "o", ("5" & o.Text & "5"))
  18. Source = Replace(Source, "p", ("5" & p.Text & "5"))
  19. Source = Replace(Source, "q", ("5" & q.Text & "5"))
  20. Source = Replace(Source, "r", ("5" & r.Text & "5"))
  21. Source = Replace(Source, "s", ("5" & s.Text & "5"))
  22. Source = Replace(Source, "t", ("5" & t.Text & "5"))
  23. Source = Replace(Source, "u", ("5" & u.Text & "5"))
  24. Source = Replace(Source, "v", ("5" & v.Text & "5"))
  25. Source = Replace(Source, "w", ("5" & w.Text & "5"))
  26. Source = Replace(Source, "x", ("5" & x.Text & "5"))
  27. Source = Replace(Source, "y", ("5" & y.Text & "5"))
  28. Source = Replace(Source, "z", ("5" & z.Text & "5"))
  29. Form2.srca.Text = Source
  30.  

queda completamente horrible, dependiendo de lo que haya en a.text b.text........ z.text


entienden? 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 Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Nose si usar el replace... alternativa?
« Respuesta #1 en: 6 Febrero 2011, 08:43 am »

.
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

Código
  1.  
  2. mid$(Source ,  Posicion, longitud ) = replace$ ( mid$(Source ,  Posicion, longitud ) , Antiguo_String , Nuevo_String )
  3.  
  4.  

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 Desconectado

Mensajes: 343


Level xXx


Ver Perfil
Re: Nose si usar el replace... alternativa?
« Respuesta #2 en: 6 Febrero 2011, 09:04 am »

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 Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Nose si usar el replace... alternativa?
« Respuesta #3 en: 6 Febrero 2011, 09:17 am »

.
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.

Código
  1.  
  2. Option Explicit
  3.  
  4. Private Sub Form_Load()
  5.    MsgBox Codificate("Temibles Lunas!¡.")
  6. End Sub
  7.  
  8. Private Function Codificate(ByVal vsData As String, Optional ByVal ToReplaceABC As String = "zyxwvutsrqponmlkjihgfedcba") As String
  9. Dim lng_i           As Long
  10. Dim byt_char        As Byte
  11.    If Len(ToReplaceABC) = 26 Then ' // Asc("a")-Asc(z)+1=25 poner 27 si se quiere afgregar la ñ
  12.        For lng_i = 1 To Len(vsData)
  13.            byt_char = Asc(Mid$(vsData, lng_i, 1))
  14.            If byt_char >= 97 And byt_char <= 122 Then      ' a - z
  15.                Mid$(vsData, lng_i, 1) = LCase$(Mid$(ToReplaceABC, byt_char - 96, 1))
  16.            ElseIf byt_char >= 65 And byt_char <= 90 Then   ' A -Z
  17.                Mid$(vsData, lng_i, 1) = UCase$(Mid$(ToReplaceABC, byt_char - 64, 1))
  18.            'ElseIf byt_char = 241 Then ' &#241;
  19.                'Mid$(vsData, lng_i, i) = Mid$(ToReplaceABC, byt_char - 98, lng_i, i)
  20.            'ElseIf byt_char = 209 Then ' &#209;
  21.                'Mid$(vsData, lng_i, i) = Mid$(ToReplaceABC, byt_char - 66, lng_i, i)
  22.            End If
  23.        Next lng_i
  24.    End If
  25.    Codificate = vsData
  26. End Function
  27.  
  28.  

Dulces Lunas!¡.
« Última modificación: 7 Febrero 2011, 07:44 am por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
CAR3S?


Desconectado Desconectado

Mensajes: 343


Level xXx


Ver Perfil
Re: Nose si usar el replace... alternativa?
« Respuesta #4 en: 6 Febrero 2011, 09:34 am »

Gracias por el codigo, una cosa....

este codigo reemplazax letra por otra letra al azar? :rolleyes:

Editado, entendido, no te rias ajjajajaaja  :laugh: ;-)
« Última modificación: 6 Febrero 2011, 10:00 am por nuKje » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Nose si usar el replace... alternativa?
« Respuesta #5 en: 6 Febrero 2011, 09:47 am »

.
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? :rolleyes:

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 Desconectado

Mensajes: 343


Level xXx


Ver Perfil
Re: Nose si usar el replace... alternativa?
« Respuesta #6 en: 6 Febrero 2011, 09:58 am »

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 jaja

ml hzyrz jfv uilt viz khbpv1 qzqz

Lo 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.  :xD
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Nose si usar el replace... alternativa?
« Respuesta #7 en: 6 Febrero 2011, 10:58 am »

.
LOL

ya viste el 2do parametro?

Dulces Lunas.
En línea

The Dark Shadow is my passion.
CAR3S?


Desconectado Desconectado

Mensajes: 343


Level xXx


Ver Perfil
Re: Nose si usar el replace... alternativa?
« Respuesta #8 en: 6 Febrero 2011, 11:28 am »

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.

Código
  1. Dim source As String
  2. source = Text1.Text
  3. MsgBox Mid(source, 1) = Replace$(Mid(source, 1), "a", a.Text)
  4.  

Creo que seria algo asi, pero tampoco anda. :xD (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 Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: Nose si usar el replace... alternativa?
« Respuesta #9 en: 6 Febrero 2011, 19:24 pm »

Aprender y no leer es incompatible, BlackZer0x te mostró una manera sencilla de hacerlo. :rolleyes:
Ve poco a poco, si no entiendes una función busca en Google, encontrarás explicación y muuuuuchos ejemplos. :)

DoEvents! :P
En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Un replace multiple, se puede?
.NET (C#, VB.NET, ASP)
SeniorX 1 2,500 Último mensaje 3 Enero 2007, 17:42 pm
por jorson
replace texto centrado « 1 2 »
Programación Visual Basic
andrer03 18 6,433 Último mensaje 2 Febrero 2009, 15:50 pm
por andrer03
problemas con cadena de texto (replace)
Programación Visual Basic
fede_cp 3 2,315 Último mensaje 11 Septiembre 2009, 23:54 pm
por fede_cp
Replace que borra todo..
Programación Visual Basic
Petro_Boca 5 3,021 Último mensaje 2 Agosto 2010, 21:36 pm
por BlackZeroX
Dejar cursor al final luego de usar replace
Programación Visual Basic
oliverm 4 2,115 Último mensaje 2 Junio 2013, 23:03 pm
por XresH
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines