Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: andrer03 en 1 Febrero 2009, 19:41 PM

Título: replace texto centrado
Publicado por: andrer03 en 1 Febrero 2009, 19:41 PM
bueno al funcion replace la conozco no se como remplasar el texto de un texbox
en texto plano previamente cargado  en el que como margenes tengo este texto de aqui devajo



[          aqui.texto.centrado.a.remplazar         ]


:huh: help me alguien ^^
Título: Re: replace texto centrado
Publicado por: <[(x)]> en 1 Febrero 2009, 20:09 PM
holas

te sirve algo así?

Dim strCadena As String: strCadena = "[         aqui.texto.centrado.a.remplazar         ]"
Dim strRep As String: strRep = "holasss-locos"
Dim strR As String, strL As String
Dim strOut As String

strR = Right(strCadena, 10)
strL = Left(strCadena, 10)
strOut = strL & strRep & strR

Debug.Print strCadena
Debug.Print strOut
Título: Re: replace texto centrado
Publicado por: andrer03 en 1 Febrero 2009, 20:27 PM
no pero gracias eso no es lo que busco quiero remplazae el texto de un texbox

en otro texbox centrado en el texbox a remplazar tengo

[             aqui.el.texto.del.texbox.1                           ]

por medio de un boton
Título: Re: replace texto centrado
Publicado por: jdc en 1 Febrero 2009, 20:48 PM
dale la propiedad center a un text y en el boton pones la condicion para cambiar texto :)

:¬¬ o explicate mejor xD
Título: Re: replace texto centrado
Publicado por: Dessa en 1 Febrero 2009, 21:10 PM
TRIM
Título: Re: replace texto centrado
Publicado por: andrer03 en 1 Febrero 2009, 21:13 PM
hmm

no se me entiende ggg

vamos a ver si esta vez :P

tengo estas cosas en mi from
boton
texbox1
texbox2

en el textbox2 tengo cargado este texto


[          aqui.texto.centrado.a.remplazar         ]


ahora quiero remplazar el texto del texbox1 en el textbox2 por medio de un boton
pero que se remplace centrado y como margenes estoy usando [ ] bueno espero que estas vez me entiendan y me ayuden grascias por las respuestas recividas asta ahora :)
Título: Re: replace texto centrado
Publicado por: Dessa en 1 Febrero 2009, 21:22 PM
Si la parte central de la cadena (la que quieres rescatar) nunca va a tener espacios podes usar replace

cadena = "[          aqui.texto.centrado.a.remplazar         ]"
MsgBox cadena
cadena = Replace(cadena, " ", "")
MsgBox cadena
Título: Re: replace texto centrado
Publicado por: andrer03 en 1 Febrero 2009, 21:44 PM
 :-(

es el que el texto que remplaze tiene que remplazarse en la mitad y los margenes mantenerce en su sitio pero bueno es igual paso de añadirle esto a mi tool :) gracias por las respuesta
Título: Re: replace texto centrado
Publicado por: Dessa en 1 Febrero 2009, 21:54 PM
Lo podes hacer calculando el Len de la cadena inicial y el len de la cadena modificada

saludos

EDIT: doy por seguro que los texbox tienen la propiedad Alignment = 2 (center)
Título: Re: replace texto centrado
Publicado por: andrer03 en 1 Febrero 2009, 22:16 PM
no por que hay mas texto en el texbox2 y si lo pongo centrado lo destrozo a todo y quiero hacer esto en  una linea de el texto cargado en el texbox2
Título: Re: replace texto centrado
Publicado por: Dessa en 1 Febrero 2009, 22:33 PM
andrer03, Ninguno de nosotros somos adivinos, una cosa es como pantleaste la pregunta (refiriendote a una cadena) y otra es si el texbox2 tiene mas texto o es multiline, si no  explicas todo desde un principio nos "descolocas" (por lo menos a mi)
Quisiera ayudarte pero no entiendo la pregunta Saludos

 
Título: Re: replace texto centrado
Publicado por: BlackZeroX en 1 Febrero 2009, 22:40 PM
Cita de: andrer03 en  1 Febrero 2009, 22:16 PM
no por que hay mas texto en el texbox2 y si lo pongo centrado lo destrozo a todo y quiero hacer esto en  una linea de el texto cargado en el texbox2

