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

Cargar parte de texto desde archivo .txt

Estas en el tema de Cargar parte de texto desde archivo .txt en el foro de Visual Basic clásico en Foros del Web. Buenas tardes amigos foreros, ultimamente he molestado poco ya que no he tenido mayores problemas, ja ja. Estoy teniendo un problemita con la carga de ...
  #1 (permalink)  
Antiguo 26/12/2016, 17:17
 
Fecha de Ingreso: marzo-2011
Ubicación: Florida-Uruguay
Mensajes: 74
Antigüedad: 13 años, 8 meses
Puntos: 4
Exclamación Cargar parte de texto desde archivo .txt

Buenas tardes amigos foreros, ultimamente he molestado poco ya que no he tenido mayores problemas, ja ja. Estoy teniendo un problemita con la carga de un listbox, desde un archivo .txt
tengo el siguiente codigo:

Código HTML:
Private Sub Cargartxt()
Me.List1.Clear
Dim BuscarDocumento As String

Dim strRuta As String 'declaras una variable en donde pones la ruta del archivo

Dim strLinea As String 'declaras otra variable en donde pones la linea que estas leyendo

Dim StrMesDeRecibo As String
StrMesDeRecibo = FormLeerRecibos.ListMeses.Text

    
strRuta = "C:\Pryecto recibo\Recibos" & StrMesDeRecibo & ""
    
Open strRuta For Input As #1 'Con esto abres el archivo

    While Not EOF(1)
        Line Input #1, strLinea 'y con esto lees linea por linea
            If InStr(strLinea, TextDoc) <> 0 Then
                List1.AddItem strLinea
            End If
    Wend
Close #1 'con esto se cierra el archivo
End Sub
Lo que deseo hacer es cargar 5 lineas anteriores y hasta 36 posteriores de encontrado un documento. A alguien se le ocurre cómo salir de ese problemita? Gracias por vuestro tiempo...
  #2 (permalink)  
Antiguo 28/09/2017, 14:07
 
Fecha de Ingreso: marzo-2011
Ubicación: Florida-Uruguay
Mensajes: 74
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: Cargar parte de texto desde archivo .txt

Estimados amigos foreros.... El código al final lo he dejado asíy me funciona bien:

Código:
        
For i = 1 To miColeccion.Count - 1
            If InStr(miColeccion(i), TextDoc) <> 0 Then
                For j = i - 5 To i + 27
                    List1.AddItem miColeccion(j)
                Next j
            End If
        Next i
Pero quisiera, ya que he colocado un listbox con casilla de verificación al lado del listbox a donde extrigo el recibo, extraer el recibo del mismo funcionario para cada casilla del listbox que halla seleccionado, o sea para cada mes seleccionado. Pero no logro que me funcione, tal vez estoy colocando mal la sentencia....como les parece que lo solucione?

Código:
Private Sub Cargartxt()
On Error Resume Next
If (TextDoc < 1) Then
MsgBox "Debe digitar un documento para continuar"
Else


Dim BuscarDocumento As String
Dim strRuta As String 'declaras una variable en donde pones la ruta del archivo
Dim i As Long
Dim e As Long
Dim j As Long
Dim x As Long

      

Dim strLinea As String 'declaras otra variable en donde pones la linea que estas leyendo
Dim StrMesDeRecibo As String
    StrMesDeRecibo = FormLeerRecibos.ListMeses.Text

Dim miColeccion As New Collection

strRuta = "C:\Pryecto recibo\Recibos\" & StrMesDeRecibo & ""


'----------------------------------------------

For x = 0 To ListMeses.ListCount - 1
    If ListMeses.Selected(x) = True Then
        Open strRuta For Input As #1 'Con esto abres el archivo
        Do While Not EOF(1)
            Line Input #1, strLinea 'y con esto lees linea por linea
            miColeccion.Add strLinea
        Loop
            
        For i = 1 To miColeccion.Count - 1
            If InStr(miColeccion(i), TextDoc) <> 0 Then
                For j = i - 5 To i + 27
                    List1.AddItem miColeccion(j)
                Next j
            End If
        Next i
        Close #1 'con esto se cierra el archivo
    End If
Next x

End If

End Sub

Etiquetas: .txt, listbox
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 16:18.