• Sábado 20 de Abril de 2024, 09:58

Autor Tema:  Borrar Linea De Texto  (Leído 10782 veces)

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Borrar Linea De Texto
« en: Miércoles 1 de Diciembre de 2004, 00:18 »
0
EN UN TEXT CON 5 LINEAS, COMO SE PUEDE BORRAR UNA LINEA Y DEJAR LAS OTRAS EN EL TEXT
GRACIAS CHAO.
El pasado son solo recuerdos, el futuro son solo sueños

Cyclop

  • Miembro MUY activo
  • ***
  • Mensajes: 323
    • Ver Perfil
    • http://www.geocities.com/icotext/spanish/
Re: Borrar Linea De Texto
« Respuesta #1 en: Miércoles 1 de Diciembre de 2004, 02:40 »
0
Por que mejor no lo pones en un listbox y al final lo guardas en un texto.

Solo haces

Código: Text
  1. sSting = ""
  2. For nItem = 0 To List1.ListCount-1
  3.       sString = sString + List1.List(nItem)
  4. Next
  5.  
  6.  

Salu2

Cyclop
Icotext Evolution v0.5 para los amantes del ASCII Art
http]

Cyclop

  • Miembro MUY activo
  • ***
  • Mensajes: 323
    • Ver Perfil
    • http://www.geocities.com/icotext/spanish/
Re: Borrar Linea De Texto
« Respuesta #2 en: Miércoles 1 de Diciembre de 2004, 02:48 »
0
Otra forma:

Código: Text
  1. Function BorraLinea(ByVal sTexto As String, ByVal nLinea As Integer) As String
  2.             aLista = Split(sTexto,vbCrLf)
  3.             For nItem = nLinea To UBound(aLista) - 1
  4.                  aLista(nItem) = aLista(nItem + 1)
  5.             Next
  6.             Redim Preseve aLista(UBound(aLista) - 1)
  7.             BorraLinea = Join(aLista, vbCrLf)
  8. End Function
  9.  
  10.  

No se si funcionara ... pero bueno, mas o menos te dara una idea

Salu2

Cyclop
Icotext Evolution v0.5 para los amantes del ASCII Art
http]

Sagutxo

  • Miembro MUY activo
  • ***
  • Mensajes: 320
    • Ver Perfil
Re: Borrar Linea De Texto
« Respuesta #3 en: Miércoles 1 de Diciembre de 2004, 10:58 »
0
Salu2.

   Solo un comentario: ¿No es mas fácil interactuar con un .ini que con un .txt?

 :comp:
Mi mujer tiene un físico bárbaro!!!. Einstein.

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Borrar Linea De Texto
« Respuesta #4 en: Miércoles 1 de Diciembre de 2004, 16:50 »
0
NO TAL VEZ NO ME EXPLIQUE BIEN AQUI VA:

RadicalEd
Programa
En VB y C++
POR QUE NO
SABE NADA MAS

SOLAMENTE QUIERO QUE SE BORRE UNA DE ESAS LINEAS QUE HAYAN EN UN TEXT MULTILINE VERTICAL.
ME HAGO ENTENDER?

GRACIAS CHAO.
El pasado son solo recuerdos, el futuro son solo sueños

Sagutxo

  • Miembro MUY activo
  • ***
  • Mensajes: 320
    • Ver Perfil
Re: Borrar Linea De Texto
« Respuesta #5 en: Miércoles 1 de Diciembre de 2004, 17:23 »
0
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.
Mi mujer tiene un físico bárbaro!!!. Einstein.

tiquinho

  • Miembro activo
  • **
  • Mensajes: 96
    • Ver Perfil
Re: Borrar Linea De Texto
« Respuesta #6 en: Miércoles 1 de Diciembre de 2004, 17:45 »
0
¿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
  1. Dim CBorrar as String
  2.  
  3. CBorrar= "POR QUE NO" & vbCrLf              'Esta es la línea que quieres borrar
  4.  
  5. text1.text = Replace(Text1.Text, CBorrar, "")
  6.  
  7.  
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
  1. Dim Lineas() as String
  2.  
  3. Lineas = Split(Text1.Text,vbCrLf)
  4. Text1.Text = ""
  5.  
  6. For i=0 to UBound(Lineas)
  7.      if i<>1 then Text1.Text = Text1.Text & Lineas(i) & vbCrLf
  8. Next i
  9.  
  10.  

Bueno, espero que te sirva d algo!  :suerte:

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Borrar Linea De Texto
« Respuesta #7 en: Miércoles 1 de Diciembre de 2004, 18:06 »
0
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
  1.  
  2. 'Eliminar la línea 5, por ejemplo
  3. Const ELIMINAR_LINEA_N = 5#
  4.    
  5. Dim var1 As Variant
  6. var1 = Split(Text1.Text, vbCrLf)
  7.    
  8. Dim i1 As Integer, s1 As String
  9. For i1 = 0 To UBound(var1) - 1
  10.     If ELIMINAR_LINEA_N <> i1 + 1 Then _
  11.     s1 = s1 & var1(i1) & vbCrLf
  12. Next i1
  13. Text1.Text = s1
  14.  
  15.  

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

  • Miembro MUY activo
  • ***
  • Mensajes: 135
    • Ver Perfil
Re: Borrar Linea De Texto
« Respuesta #8 en: Sábado 4 de Diciembre de 2004, 01:43 »
0
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.
Saludos,

Francisco Ayala Pinazo
Lima - Perú