Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Leer una linea completa de un archivo de texto (http://www.forosdelweb.com/f29/leer-linea-completa-archivo-texto-595694/)

german_martin 11/06/2008 11:40

Leer una linea completa de un archivo de texto
 
Estimados,
Actualmente estoy haciendo una aplicacion en VB.2005 que busca en unos archivos txt la palabra error. Pero lo que yo necesito es que me devuelva la linea completa donde esta la palabra error, tambien (si se puede) que me devuelva la linea anterior y posteror. :'(

Muchas gracias!!
:adios:

Por las dudas les dejo mi humilde codigo:

Try
'Lo siguiente Busca en un directorio archivos que contengan una cadena de texto determinada


Dim Archivo As System.Collections.ObjectModel.ReadOnlyCollection( Of String)
' busca "Error" en un solo nivel ( SearchTopLevelOnly ) en el directorio c:
Archivo = My.Computer.FileSystem.FindInFiles( _
"C:\Utiles\LOGS", _
"Error", _
True, _
FileIO.SearchOption.SearchTopLevelOnly)
' recorre la lista
For Each name As String In Archivo
' Agrega
ListBox1.Items.Add(name)
Next
' error
Catch oe As Exception
MsgBox(oe.Message, MsgBoxStyle.Critical)
End Try

Peterpay 11/06/2008 11:49

Respuesta: Leer una linea completa de un archivo de texto
 
streamreader leer=new StreamReader(file);
string linea=leer.ReadLine();
while(linea!=null)
{
if(linea.Contains("error") )
return linea;
linea=leer.ReadLine();

}

german_martin 11/06/2008 12:01

Respuesta: Leer una linea completa de un archivo de texto
 
Muchas gracias peterpay!!
Pero en visual 2005 no lo sabras no?
Soy novatito en todo esto :)

Peterpay 11/06/2008 12:08

Respuesta: Leer una linea completa de un archivo de texto
 
pues no hay mucho cambio

Dim line As String
Dim leer As System.IO.StreamReader = New System.IO.StreamReader(ruta)
line = leer.ReadLine()
While line <> Nothing
If line.Contains("error") Then
Return line
End If
line = leer.ReadLine()
End While
leer.Close()

german_martin 11/06/2008 12:27

Respuesta: Leer una linea completa de un archivo de texto
 
muchas gracias!
ahi mas o menos pude entender ademas busque en el msdn como se usa el streamreader.
Ahora solo me queda una cosa, en la linea de Return me devuelve:
Return statement in a sub or a set cannot return a value

tu sabes que puede ser?

Peterpay 11/06/2008 12:29

Respuesta: Leer una linea completa de un archivo de texto
 
porq en tu sub no tienes un parametro de retorno te falta agregarle

sub ...... as String
......
end sub

german_martin 11/06/2008 12:44

Respuesta: Leer una linea completa de un archivo de texto
 
Sip el SUB etc etc esta.
Lo que tuve que hacer fue dejar el Return solo quedando algo asi.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim stringReader As String
Dim fileReader As System.IO.StreamReader
fileReader = My.Computer.FileSystem.OpenTextFileReader("C:\Util es\prueba.txt")
stringReader = fileReader.ReadLine()
While stringReader <> Nothing
If stringReader.Contains("ERROR") Then
Return
End If
stringReader = fileReader.ReadLine()
Label1.Text = ("aca hay error " & stringReader)
End While


fileReader.Close()

End Sub



MUCHAS GRACIAS!!!
Saludos a Mexico desde Argentina y sus paros agropecuarios alpedisimos.

german_martin 11/06/2008 13:23

Respuesta: Leer una linea completa de un archivo de texto
 
Ahora lo que me pasa es que cuando pasa por un renglon vacio, ej:

====
HOLA
====
<--------- (este es renglon vacio)

El mundo se esta recalentando


el While sale, se termina...
Lo voy a investigar esta noche pero si se te ocurre algo rapido te lo agradeceria.
Que termines bien el miercoles :aplauso:


German

Peterpay 11/06/2008 13:34

Respuesta: Leer una linea completa de un archivo de texto
 
podrias hacer mientras While(reader.Read()) o alguna condicion referente al fin de archivo y no a la nulidad.

SOFT2k 16/06/2008 10:39

Respuesta: Leer una linea completa de un archivo de texto
 
Podrías hacer:

Using Lector As New StreamReader("Ruta y nombre del archivo")
Dim Linea As String

While Lector.EndOfStream = False
Linea = Lector.ReadLine()
If Linea.Contains("ERROR") Then
'acá podes llamar a una función que haga algo
End If
End While

End Using


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

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.