Visual Basic.NET - Ayuda con selección de valores de un archivo CFG / TEXTO

 
Vista:
sin imagen de perfil

Ayuda con selección de valores de un archivo CFG / TEXTO

Publicado por Broadcast27 (4 intervenciones) el 23/01/2016 01:01:14
Muy buenas,

Me presento, soy nuevo por el foro :) Broadcast para los amigos.

Estoy desarrollando una aplicación en vb.NET, y me encuentro con la sigueinte casuística, que no logro solucionar:

Dado el siguiente archivo : C:\usuario.cfg

Donde el contenido es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
###################################### INICIO ARCHIVO #################################
<users>
       user1 = pepe
       user2 = juan
</users>
 
<config>
       mode = default
       sound = standard
</config>
 
###################################### FIN ARCHIVO ###################################

Quiero lograr acceder y recorrer al archivo, linea por linea, buscando la cadena "mode" , por ejemplo, y obtener tan solo el valor localizado a la derecha del simbolo = , osea "default", para después utilizar este valor en otras operaciones. (por ejemplo, mostrartlo en un txtbox llamado Mode.text

Le he estado dando vueltas y vueltas, y hasta ahora lo mejor que he logrado a sido localizar la posición de la cadena en el archivo (si, es único), obtener la posición del primer character, y de ahí le sumo 20 caracteres para que empieze a copiar datos hasta "N", tal y como muestro a continuación:

1
2
3
4
5
6
7
8
9
10
Dim fileReader As String
        fileReader = My.Computer.FileSystem.ReadAllText("C:\usuario.cfg")
 
        Dim SearchForThis As String = "mode"
        Dim FirstCharacter As Integer = fileReader.IndexOf(SearchForThis)
 
        Dim ModePosition As Integer
        ModePosition = FirstCharacter + 7
 
        Mode.Text = Mid(Trim(fileReader), Modeposition, 10)

La putada es que esto me parece bastante ñapa, pq no tiene en cuenta cuando finaliza el valor, y es una selección definida "a ojo". Mode puede ser una valor personalizado, que ocupe 10 o 20 caracteres. No tiene regla, así que necesitaría saber como seleccionar ese valor, sin incluír ninguno de los espacios o carácteres que se encuentran a ambos lados de la selección.

Por ejemplo, en según que entornos, el valor que me ha devuelto es "default sou", donde vemos que cocatena con la siguiente linea "sound" ...

Me podría alguien dar un cable con esto?

Gracias a tod@s !

BroadKST
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Ayuda con selección de valores de un archivo CFG / TEXTO

Publicado por Broadcast27 (4 intervenciones) el 23/01/2016 16:48:39
Gracias por la sugerencia Giancarlo ! Lo intentaré a ver que tal...
Salu2!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda con selección de valores de un archivo CFG / TEXTO

Publicado por Broadcast27 (4 intervenciones) el 24/01/2016 19:34:18
Pues no me ha adyudado demasiado Giancarlo, al no estar todos los valores "tageados".
Si el archivo tuviera toda la info y valores con tags <>, sería perfecto, pero no es así. Gracias de todos modos !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 481
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Ayuda con selección de valores de un archivo CFG / TEXTO

Publicado por Miguel (476 intervenciones) el 25/01/2016 12:16:56
1
2
3
4
5
6
7
Dim datos_archivo() As String = System.IO.File.ReadAllLines("C:\tu_archivo.ext")
Dim dato As String
For Each linea As String In datos_archivo
    If linea.Contains("mode =") Then
        dato = linea.Replace("mode =", "").Trim
    End If
Next
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Ayuda con selección de valores de un archivo CFG / TEXTO

Publicado por Broadcast27 (4 intervenciones) el 25/01/2016 23:32:18
Esta solucion si me ha ayudado, muchas gracias Miguel!!
Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar