Título: Leer linea de un archivo de texto
Publicado por: SheKeL_C$ en 3 Abril 2010, 18:06 pm
En un archivo de texto (txt) tengo Lo que quiero es leer la linea que yo quiera de este modo 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
Título: Re: Leer linea de un archivo de texto
Publicado por: Hasseds 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. 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
Título: Re: Leer linea de un archivo de texto
Publicado por: SheKeL_C$ 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. 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
Título: Re: Leer linea de un archivo de texto
Publicado por: BlackZeroX en 4 Abril 2010, 03:01 am
Option Explicit Sub main() Dim StrFileData As String GetLineFromFile "c:\liberar memoria ram.bas", 2, StrFileData MsgBox StrFileData GetLineFromFile "c:\liberar memoria ram.bas", 8, StrFileData MsgBox StrFileData GetLineFromFile "c:\liberar memoria ram.bas", 10, StrFileData MsgBox StrFileData End Sub Public Function GetLineFromFile(StrFile As String, NumberFile As Long, ByRef StrLine As String) As Long Dim i As Long Dim StrByte As String * 1 Dim ff As Integer If Dir(StrFile, vbArchive) <> "" Then ff = FreeFile Open StrFile For Input As #ff Do i = i + 1 If i < NumberFile Then Line Input #ff, StrByte Else Line Input #ff, StrLine End If Loop Until i = NumberFile Or EOF(ff) = True GetLineFromFile = Len(StrLine) Close #ff End If End Function
Dulces Lunas!ˇ.
Título: Re: Leer linea de un archivo de texto
Publicado por: seba123neo 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: Private Function DevolverLinea(ByVal pArchivo As String, ByVal pLinea As Long) As String Dim i As Integer Dim vLinea As String i = FreeFile Open pArchivo For Input As #i vLinea = Input$(LOF(i), #i) Close #i DevolverLinea = Split(vLinea, vbNewLine)(pLinea) End Function Private Sub Command1_Click() MsgBox DevolverLinea("c:\hola.txt", 63) End Sub
saludos.
|