Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

[SOLUCIONADO] Cortar líneas en txt

Estas en el tema de Cortar líneas en txt en el foro de Visual Basic clásico en Foros del Web. Hola pido ayuda para lo siguiente: Intento cortar 7 líneas de un fichero1.txt y pegarlas en fichero2.txt que no existe. Creo que el fichero2.txt pero ...
  #1 (permalink)  
Antiguo 11/07/2013, 05:10
 
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 6 meses
Puntos: 3
Cortar líneas en txt

Hola pido ayuda para lo siguiente:

Intento cortar 7 líneas de un fichero1.txt y pegarlas en fichero2.txt que no existe.

Creo que el fichero2.txt pero no se continuar.

Crear fichero2.txt:
Dim fso As New FileSystemObject
Dim F As Object
Set F = fso.OpenTextFile(App.Path & "\Fichero2.txt", ForWriting)
F.Close


Si podéis darme alguna orientación de cómo hacerlo os lo agradezco.
Gracias
  #2 (permalink)  
Antiguo 11/07/2013, 14:33
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 4 meses
Puntos: 53
Respuesta: Cortar líneas en txt

Hola:

Lo mas simple que puedes hacer es lo siguiente:

Código vb:
Ver original
  1. Private Sub Command1_Click()
  2.   Dim Registro As String
  3.   Open App.Path & "\Fichero1.txt" For Input As #1   'Abrir para lectura
  4.  Open App.Path & "\Fichero2.txt" For Output As #2  'Abrir para escritura
  5.  While Not EOF(1)              'Bucle hasta llegar a fin de fichero 1
  6.    Line Input #1, Registro     'Leer Registro de fichero 1
  7.    Print #2, Registro          'Grabar Registro en fichero 2
  8.  Wend
  9.   Close #1, #2                  'Cerrar ficheros
  10. End Sub

Con esto copias todo el fichero, tu sabras que comparar para saber que registros debes grabar

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #3 (permalink)  
Antiguo 11/07/2013, 15:00
 
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Cortar líneas en txt

Hola erbuson, gracias por la ayuda.

Me pongo a ello con el ejemplo que has puesto a ver que consigo.

Gracias.
  #4 (permalink)  
Antiguo 11/07/2013, 22:48
 
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Cortar líneas en txt

Hola, lo he conseguido pero de una forma muy enrevesada.

No he sabido seguir el ejemplo que me has dado y me gustaría hacerlo.
Si no te importa explicarmelo un poco más, te lo agradezco.

Pongo el código de como lo he hecho por si le sirve a alguien.

Código:
'Creo un ListbBox List1
'Leo el fichero1.txt del que quiero sacar líneas a partir de
'la línea 7 y copio su contenido al List1

Private Sub Command1_Click()
 Dim s As String, a() As String, i As Integer
 Open App.Path & "\fichero1.txt" For Input As #1
 s = Input(LOF(1), #1)
 Close #1
 a = Split(s, vbNewLine)
 List1.Clear
 For i = 10 To UBound(a)
 List1.AddItem a(i)
 Next i
End Sub


'O leo el fichero1.txt del que quiero sacar líneas sueltas
'y copio su contenido al List1

Private Sub Command1_Click()
 Dim s As String, a() As String, i As Integer
 Open App.Path & "\fichero1.txt" For Input As #1
 s = Input(LOF(1), #1)
 Close #1
 a = Split(s, vbNewLine)
 List1.Clear
 List1.AddItem a(1)
 List1.AddItem a(2)
 List1.AddItem a(4)
 List1.AddItem a(5)
 List1.AddItem a(6)
 List1.AddItem a(7)
 List1.AddItem a(14)
End Sub


'Salvo el contenido extraído en el ListBox en un nuevo fichero2.txt

Private Sub CreoSalvoArchivo_Click()
 Dim i As Integer
 Open App.Path & "\fichero2.txt" For Output As #1

 For i = 0 To List1.ListCount
 Print #1, List1.List(i)
 Next i
 Close #1
End Sub
Un saludo
  #5 (permalink)  
Antiguo 12/07/2013, 08:12
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 4 meses
Puntos: 53
Respuesta: Cortar líneas en txt

Hola:

En mi ejemplo obviamente no sabia las lineas que querias guardar. En tu caso, lo que no tiene sentido es utilizar el List intermedio, puedes hacerlo directamente

Código vb:
Ver original
  1. Private Sub Command1_Click()
  2.  Dim s As String, a() As String, i As Integer
  3.  Open App.Path & "\fichero1.txt" For Input As #1
  4.  s = Input(LOF(1), #1)
  5.  Close #1
  6.  a = Split(s, vbNewLine)
  7.  
  8. Open App.Path & "\fichero2.txt" For Output As #1
  9.   Print #1, a(1)
  10.   Print #1, a(2)
  11.   Print #1, a(4)
  12.   Print #1, a(5)
  13.   Print #1, a(6)
  14.   Print #1, a(7)
  15.   Print #1, a(14)
  16. Close #1
  17. End Sub

En mi ejemplo habrias tenido que poner un contador para saber que numero de linea estabas leyendo y caso de querer guardarla hacerlo.

Por ejemplo asi:

Código vb:
Ver original
  1. Private Sub Command1_Click()
  2.   Dim Registro As String, Linea As Integer
  3.   Open App.Path & "\Fichero1.txt" For Input As #1   'Abrir para lectura
  4.  Open App.Path & "\Fichero2.txt" For Output As #2  'Abrir para escritura
  5.  While Not EOF(1)              'Bucle hasta llegar a fin de fichero 1
  6.    Line Input #1, Registro     'Leer Registro de fichero 1
  7.    Linea = Linea + 1
  8.     Select Case Linea
  9.       Case = 1, 2, 4, 5, 6, 7, 14
  10.         Print #2, Registro          'Grabar Registro en fichero 2
  11.    End Select
  12.   Wend
  13.   Close #1, #2                  'Cerrar ficheros
  14. End Sub

Es sólo una de tantas posibilidades.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #6 (permalink)  
Antiguo 12/07/2013, 08:44
 
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Cortar líneas en txt

Hola, gracias por la corrección y por la explicación de tu código.

Un saludo

Etiquetas: cortar, txt
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:46.