Programación General > Visual Basic 6.0 e inferiores

 Borrar Linea De Texto

<< < (2/2)

Sagutxo:
Salu2.
   Supongo que siempre puedes recurrir a leer de un .txt y copiar en otro .txt, luego solo tendrás que borrar el original y renombrar el creado.

P.D. Tengo la sensación de que esto ya sabes que puedes hacer, pero quieres otra forma, de todas maneras ahí queda :). :whistling:
Agur.

tiquinho:
¿Cómo sabes que línea tienes que borrar?¿Por el número o por lo que contiene?

Suponiendo que sea por lo que contiene puedes hacer un Replace:

--- Código: Text ---Dim CBorrar as String CBorrar= &#34;POR QUE NO&#34; & vbCrLf              'Esta es la línea que quieres borrar text1.text = Replace(Text1.Text, CBorrar, &#34;&#34;)  Con esto sustituyes tu línea por ""(vamos, por nada)
Así te quedan 4 líneas.Si lo que quieres es dejar 5 y la línea en blanco quítale el vbCrLf

Si lo que tienes es el número de línea puedes hacer un Split:
Pej: Borrar la 2ª línea

--- Código: Text ---Dim Lineas() as String Lineas = Split(Text1.Text,vbCrLf)Text1.Text = &#34;&#34; For i=0 to UBound(Lineas)     if i&#60;&#62;1 then Text1.Text = Text1.Text & Lineas(i) & vbCrLfNext i  
Bueno, espero que te sirva d algo!  :suerte:

Brroz:
Hola.

Lo que radical pretende hacer puede ser muy sencillo o complicarse dependiendo de lo siguiente:

Si cada línea de texto en el textbox acaba en dos carácteres Cr y Lf (vbCrLf) y eso es lo que hace que se produzca un salto de línea, la cosa sería fácil, pero si el número de líneas viene dado por un ancho de texto mayor que el ancho del TextBox la cosa se lia un poco más. Y ya si se dan las dos situaciones juntas, puedes volverte loco y te compensará más usar otro control o repasar la lógica de lo que quieres hacer.

Para el primer caso bastaría con algo de este estilo:

--- Código: Text --- 'Eliminar la línea 5, por ejemploConst ELIMINAR_LINEA_N = 5#   Dim var1 As Variantvar1 = Split(Text1.Text, vbCrLf)    Dim i1 As Integer, s1 As StringFor i1 = 0 To UBound(var1) - 1    If ELIMINAR_LINEA_N &#60;&#62; i1 + 1 Then _    s1 = s1 & var1(i1) & vbCrLfNext i1Text1.Text = s1  
Si se da otra situación, tendrías que usar la función TextWidth del TextBox para ir calculando según el texto y su ancho en el control la división por líneas que quedaría (no sé si esto se entiende...). El tema se complica un poco más, y la verdad que estoy a punto de marchar a casa y no tengo tiempo ni ganas de ponerme...

Espero que esto te sirva. Suerte.

Abur.

fap1603:
Puedes utilizar la funcion mid, y leer hasta donde desees o comparar luego o un richtextbox. 10 y 13 son caracteres de final de linea, tb puedes usar eso.

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa