problemas con cadena de texto (replace)

Iniciado por fede_cp, 11 Septiembre 2009, 19:20 PM

0 Miembros y 1 Visitante están viendo este tema.

fede_cp

bueno gente, la verdad que me quede trabado en una cosa, resulta que estoy haciendo una aplicacion que trabaja con cadenas de texto. y resulta que necesito haer un replace pero solo en una parte de la cadena

osea trabaja asi: ahce un for to, hacia un numero x, los numeros se ordenan separados con comas y despues con un command, de esa cadena reemplazar solo un numero. por ej:

queda en el text:

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23

y lo que hice fue hacer un replace a por ejemplo 1 ... text1.text = replace(text1.text , 1, "table_name")

pero me va a reemplazar a todos los 1, eso lo solucione agregando replace(text1.text , 1 & "," & 2, "table_name") pero en 21,22 me queda: 2table_name,2

entienden lo que quiero hacer??

estuve todo una semana buscando, pero no encuentro una funcion similar

la verdad que estoy trabado :S
somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!

Novlucker

#1
Por poner un ejemplo, es lo que se me ocurre rapidamente:


  • Realizas un split de la cadena
  • Evaluas uno a uno los valores que vas a revisar
  • Si el texto y largo de la cadena buscada coincide con el que queremos reemplazar
  • Reemplazamos y almacenamos en una nueva cadena
  • O bien almacenamos sin cambiar

Código (vb) [Seleccionar]
Function search_and_replace(texto As String, reemp_A As String, reemp_CON As String) As String

Dim buffer_aray() As String
Dim i As Integer

buffer_aray = Split(texto, ",")
texto = ""

For i = 0 To UBound(buffer_aray)
If buffer_aray(i) = reemp_A And Len(buffer_aray(i)) = Len(reemp_A) Then
texto = texto & Replace(buffer_aray(i), reemp_A, reemp_CON, 1) & ","
Else
texto = texto & buffer_aray(i) & ","
End If
Next

search_and_replace = Left(texto, Len(texto) - 1)

End Function


Saludos :P


P.D: me he dado cuenta de que el código GeSHi se ve mal (las tabulaciones) solo si publico con FF, con IE no ¬¬
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Skeletron

Amigo.. si lo que quieres es reemplazar es SOLAMENTE un 1 (por ejemplo)
Tienes que buscar a la cadena:    ,1,
Si quieres con un 2.. busca la cadena:    ,2,

Me explico?? o no es lo que buscas?

fede_cp

muchas gracias Novlucker, cuando tenga un tiempito libre lo pruebo, ya entendi como lo pensaste, cuando lo implemente voy a postear tu code con comentarios al lado para la explciacion :)


saludos
Cita de: Skeletron en 11 Septiembre 2009, 19:52 PM
Amigo.. si lo que quieres es reemplazar es SOLAMENTE un 1 (por ejemplo)
Tienes que buscar a la cadena:    ,1,
Si quieres con un 2.. busca la cadena:    ,2,

Me explico?? o no es lo que buscas?

claro funcionaria igual pero tendria que crear una funcion en la que tome al numero le agregue comas y ahi reemplaze, porque la cantidad de numeros es una veriable, no es constante, y si por ejemplo ennumero 80 num, tendria que ir uno por uno o crear una funcion como la de Novlucker  ;D

saludos
somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!