Funcion:

Format()

te serviria?
Título: Re: replace texto centrado
Publicado por: seba123neo en 2 Febrero 2009, 00:55 AM
es lo mas cutre que pude hacer, no me pidan mas, recien me levanto  :xD

Private Sub Command1_Click()
    Text1.Alignment = 0
    Text1.Text = "Cambiaste el Texto"
    Text1.Alignment = 2
End Sub

Private Sub Form_Load()
    Text1.Alignment = 2
    Text1.Text = "Holaaaaaaaaa"
End Sub


saludos.
Título: Re: replace texto centrado
Publicado por: el_c0c0 en 2 Febrero 2009, 03:31 AM
si no es como dice seba123neo, ponele los bordes en flat (al text), y mandale corchetes con labels atras
Título: Re: replace texto centrado
Publicado por: andrer03 en 2 Febrero 2009, 11:29 AM
bueno he pensado esto
               
[                                                     ]  ->maximo de letras  q se puede ingresar entre los margenes [] es 30

un ejemplo las palabra que quiero centrar es: hola ->que tiene 4 letras

entoces calculo los espacios que tengo que añadir para que la palabra quede centrada

si el maximo de letras que permite es 30 y la palabra a remplazar tiene 4 letras

30-4=26espacios

entonces si divido 26/2 = 13espacios para la izquierda y otros 13 para la derecha

entonces quedaria asi.

[1234567890123HOLA1234567890123]

los numero que puse serian espacios

asi con espacios los margenes se mantendrian en su lugar y se centraria la palabra a remplazar con los espacios calculados para la derecha y para la izquierda

bueno compañeros no se si la lie mas o menos pero es como lo razone :) lo que no se es el codigo espero que me ayuden de nuevo ^^














Título: Re: replace texto centrado
Publicado por: Novlucker en 2 Febrero 2009, 13:14 PM
Algo así ...

Código (vb) [Seleccionar]
Dim Centrar as Integer
Dim Espacios as String

Centrar = (30 - Len(text1.text))/2
Espacios = String(Centrar," ")
text2.text = Espacios & text1.text & Espacios


Esta podría ser la base, solo tienes que agregarle un par de condicionales para evaluar si realmente deben de agregarse espacios o también si el número de lugares libres en pricipio es impar y por lo tanto no se puede dividir entre dos así como así  :P

Saludos
Título: Re: replace texto centrado
Publicado por: <[(x)]> en 2 Febrero 2009, 14:09 PM
holas

Ya que estamos

La única función que usaría yo, space.

Y tu teoría funciona bien con palabras con caracteres pares. Si tratas con '123',  el resultado de los espacios es 14 osea 14*2=28  y 3 de la cadena nos queda 31. y en otros casos puede llegar a quedarte 29.

Otro detalle a destacar que cada carácter ocupa un espacio determinado y eso puede cagarte algo. Hay una fuente que todos sus caracteres ocupan lo mismo pero no me la acuerdop.


La funcion Space devuelve espacios, su cantidad es dada por su argumento.

Código (vb) [Seleccionar]

strPrueba=Space(10)


strPrueba tendría el valor: "          "


54¬u|)()5

Título: Re: replace texto centrado
Publicado por: Novlucker en 2 Febrero 2009, 14:21 PM
La función space cumple la misma función que string

String(x," ") == Space(x)

Saludos  :-*
Título: Re: replace texto centrado
Publicado por: andrer03 en 2 Febrero 2009, 15:50 PM
gracias por tu ayuda Novlucker ya lo porobe y lo adacte con la funcion  replace y funcion bien  ;D

Dim Centrar As Integer
Dim Espacios As String

Centrar = (30 - Len(Text1.Text)) / 2
Espacios = String(Centrar, " ")
Text2.Text = "[" & Espacios & Text1.Text & Espacios & "]"

'titulo
largo = Len(Text2.Text)
busco = "->"
For i = 0 To largo Step 1
busco = busco & " "
Next
txt3.Text = Replace(txt3.Text, "[", " ")
txt3.Text = Replace(txt3.Text, "]", " ")
txt3 = Replace(txt3.Text, busco, "-> " & Text2.Text)


bueno con eso consegui remplazarlo donde quiero y centrado mas o menos tampoco tiene que ser al milimetro con esto me conformo :D thx for all