elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Leer linea de un archivo de texto
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Leer linea de un archivo de texto  (Leído 10,149 veces)
SheKeL_C$


Desconectado Desconectado

Mensajes: 549


_-=[Sh3K3L_C$]=-_


Ver Perfil
Leer linea de un archivo de texto
« en: 3 Abril 2010, 18:06 pm »

En un archivo de texto (txt) tengo

Código:
coche
moto
camion
avion

Lo que quiero es leer la linea que yo quiera de este modo

Código:
Open "C:\datos.txt" For Input As #1
    'me posiciono en la segunda o tercera o la que sea linea
    Line Input #1, linea
    MsgBox linea
Close #1

He probado con seek, pero el parametro que se le pasa seria el numero de caracteres y no el numero de linea.

Creo que hace tiempo pregunte lo mismo pero no encuentro el post


En línea

Hasseds

Desconectado Desconectado

Mensajes: 145



Ver Perfil
Re: Leer linea de un archivo de texto
« Respuesta #1 en: 3 Abril 2010, 20:08 pm »

Hola, yo usaria un archivos de acceso aleatorio en tu caso, pero si nesecitas  hacerlo con archivos de texto te dejo un ejemplo, en caso que te sirva lo tenés que optimizar de acuerdo a tus necesidades.

Código:

Option Explicit

Private Sub Form_Load()
  MsgBox LeerLinea(1)
  MsgBox LeerLinea(4)
  MsgBox LeerLinea(5)
  MsgBox LeerLinea(45)
End Sub

Function LeerLinea(numeroLinea As Integer) As String

  If Dir("C:\datos.txt") <> "" Then
    Open "C:\datos.txt" For Input As #1
      Dim i As Integer
      For i = 1 To numeroLinea
        If Not EOF(1) Then
          Line Input #1, LeerLinea
        Else
          LeerLinea = "EOF"
        End If
      Next
    Close #1
  Else
    LeerLinea = "no hay archivo"
  End If

End Function





En línea

Sergio Desanti
SheKeL_C$


Desconectado Desconectado

Mensajes: 549


_-=[Sh3K3L_C$]=-_


Ver Perfil
Re: Leer linea de un archivo de texto
« Respuesta #2 en: 3 Abril 2010, 20:47 pm »

Hola, yo usaria un archivos de acceso aleatorio en tu caso, pero si nesecitas  hacerlo con archivos de texto te dejo un ejemplo, en caso que te sirva lo tenés que optimizar de acuerdo a tus necesidades.

Código:

Option Explicit

Private Sub Form_Load()
  MsgBox LeerLinea(1)
  MsgBox LeerLinea(4)
  MsgBox LeerLinea(5)
  MsgBox LeerLinea(45)
End Sub

Function LeerLinea(numeroLinea As Integer) As String

  If Dir("C:\datos.txt") <> "" Then
    Open "C:\datos.txt" For Input As #1
      Dim i As Integer
      For i = 1 To numeroLinea
        If Not EOF(1) Then
          Line Input #1, LeerLinea
        Else
          LeerLinea = "EOF"
        End If
      Next
    Close #1
  Else
    LeerLinea = "no hay archivo"
  End If

End Function





Gracias por tu respuesta.. pero yo buscaba si existia un comando parecido a seek para hacerlo. Igualmente gracias
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Leer linea de un archivo de texto
« Respuesta #3 en: 4 Abril 2010, 03:01 am »


Código
  1.  
  2. Option Explicit
  3.  
  4. Sub main()
  5. Dim StrFileData         As String
  6.    GetLineFromFile "c:\liberar memoria ram.bas", 2, StrFileData
  7.    MsgBox StrFileData
  8.    GetLineFromFile "c:\liberar memoria ram.bas", 8, StrFileData
  9.    MsgBox StrFileData
  10.    GetLineFromFile "c:\liberar memoria ram.bas", 10, StrFileData
  11.    MsgBox StrFileData
  12. End Sub
  13.  
  14. Public Function GetLineFromFile(StrFile As String, NumberFile As Long, ByRef StrLine As String) As Long
  15. Dim i                   As Long
  16. Dim StrByte             As String * 1
  17. Dim ff                  As Integer
  18.    If Dir(StrFile, vbArchive) <> "" Then
  19.        ff = FreeFile
  20.        Open StrFile For Input As #ff
  21.            Do
  22.                i = i + 1
  23.                If i < NumberFile Then
  24.                    Line Input #ff, StrByte
  25.                Else
  26.                    Line Input #ff, StrLine
  27.                End If
  28.            Loop Until i = NumberFile Or EOF(ff) = True
  29.            GetLineFromFile = Len(StrLine)
  30.        Close #ff
  31.    End If
  32. End Function
  33.  
  34.  

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Leer linea de un archivo de texto
« Respuesta #4 en: 4 Abril 2010, 16:20 pm »

otra forma es hacer un Split() al contenido del archivo con vbNewLine y leer la posicion determinada del array....por ejemplo:

Código
  1. Private Function DevolverLinea(ByVal pArchivo As String, ByVal pLinea As Long) As String
  2.    Dim i As Integer
  3.    Dim vLinea As String
  4.  
  5.    i = FreeFile
  6.    Open pArchivo For Input As #i
  7.        vLinea = Input$(LOF(i), #i)
  8.    Close #i
  9.    DevolverLinea = Split(vLinea, vbNewLine)(pLinea)
  10. End Function
  11.  
  12. Private Sub Command1_Click()
  13.    MsgBox DevolverLinea("c:\hola.txt", 63)
  14. End Sub
  15.  

saludos.
« Última modificación: 4 Abril 2010, 18:17 pm por seba123neo » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Modificar linea en archivo de texto
PHP
Riki_89D 4 4,412 Último mensaje 8 Diciembre 2010, 17:11 pm
por Riki_89D
Consulta~Editar archivo de texto en una linea especifica.
PHP
volteo0101 3 6,697 Último mensaje 9 Febrero 2011, 07:19 am
por volteo0101
C# Leer y guardar cada linea de un archivo .txt en una nueva variable
.NET (C#, VB.NET, ASP)
extreme69 6 28,798 Último mensaje 22 Julio 2011, 00:54 am
por $Edu$
[BATCH] Editar porcion de linea de archivo de texto
Scripting
WalterPerez 2 4,769 Último mensaje 25 Septiembre 2011, 05:39 am
por WHK
Problema al leer 2ª linea archivo
Programación C/C++
Kaxperday 0 1,510 Último mensaje 9 Agosto 2014, 13:16 pm
por Kaxperday
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines