Foros del Web » Programación para mayores de 30 ;) » .NET »

Leer una linea completa de un archivo de texto

Estas en el tema de Leer una linea completa de un archivo de texto en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 11/06/2008, 11:40
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 132
Antigüedad: 18 años, 2 meses
Puntos: 0
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!!


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
  #2 (permalink)  
Antiguo 11/06/2008, 11:49
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 17 años, 2 meses
Puntos: 87
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();

}
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 11/06/2008, 12:01
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 132
Antigüedad: 18 años, 2 meses
Puntos: 0
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 :)
  #4 (permalink)  
Antiguo 11/06/2008, 12:08
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 17 años, 2 meses
Puntos: 87
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()
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #5 (permalink)  
Antiguo 11/06/2008, 12:27
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 132
Antigüedad: 18 años, 2 meses
Puntos: 0
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?
  #6 (permalink)  
Antiguo 11/06/2008, 12:29
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 17 años, 2 meses
Puntos: 87
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
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #7 (permalink)  
Antiguo 11/06/2008, 12:44
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 132
Antigüedad: 18 años, 2 meses
Puntos: 0
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.
  #8 (permalink)  
Antiguo 11/06/2008, 13:23
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 132
Antigüedad: 18 años, 2 meses
Puntos: 0
De acuerdo 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


German
  #9 (permalink)  
Antiguo 11/06/2008, 13:34
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 17 años, 2 meses
Puntos: 87
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.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #10 (permalink)  
Antiguo 16/06/2008, 10:39
Avatar de SOFT2k  
Fecha de Ingreso: junio-2008
Mensajes: 5
Antigüedad: 16 años, 5 meses
Puntos: 0
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
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 14:00.