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

Thread lectura de archivo

Estas en el tema de Thread lectura de archivo en el foro de .NET en Foros del Web. Hola, recién iniciado en .NET, me gustaría saber si alguien puede pasarme un link, un manual o un tutorial de .NET o si alguien puede ...
  #1 (permalink)  
Antiguo 20/06/2009, 15:57
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 19 años, 10 meses
Puntos: 0
Thread lectura de archivo

Hola, recién iniciado en .NET, me gustaría saber si alguien puede pasarme un link, un manual o un tutorial de .NET o si alguien puede explicarme los thread para poder hacer una lectura de un fichero, mediante thread.

Muchas gracias.
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #2 (permalink)  
Antiguo 20/06/2009, 20:34
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Thread lectura de archivo

Acá hay un buen manual
http://www.myforonet.hostei.com/viewtopic.php?f=16&t=14

Ahora que tipos de archivos deseas subir, un excel, csv???


Saludos,
  #3 (permalink)  
Antiguo 21/06/2009, 20:44
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Thread lectura de archivo

La lectura es de archivos txt con contenido XML.

Muchas gracias, jaullo.
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #4 (permalink)  
Antiguo 22/06/2009, 06:35
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Thread lectura de archivo

Espero lo siguiente te ayude

http://www.elguille.info/colabora/pu...io_LeerXml.htm
http://es.debugmodeon.com/articulo/l...l-desde-vb-net
http://www.myforonet.hostei.com/viewtopic.php?f=16&t=15
  #5 (permalink)  
Antiguo 23/06/2009, 10:59
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Thread lectura de archivo

Muchas gracias jaullo.

Lo reviso.
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #6 (permalink)  
Antiguo 23/06/2009, 15:06
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Thread lectura de archivo

Es un placer ayudar.
  #7 (permalink)  
Antiguo 24/06/2009, 13:37
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Thread lectura de archivo

Jaullo, y ¿para crear el thread de lectura de archivos?

Los links que me pasaste son para el tratamiento del xml, sin embargo, no esta el como crear el thread de lectura.

gracias
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #8 (permalink)  
Antiguo 24/06/2009, 17:41
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Thread lectura de archivo

He creado un thread:

Cita:
Dim Leer_thread As New System.Threading.Thread(AddressOf Leer_ficheros)
Leer_thread.Start()
Pero me da error en el textbox que tiene la función Leer_ficheros

Cita:
Dim oFile As System.IO.File
Dim oRead As System.IO.StreamReader
Dim EntireFile As String

oRead = oFile.OpenText(b_fich)
EntireFile = oRead.ReadToEnd()
oRead.Close()
TextBox1.Text = TextBox1.Text & EntireFile
TextBox1.Refresh()
Alguien sabe porque me peta el Textbox.

Otra cosa, la sensación que me dá es que es una tontería crear un thread si luego va a llamar a una función.
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #9 (permalink)  
Antiguo 25/06/2009, 18:51
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Thread lectura de archivo

Utilizando el XMLTextReader
Este formato es muy sencillo y para leer el archivo XML debemos hacerlo secuencialmente, línea por línea.

Imports System.IO
Imports System.Xml
Module ParsingUsingXmlTextReader
Sub Main()
Dim m_xmlr As XmlTextReader
'Creamos el XML Reader
m_xmlr = New XmlTextReader("C:\XMLPrueba.xml")

'Desabilitamos las lineas en blanco,
'ya no las necesitamos
m_xmlr.WhiteSpaceHandling = WhiteSpaceHandling.NONE

'Leemos el archivo y avanzamos al tag de usuarios
m_xmlr.Read()

'Leemos el tag usuarios
m_xmlr.Read()

'Creamos la secuencia que nos permite
'leer el archivo
While Not m_xmlr.EOF
'Avanzamos al siguiente tag
m_xmlr.Read()

'si no tenemos el elemento inicial
'debemos salir del ciclo
If Not m_xmlr.IsStartElement() Then
Exit While
End If

'Obtenemos el elemento codigo
Dim mCodigo = m_xmlr.GetAttribute("codigo")
'Read elements firstname and lastname

m_xmlr.Read()
'Obtenemos el elemento del Nombre del Usuario
Dim mNombre = m_xmlr.ReadElementString("nombre")

'Obtenemos el elemento del Apellido del Usuario
Dim mApellido = m_xmlr.ReadElementString("apellido")

'Escribimos el resultado en la consola,
'pero tambien podriamos utilizarlos en
'donde deseemos
Console.WriteLine("Codigo usuario: " & mCodigo _
& " Nombre: " & mNombre _
& " Apellido: " & mApellido)
Console.Write(vbCrLf)
End While

'Cerramos la lectura del archivo
m_xmlr.Close()

End Sub
End Module
Utilizando el XmlDocument
Este formato es mas complejo y nos permite recorrer los nodos sin tener que utilizar una lectura secuencial. Definitivamente este formato es más eficiente que el anterior principalmente para documentos XML muy grandes.
Imports System.IO
Imports System.Xml
Module ParsingUsingXmlDocument
Sub Main()
Try
Dim m_xmld As XmlDocument
Dim m_nodelist As XmlNodeList
Dim m_node As XmlNode

'Creamos el "XML Document"
m_xmld = New XmlDocument()

'Cargamos el archivo
m_xmld.Load("C:\XMLPrueba.xml")

'Obtenemos la lista de los nodos "name"
m_nodelist = m_xmld.SelectNodes("/usuarios/name")

'Iniciamos el ciclo de lectura
For Each m_node In m_nodelist
'Obtenemos el atributo del codigo
Dim mCodigo = m_node.Attributes.GetNamedItem("codigo").Value

'Obtenemos el Elemento nombre
Dim mNombre = m_node.ChildNodes.Item(0).InnerText

'Obtenemos el Elemento apellido
Dim mApellido = m_node.ChildNodes.Item(1).InnerText

'Escribimos el resultado en la consola,
'pero tambien podriamos utilizarlos en
'donde deseemos
Console.Write("Codigo usuario: " & mCodigo _
& " Nombre: " & mNombre _
& " Apellido: " & mApellido)
Console.Write(vbCrLf)

Next
Catch ex As Exception
'Error trapping
Console.Write(ex.ToString())
End Try
End Sub
End Module
  #10 (permalink)  
Antiguo 27/06/2009, 01:13
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Thread lectura de archivo

Jaullo, muchas gracias por tu ayuda. Quizá si te doy más características entenderás porque necesito hacerlo con threads.

Mira, el concepto es, tengo 22 archivos tipo txt, que se actualizan en todo momento. Dentro de algunos de estos, cada linea contiene un XML. Con lo que había pensado:

1. Lanzar 22 threads uno para cada archivo, para obtener los datos actualizados los más pronto posible y casi en tiempo real.
2. Dentro de cada thread, procesar cada una de las lineas XML, con, quizá una función o quizá, de nuevo, otro thread para tratar los datos de cada linea XML.

Muchas gracias por tu ayuda!
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #11 (permalink)  
Antiguo 27/06/2009, 09:58
 
Fecha de Ingreso: enero-2007
Ubicación: Tingo María - Perú
Mensajes: 399
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: Thread lectura de archivo

Cita:
Iniciado por MeXiCaN Ver Mensaje
Pero me da error en el textbox que tiene la función Leer_ficheros
si no nos dices que error te sale no creo que te podamos ayudar, por otro lado porque no pones todo el codigo de Leer_ficheros
__________________
Vivir para ser buenos y ser buenos para servir mejor.
  #12 (permalink)  
Antiguo 27/06/2009, 16:53
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Thread lectura de archivo

boluart, el error solucionado.

Muchas gracias por vuestro tiempo.
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #13 (permalink)  
Antiguo 27/06/2009, 18:53
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Thread lectura de archivo

Talvez si pudieses decirnos como lo hiciste, puede que a alguien mas le sirva.

Saludos,
  #14 (permalink)  
Antiguo 27/06/2009, 21:49
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Thread lectura de archivo

Simplemente cambié la forma de acceder al fichero

Cita:
Dim texto As String

Dim sr As New System.IO.StreamReader(b_fich)
texto = sr.ReadToEnd()
sr.Close()

TextBox1.Text = TextBox1.Text & "" & texto.ToString
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.

Última edición por MeXiCaN; 28/06/2009 a las 15:15
  #15 (permalink)  
Antiguo 28/06/2009, 15:16
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Thread lectura de archivo

Chicos, seguimos?

Cita:
Iniciado por MeXiCaN Ver Mensaje
Jaullo, y ¿para crear el thread de lectura de archivos?

Los links que me pasaste son para el tratamiento del xml, sin embargo, no esta el como crear el thread de lectura.

gracias
Muchas gracias.

Pd: Al acceder a los ficheros, estos son de gran tamaño y la aplicación se cuelga al intentar cargar los datos que recibe de solo 1 fichero, y son 22 con los que tengo que tratar.
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #16 (permalink)  
Antiguo 29/06/2009, 13:35
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Thread lectura de archivo

No se si estos ejemplos te servirán, la verdad no los he revisado mucho

http://developersdotnet.com/blogs/gu...ows-forms.aspx

http://www.developersdex.com/csharp/...1112&r=6554476
http://www.chw.net/foro/lenguajes-de...-xml-en-c.html

Claro que si son 22 archivos tan pesados, puede no ser muy eficiente

Última edición por jaullo; 30/06/2009 a las 10:41
  #17 (permalink)  
Antiguo 01/07/2009, 18:06
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Thread lectura de archivo

Gracias Jaullo de nuevo. Los reviso, hago las pruebas y te digo!

Muchisisisisisimas Gracias!
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #18 (permalink)  
Antiguo 02/07/2009, 16:32
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Thread lectura de archivo

Solucionado el tema de threads, pensé que era muchos más dificil.

Cita:
Dim Thread_lectura_fich As New Thread(AddressOf Thread_lec_fich)
Thread_lectura_fich.Start()
Thread_lec_fich()
Estas 3 lineas las tengo en el botón de cargar el ficheros, son la declaración del thread y su Sub correspondiente.

Cita:
Private Sub Thread_lec_fich()
Obtener_Ruta() // función para obetener la ruta de archivo
Dim b_fich As String variable con la ruta del archivo actual

If System.IO.Directory.Exists(rutafich) Then
Dim files_dir As Array = System.IO.Directory.GetFiles(rutafich)
Dim j As Integer
Dim t As Integer = UBound(files_dir)
For j = 0 To j = 1
b_fich = files_dir(j)
F = CreateObject("Scripting.FileSystemObject")
A = F.OpenTextFile(b_fich)
While A.AtEndOfStream <> True
Me.TextBox1.Text = Me.TextBox1.Text + vbNewLine + A.ReadLine
Me.TextBox1.Refresh()
End While
A.Close()
Next j
Else
MsgBox("El fichero solicitado no existe.", MsgBoxStyle.Information)
End If
End Sub
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
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:43.