Autor
|
Tema: [Ayuda] Leer linea de un fichero en Vb.Net (Leído 5,118 veces)
|
TMarmol
Desconectado
Mensajes: 89
Just Learning
|
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: <?xml version="1.0" encoding="utf-8" standalone="yes"?> <paramsfo add_hidden="false"> <param key="ACCOUNT_ID" fmt="utf8" max_len="16">e64a7aea5442c4a</param> <param key="ATTRIBUTE" fmt="int32" max_len="4">0</param> <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
Mensajes: 9.874
|
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: Sub Main() Dim str = <a><![CDATA[<param key="CATEGORY" fmt="utf8" max_len="4">SD</param>]]></a>.Value Dim Value As String = _ System.Text.RegularExpressions.Regex.Match(str, "CATEGORY.+>(.*)<") _ .Groups(1).Value Console.WriteLine(Value) End Sub
saludos!
|
|
« Última modificación: 19 Octubre 2013, 15:54 pm por EleKtro H@cker »
|
En línea
|
|
|
|
TMarmol
Desconectado
Mensajes: 89
Just Learning
|
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: Sub Main() Dim str = <a><![CDATA[<param key="CATEGORY" fmt="utf8" max_len="4">SD</param>]]></a>.Value Dim Value As String = _ System.Text.RegularExpressions.Regex.Match(str, "CATEGORY.+>(.*)<") _ .Groups(1).Value Console.WriteLine(Value) 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
Mensajes: 9.874
|
Para obtener la linea número 13 puedes usar este snippet de una función genérica que hice hace tiempo: #Region " Read TextFile Line Function " ' [ Read TextFile Line Function ] ' ' Examples : ' ' MsgBox(Read_TextFile_Line("C:\File.txt", 1)) ' Dim str As String = Read_TextFile_Line("C:\File.txt", 3) Private Function Read_TextFile_Line (ByVal File As String, ByVal Line_Number As Long) As String Dim Lines() As String = {String.Empty} Dim Line_Length As Long = 0 Try Line_Length = Lines.LongLength - 1 Return Lines(Line_Number - 1) Catch ex As IO.FileNotFoundException MessageBox.Show(String.Format("File not found: ""{0}""", _ Nothing, _ MessageBoxButtons.OK, _ MessageBoxIcon.Error) Catch ex As IndexOutOfRangeException MessageBox.Show(String.Format("Attempted to read line {0}, but ""{1}"" has {2} lines.", _ Line_Number, _ Line_Length + 1), _ Nothing, _ MessageBoxButtons.OK, _ MessageBoxIcon.Error) Catch ex As Exception Throw New Exception(String.Format("{0}: {1}", _ ex.Message, _ ex.StackTrace)) Finally Lines = Nothing Line_Length = Nothing End Try Return Nothing End Function #End Region
Saludos!
|
|
|
En línea
|
|
|
|
TMarmol
Desconectado
Mensajes: 89
Just Learning
|
Para obtener la linea número 13 puedes usar este snippet de una función genérica que hice hace tiempo: #Region " Read TextFile Line Function " ' [ Read TextFile Line Function ] ' ' Examples : ' ' MsgBox(Read_TextFile_Line("C:\File.txt", 1)) ' Dim str As String = Read_TextFile_Line("C:\File.txt", 3) Private Function Read_TextFile_Line (ByVal File As String, ByVal Line_Number As Long) As String Dim Lines() As String = {String.Empty} Dim Line_Length As Long = 0 Try Line_Length = Lines.LongLength - 1 Return Lines(Line_Number - 1) Catch ex As IO.FileNotFoundException MessageBox.Show(String.Format("File not found: ""{0}""", _ Nothing, _ MessageBoxButtons.OK, _ MessageBoxIcon.Error) Catch ex As IndexOutOfRangeException MessageBox.Show(String.Format("Attempted to read line {0}, but ""{1}"" has {2} lines.", _ Line_Number, _ Line_Length + 1), _ Nothing, _ MessageBoxButtons.OK, _ MessageBoxIcon.Error) Catch ex As Exception Throw New Exception(String.Format("{0}: {1}", _ ex.Message, _ ex.StackTrace)) Finally Lines = Nothing Line_Length = Nothing End Try Return Nothing End Function #End Region
Saludos! Perfecto! era justo lo que necesitaba. Muchas gracias
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
leer archivo de texto linea a linea
Programación Visual Basic
|
SheKeL_C$
|
2
|
4,262
|
18 Febrero 2006, 17:08 pm
por SheKeL_C$
|
|
|
VBScript leer un trozo de linea de texto de un fichero SOLUCIONADO
Scripting
|
tonilogar
|
5
|
14,205
|
13 Junio 2011, 16:54 pm
por duckseven
|
|
|
Leer de la entrada estandar linea por linea
« 1 2 »
Programación C/C++
|
Delraich
|
15
|
12,578
|
6 Julio 2010, 19:53 pm
por MIG80
|
|
|
Duda Leer Linea por Linea de Un textBox
Programación Visual Basic
|
NsTeam
|
2
|
7,795
|
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,776
|
10 Diciembre 2015, 18:40 pm
por afrocardo
|
|