
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:
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:
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
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


0