Autor
|
Tema: Borrar última línea de un textbox (Leído 12,088 veces)
|
|
extreme69
Desconectado
Mensajes: 178
Be BlackHat but don't forget your principles.
|
Ta, olvidense, lo hago con un listbox y a la *****
|
|
|
En línea
|
|
|
|
79137913
Desconectado
Mensajes: 1.169
4 Esquinas
|
HOLA!!! Private sub DeleteLine (XLine as long, TXT as TextBox) Dim Aux() as string Aux = Split(TXT.Text, VbNewLine) Txt.text=Vbnullstring For X = 0 to ubound(aux) if X <> XLine then txt.text = txt.text & Aux(x) & VbNewLine Next End Sub
(no lo testee pero debe funcinar) GRACIAS POR LEER!!!
|
|
« Última modificación: 11 Mayo 2012, 20:13 pm por 79137913 »
|
En línea
|
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!" "La peor de las ignorancias es no saber corregirlas"
79137913 *Shadow Scouts Team*
|
|
|
Saberuneko
|
Ta, olvidense, lo hago con un listbox y a la ***** Así lo arreglé yo en su momento :3
|
|
|
En línea
|
|
|
|
Deeo Raiser
Desconectado
Mensajes: 22
Se todo Sobre Ti.
|
Hola extreme69, como estas ? Aca tengo tu solución testeada , estuve mirando el codigo de 79137913 y no me funciono , así que le hice unas modificaciones y te agrego 2 funciones para poder contar las lineas de los TextBox o algún String ELIMINAR UNA LINEA POR SU NUMERO Dim Lineas() As String 'Auxiliar donde se guardan las lineas Dim I As Long 'Variable del contador Lineas = Split(Texto.Text, vbNewLine) 'Borro el contenido de Texto Texto.Text = vbNullString For I = 0 To UBound(Lineas) If I <> NumeroLinea Then 'Si la linea es distinta a la que quiero eliminar la agrego, sino la omito Texto.Text = Texto.Text & Lineas(I) & vbCrLf End If Next Borrar_Linea = Texto.Text
CONTAR LINEAS EN UN STRING [FORMA ABSURDA]Private Function Contar_Lineas_A_Lo_Loco(Texto As TextBox) 'HAGO UN FOR QUE RECORRA TODOS LOS CARACTERES DEL TEXTO For I = 0 To Len(Texto.Text) 'SI EL CARACTER LEIDO ES UN SALTO DE LINEA CON RETORNO DE CARRO, CUENTO UNA LINEA. If Mid(Texto.Text, I, 1) = vbCrLf Then Contar_Lineas = Contar_Lineas + 1 End If Next End Function
CONTAR LINEAS EN UN STRING [FORMA GROSA]Private Function Contar_Lineas_A_Lo_Pro(Texto As TextBox) As Long Dim Lineas() As String 'Auxiliar donde se guarda los saltos de linea 'Corto el texto por los saltos de linea.... Lineas = Split(Texto.Text, vbNewLine) 'Y luego cuento la dimencion de la matriz Contar_Lineas_A_Lo_Pro = UBound(Lineas) End Function
Bueno, eso es todo, espero que te sea de utilidad. Saludos
|
|
« Última modificación: 11 Mayo 2012, 18:39 pm por Deeo Raiser »
|
En línea
|
"Recuerda siempre que tu propia resolución de triunfar es mas importante que cualquier otra cosa." Abraham Lincoln
|
|
|
79137913
Desconectado
Mensajes: 1.169
4 Esquinas
|
HOLA!!! ... Mi codigo funciona el problema es que no le puse el End Sub al final por eso no te andaba. En tu codigo la unica diferencia es que expandiste mi if.Aparte... Tu codigo para contar lineas es erroneo, aca abajo lo corregí. Private Function XLines(TXT As TextBox) As Long XLineas = UBound(Split(TXT.Text, vbNewLine))+1 End Function
Primero, mucho codigo sin sentido ahi arriba lo optimice al maximo. Aparte como el array empieza de 0 siempre tu codigo va a contar una linea menos por eso el +1. Igual me agrada que haya alguien que se anime a postear codigo, falta gente asi en este subforo. GRACIAS POR LEER!!!
|
|
« Última modificación: 11 Mayo 2012, 20:20 pm por 79137913 »
|
En línea
|
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!" "La peor de las ignorancias es no saber corregirlas"
79137913 *Shadow Scouts Team*
|
|
|
Deeo Raiser
Desconectado
Mensajes: 22
Se todo Sobre Ti.
|
Primero, mucho codigo sin sentido ahi arriba lo optimice al máximo.
La idea es que el código sea fácil y rápidamente legible, en cuanto a "mucho codigo sin sentido", no lo comprendo, el cogido esta y cumple una función, en poner un if en una sola linea no se optimiza nada, mas que ahorrar renglones. En cuanto a tu código, no solo le falto en End Sub, declaraste un procedimiento y le pasaste parámetros en ves de declarar una función, tampoco devuelve ningún valor, ademas faltan declarar variables. La idea estaba y funcionaba, pero el código estaba incompleto. Tu codigo para contar lineas es erroneo, aca abajo lo corregí. Aparte como el array empieza de 0 siempre tu codigo va a contar una linea menos por eso el +1.
Eso es correcto, no lo tuve en cuenta- Igual me agrada que haya alguien que se anime a postear codigo, falta gente asi en este subforo.
De este foro aprendí mucho y quiero (aunque sean pequeñeces) devolver algo. Saludos y Gracias Por leer. !!!
|
|
|
En línea
|
"Recuerda siempre que tu propia resolución de triunfar es mas importante que cualquier otra cosa." Abraham Lincoln
|
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
La idea es que el código sea fácil y rápidamente legible, en cuanto a "mucho codigo sin sentido", no lo comprendo, el cogido esta y cumple una función, en poner un if en una sola linea no se optimiza nada, mas que ahorrar renglones.
Eso es subjetivo, aunque depende que tanto lleves programando y ya te acostumbres a expresiones amontonadas En cuanto a tu código, no solo le falto en End Sub, declaraste un procedimiento y le pasaste parámetros en ves de declarar una función, tampoco devuelve ningún valor, ademas faltan declarar variables. La idea estaba y funcionaba, pero el código estaba incompleto.
Ni idea como estaba el código antes de la edición, pero tampoco hace falta que sea una función, con una simple llamada y ya. No falta ninguna variable Ademas de que tu código no pusiste la firma de la función y sin eso esta linea Borrar_Linea = Texto.Text Esta al pedo (y NumeroLinea sin declarar ) Ya si quiere mucha performance (a.k.a Editor de codigo o editor (casi procesador) de texto) puede utilizar el Split que gano en los retos y la clase para Concatenar de manera rápida
|
|
|
En línea
|
|
|
|
burbu_1
Desconectado
Mensajes: 159
hamen gaoz
|
CONTAR LINEAS EN UN STRING [FORMA ABSURDA]Private Function Contar_Lineas_A_Lo_Loco(Texto As TextBox) 'HAGO UN FOR QUE RECORRA TODOS LOS CARACTERES DEL TEXTO For I = 0 To Len(Texto.Text) 'SI EL CARACTER LEIDO ES UN SALTO DE LINEA CON RETORNO DE CARRO, CUENTO UNA LINEA. If Mid(Texto.Text, I, 1) = vbCrLf Then Contar_Lineas = Contar_Lineas + 1 End If Next End Function
la forma no me parece tan absurda, pero tiene algún error 1º En el mid empiezas a contar desde el caracter 0 y debería ser desde el 1, si no te tira error 2º Como tú mismo explicas, buscas 1 salto de linea y 1 retorno de carro.... eso son dos caracteres 3º como te pasó con el código pro, empiezas contando por 0 y no por 1 Private Function Contar_Lineas_A_Lo_Loco(Texto As TextBox) Contar_Lineas = 1 'HAGO UN FOR QUE RECORRA TODOS LOS CARACTERES DEL TEXTO For I = 1 To Len(Texto.Text) 'SI EL CARACTER LEIDO ES UN SALTO DE LINEA CON RETORNO DE CARRO, CUENTO UNA LINEA. If Mid(Texto.Text, I, 2) = vbCrLf Then Contar_Lineas = Contar_Lineas + 1 End If Next End Function
Por último en ambos códigos añadís al final del texto original una nueva linea... y si llamas varias veces a la función se van a ir acumulando.... texto.text = left( texto.text, len(texto.text)-2 )
Saludos.
|
|
|
En línea
|
|
|
|
79137913
Desconectado
Mensajes: 1.169
4 Esquinas
|
HOLA!!! La idea es que el código sea fácil y rápidamente legible, en cuanto a "mucho codigo sin sentido", no lo comprendo, el cogido esta y cumple una función, en poner un if en una sola linea no se optimiza nada, mas que ahorrar renglones. En cuanto a tu código, no solo le falto en End Sub, declaraste un procedimiento y le pasaste parámetros en ves de declarar una función, tampoco devuelve ningún valor, ademas faltan declarar variables. La idea estaba y funcionaba, pero el código estaba incompleto.
Empiezo enumerar... Codigo sin sentido por que: Dim Lineas() As String 'Auxiliar donde se guardan las lineas Dim I As Long 'Correcto Lineas = Split(Texto.Text, vbNewLine) 'Borro el contenido de Texto Texto.Text = vbNullString For I = 0 To UBound(Lineas) If I <> NumeroLinea Then 'usas 3 renglones cuando se deberia usar uno ya que solo se hace una llamada Texto.Text = Texto.Text & Lineas(I) & vbCrLf End If Next Borrar_Linea = Texto.Text ' sin sentido totalmente
y por este otro: Private Function Contar_Lineas_A_Lo_Pro(Texto As TextBox) As Long Dim Lineas() As String' gastas un array mas osea mas memoria y 3 lineas en vez de 1 como abajo Lineas = Split(Texto.Text, vbNewLine) 'Y luego cuento la dimencion de la matriz Contar_Lineas_A_Lo_Pro = UBound(Lineas) End Function
contra: Private Function XLines(TXT As TextBox) As Long XLineas = UBound(Split(TXT.Text, vbNewLine))+1 End Function
Para elmiminar una linea no es necesario que sea una funcion, un procedimiento alcanza ya que no se debe devlver retorno alguno. PD: Raul el codigo antes de la modificacion era asi: Private sub DeleteLine (XLine as long, TXT as TextBox) Dim Aux() as string Aux = Split(TXT.Text, VbNewLine) Txt.text=Vbnullstring For X = 0 to ubound(aux) if X <> XLine then txt.text = txt.text & Aux(x) & VbNewLine Next
GRACIAS POR LEER!!!
|
|
|
En línea
|
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!" "La peor de las ignorancias es no saber corregirlas"
79137913 *Shadow Scouts Team*
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
tomar de un textbox, cambiar y pegar en otro textbox
Programación Visual Basic
|
Nakp
|
9
|
5,424
|
2 Septiembre 2006, 18:42 pm
por Nakp
|
|
|
[C#] borrar TextBox's en un bucle
.NET (C#, VB.NET, ASP)
|
SRVAM
|
7
|
12,667
|
7 Enero 2010, 00:13 am
por SRVAM
|
|
|
¿Como crear un textbox y grabar lo que se puse en tal textbox en visual basic 8?
Programación Visual Basic
|
El anonimato
|
3
|
6,799
|
25 Noviembre 2010, 16:10 pm
por NightMore
|
|
|
¿Borrar linea 1 de textbox multilinea y que la 2ª, suba a la primera?
.NET (C#, VB.NET, ASP)
|
usuario oculto
|
5
|
10,653
|
4 Agosto 2011, 19:48 pm
por usuario oculto
|
|
|
Borrar texto de un textbox
.NET (C#, VB.NET, ASP)
|
BrokerJoker
|
4
|
6,772
|
30 Enero 2012, 20:09 pm
por Sk9ITk5Z
|
|