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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [Ayuda] Leer linea de un fichero en Vb.Net
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Ayuda] Leer linea de un fichero en Vb.Net  (Leído 4,709 veces)
TMarmol

Desconectado Desconectado

Mensajes: 89


Just Learning


Ver Perfil WWW
[Ayuda] Leer linea de un fichero en Vb.Net
« en: 19 Octubre 2013, 14:10 pm »

Tengo un problema, necesito que mi programa lea un fichero y muestre solo una linea

El fichero que necesito leer tiene una estructura parecida a un archivo xml, pero tiene una extension distinta, por ejemplo:
Código
  1. <?xml version="1.0" encoding="utf-8" standalone="yes"?>
  2. <paramsfo add_hidden="false">
  3.  <param key="ACCOUNT_ID" fmt="utf8" max_len="16">e64a7aea5442c4a</param>
  4.  <param key="ATTRIBUTE" fmt="int32" max_len="4">0</param>
  5.  <param key="CATEGORY" fmt="utf8" max_len="4">SD</param>

Necesito que lea solo la linea "CATEGORY" y que me devuelva en este caso "SD"
Solo consigo que lea el fichero entero pero no una linea expecifica.

Se puede buscar esa linea por un string o por numero de linea, tengo comprobado que siempre es el mismo numero de linea.
Gracias de ante mano


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: [Ayuda] Leer linea de un fichero en Vb.Net
« Respuesta #1 en: 19 Octubre 2013, 15:52 pm »

Yo no se mucho sobre la estructura xml, xmnls, y esas variantes que existen, pero si no me equivoco al fin y al cabo todos son XML y se pueden leer las propiedades/atributos/nodos de la misma manera, repito, en caso de que no me esté equivocando, y en ese caso te puedes servir de las Classes de .NET para leer archivos XML.

De todas formas, por si las moscas, te enseño el modo de obtener el valor usando expresiones regulares:

Código
  1.    Sub Main()
  2.  
  3.        Dim str = <a><![CDATA[<param key="CATEGORY" fmt="utf8" max_len="4">SD</param>]]></a>.Value
  4.  
  5.        Dim Value As String = _
  6.            System.Text.RegularExpressions.Regex.Match(str, "CATEGORY.+>(.*)<") _
  7.            .Groups(1).Value
  8.  
  9.        Console.WriteLine(Value)
  10.  
  11.    End Sub

saludos!


« Última modificación: 19 Octubre 2013, 15:54 pm por EleKtro H@cker » En línea

TMarmol

Desconectado Desconectado

Mensajes: 89


Just Learning


Ver Perfil WWW
Re: [Ayuda] Leer linea de un fichero en Vb.Net
« Respuesta #2 en: 19 Octubre 2013, 16:02 pm »

Yo no se mucho sobre la estructura xml, xmnls, y esas variantes que existen, pero si no me equivoco al fin y al cabo todos son XML y se pueden leer las propiedades/atributos/nodos de la misma manera, repito, en caso de que no me esté equivocando, y en ese caso te puedes servir de las Classes de .NET para leer archivos XML.

De todas formas, por si las moscas, te enseño el modo de obtener el valor usando expresiones regulares:

Código
  1.    Sub Main()
  2.  
  3.        Dim str = <a><![CDATA[<param key="CATEGORY" fmt="utf8" max_len="4">SD</param>]]></a>.Value
  4.  
  5.        Dim Value As String = _
  6.            System.Text.RegularExpressions.Regex.Match(str, "CATEGORY.+>(.*)<") _
  7.            .Groups(1).Value
  8.  
  9.        Console.WriteLine(Value)
  10.  
  11.    End Sub

saludos!

No es exactamente lo que busco pero también me sirve, con eso solo extraigo el texto que hay entre los ">     <", que es una parte de lo que necesito.
La otra parte es extraer solo una linea, el archivo completo tiene 14 lineas, que no son siempre iguales y yo necesito extraer una linea sin saber su contenido completo, se que siempre es la linea nº 13 y que contiene "key='TITLE'", pero no conozco el resto de la linea.

Lo primero seria extraer solo esa linea y después mostrar en contenido gracias al código que has mostrado antes.
El programa debe abrir el archivo buscar en el la linea que contenga "key='TITLE'"  y mostrar su contenido
Gracias.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: [Ayuda] Leer linea de un fichero en Vb.Net
« Respuesta #3 en: 19 Octubre 2013, 16:06 pm »

Para obtener la linea número 13 puedes usar este snippet de una función genérica que hice hace tiempo:

Código
  1. #Region " Read TextFile Line Function "
  2.  
  3.    ' [ Read TextFile Line Function ]
  4.    '
  5.    ' Examples :
  6.    '
  7.    ' MsgBox(Read_TextFile_Line("C:\File.txt", 1))
  8.    ' Dim str As String = Read_TextFile_Line("C:\File.txt", 3)
  9.  
  10.    Private Function Read_TextFile_Line(ByVal File As String, ByVal Line_Number As Long) As String
  11.  
  12.        Dim Lines() As String = {String.Empty}
  13.        Dim Line_Length As Long = 0
  14.  
  15.        Try
  16.            Lines = IO.File.ReadAllLines(File)
  17.            Line_Length = Lines.LongLength - 1
  18.            Return Lines(Line_Number - 1)
  19.  
  20.        Catch ex As IO.FileNotFoundException
  21.            MessageBox.Show(String.Format("File not found: ""{0}""", _
  22.                                          File), _
  23.                            Nothing, _
  24.                            MessageBoxButtons.OK, _
  25.                            MessageBoxIcon.Error)
  26.  
  27.        Catch ex As IndexOutOfRangeException
  28.            MessageBox.Show(String.Format("Attempted to read line {0}, but ""{1}"" has {2} lines.", _
  29.                                          Line_Number, _
  30.                                          File, _
  31.                                          Line_Length + 1), _
  32.                            Nothing, _
  33.                            MessageBoxButtons.OK, _
  34.                            MessageBoxIcon.Error)
  35.  
  36.        Catch ex As Exception
  37.            Throw New Exception(String.Format("{0}: {1}", _
  38.                                              ex.Message, _
  39.                                              ex.StackTrace))
  40.  
  41.        Finally
  42.            Lines = Nothing
  43.            Line_Length = Nothing
  44.  
  45.        End Try
  46.  
  47.        Return Nothing
  48.  
  49.    End Function
  50.  
  51. #End Region

Saludos!
En línea

TMarmol

Desconectado Desconectado

Mensajes: 89


Just Learning


Ver Perfil WWW
Re: [Ayuda] Leer linea de un fichero en Vb.Net
« Respuesta #4 en: 19 Octubre 2013, 17:12 pm »

Para obtener la linea número 13 puedes usar este snippet de una función genérica que hice hace tiempo:

Código
  1. #Region " Read TextFile Line Function "
  2.  
  3.    ' [ Read TextFile Line Function ]
  4.    '
  5.    ' Examples :
  6.    '
  7.    ' MsgBox(Read_TextFile_Line("C:\File.txt", 1))
  8.    ' Dim str As String = Read_TextFile_Line("C:\File.txt", 3)
  9.  
  10.    Private Function Read_TextFile_Line(ByVal File As String, ByVal Line_Number As Long) As String
  11.  
  12.        Dim Lines() As String = {String.Empty}
  13.        Dim Line_Length As Long = 0
  14.  
  15.        Try
  16.            Lines = IO.File.ReadAllLines(File)
  17.            Line_Length = Lines.LongLength - 1
  18.            Return Lines(Line_Number - 1)
  19.  
  20.        Catch ex As IO.FileNotFoundException
  21.            MessageBox.Show(String.Format("File not found: ""{0}""", _
  22.                                          File), _
  23.                            Nothing, _
  24.                            MessageBoxButtons.OK, _
  25.                            MessageBoxIcon.Error)
  26.  
  27.        Catch ex As IndexOutOfRangeException
  28.            MessageBox.Show(String.Format("Attempted to read line {0}, but ""{1}"" has {2} lines.", _
  29.                                          Line_Number, _
  30.                                          File, _
  31.                                          Line_Length + 1), _
  32.                            Nothing, _
  33.                            MessageBoxButtons.OK, _
  34.                            MessageBoxIcon.Error)
  35.  
  36.        Catch ex As Exception
  37.            Throw New Exception(String.Format("{0}: {1}", _
  38.                                              ex.Message, _
  39.                                              ex.StackTrace))
  40.  
  41.        Finally
  42.            Lines = Nothing
  43.            Line_Length = Nothing
  44.  
  45.        End Try
  46.  
  47.        Return Nothing
  48.  
  49.    End Function
  50.  
  51. #End Region

Saludos!
Perfecto!
era justo lo que necesitaba.
Muchas gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
leer archivo de texto linea a linea
Programación Visual Basic
SheKeL_C$ 2 4,059 Último mensaje 18 Febrero 2006, 17:08 pm
por SheKeL_C$
VBScript leer un trozo de linea de texto de un fichero SOLUCIONADO
Scripting
tonilogar 5 13,777 Último mensaje 13 Junio 2011, 16:54 pm
por duckseven
Leer de la entrada estandar linea por linea « 1 2 »
Programación C/C++
Delraich 15 11,700 Último mensaje 6 Julio 2010, 19:53 pm
por MIG80
Duda Leer Linea por Linea de Un textBox
Programación Visual Basic
NsTeam 2 7,467 Último mensaje 1 Diciembre 2010, 02:58 am
por Stelio Kontos
Ayuda!!!!!!!!QUIERO LEER LOS DATOS QUE TENGO EN EL FICHERO . Cómo???
Programación C/C++
afrocardo 0 1,505 Último mensaje 10 Diciembre 2015, 18:40 pm
por afrocardo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines