Autor
|
Tema: Cargar fichero TXT y asignarle a cada linea, una variable. -- VBS -- (Leído 6,788 veces)
|
Cascuda
Desconectado
Mensajes: 6
|
Llevo ya unas semanas dándole vueltas, pero no soy capaz de desarrollar la idea que tengo en mente. Lo que estaba pensando, era leer un archivo TXT y a partir de ahi, sacar de cada linea el nombre de la variable y su valor. Ejemplo de fichero TXT site = espanha lugar= madrid so = win7 ie = ie9 puesto = 11
Donde he llegado sin problema, es leer el nombre de la variable y luego lo que continua "su valor" asi en todas, hasta llegar a la ultima. Pero luego. lo que no he sido capaz de desarrollar. es que me cargue esas variables en el VBS para luego hacer consultas o condiciones o etc... Const ForReading = 1 Set fso = CreateObject("Scripting.FileSystemObject") Set ts = fso.OpenTextFile("prueba.txt", ForReading) Do Until ts.AtEndOfStream strNextLine = ts.Readline arrServiceList = Split(strNextLine , "=") Msgbox arrServiceList(o) For i = 1 to Ubound(arrServiceList) Msgbox arrServiceList(i) Next Loop
Si me podéis orientar como seguir, ya que mi mente se quedo bloqueada, os lo agradeceria. Un saludo, Cascuda
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.878
|
El planteamiento de tú código es incorrecto, ¿qué ocurre si por ejemplo el valor de una de las variables contiene un símbolo "="?. Aquí te escribo este ejemplo para crear variables dinámicamente. Option explicit : Dim file, curLine, curIndex, _ varPreffix, varName, varValue ' Defino un prefijo para el nombre de las variabes dinámicas. varPreffix = "var" ' Instancio el Stream del objeto que lee el archivo de texto. Set file = CreateObject("Scripting.FileSystemObject"). _ OpenTextFile("Archivo.txt", 1) ' Itero las lineas del archivo. Do Until file.AtEndOfStream curIndex = (curIndex + 1) curLine = file.Readline ' varName = Trim(Mid(curLine, 1, InStr(curLine, "=") - 1)) varValue = Trim(Mid(curLine, InStr(curLine, "=") + 1)) ' Creo la variable dinamicamente. ExecuteGlobal varPreffix & curIndex & "=" & """" & varValue & """" ' Muestro el nombre de la variable y el valor. Execute "WSCript.Echo varPreffix & curIndex & ""="" & " & varPreffix & curIndex ' En resumen, para acceder mediante un índice: ' ExecuteGlobal "WScript.Echo " & varPreffix & curIndex Loop ' Cierro el Stream. file.Close() WScript.Quit(0)
Resultado de ejecución: Cscript.exe /NoLogo "Archivo.vbs"
var1=espanha var2=madrid var3=win7 var4=ie9 var5=11 Saludos
|
|
« Última modificación: 20 Junio 2015, 18:39 pm por Eleкtro »
|
En línea
|
|
|
|
Cascuda
Desconectado
Mensajes: 6
|
Muchas gracias Electro,
Realmente discrimine el =, ya que sabia que ningún de los valores asignados por ahora, iban a serlo. Pero muy bien pensado. Ya que nunca sabes cuando realmente puede ser, que eso suceda.
He usado tu ejemplo, pero lo he modificado a mis necesidades. Ya que prefiero usar las variables con el nombre que me muestra en el TXT, en vez que me cargue dinamicamente un prefijo. Aun que realmente, ya lo habías definido usted en el codigo y solo tuve que modificar las cadenas.
Un saludo, Cascuda
|
|
|
En línea
|
|
|
|
Cascuda
Desconectado
Mensajes: 6
|
No me he dado cuenta, pero pego el código modificado. Por si alguien quiere ver lo simples cambios que he hecho. Option explicit : Dim file, curLine, curIndex, _ varName, varValue ' Instancio el Stream del objeto que lee el archivo de texto. Set file = CreateObject("Scripting.FileSystemObject"). _ OpenTextFile("prueba.txt", 1) ' Itero las lineas del archivo. Do Until file.AtEndOfStream curLine = file.Readline varName = Trim(Mid(curLine, 1, InStr(curLine, "=") - 1)) varValue = Trim(Mid(curLine, InStr(curLine, "=") + 1)) ' Creo la variable dinamicamente. ExecuteGlobal varName & "=" & """" & varValue & """" ' Muestro el nombre de la variable y el valor. Execute "WSCript.Echo varName & ""="" & " & varName Loop ' Cierro el Stream. file.Close() 'Verifico que realmente funciona. Msgbox "funciona (" & site & ")" Msgbox "funciona (" & consolide & ")" Msgbox "funciona (" & consolidante & ")" WScript.Quit(0)
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
como guardar en una variable una linea de un fichero
« 1 2 »
Programación Visual Basic
|
CICOLO_111234
|
10
|
4,733
|
14 Septiembre 2008, 04:42 am
por cassiani
|
|
|
C# Leer y guardar cada linea de un archivo .txt en una nueva variable
.NET (C#, VB.NET, ASP)
|
extreme69
|
6
|
29,290
|
22 Julio 2011, 00:54 am
por $Edu$
|
|
|
Guardar cada línea de un fichero en una estructura
Programación C/C++
|
NathanD
|
5
|
3,896
|
6 Marzo 2013, 10:14 am
por leosansan
|
|
|
[Ayuda] Cargar todo un fichero a una variable.
Java
|
ignorantev1.1
|
1
|
1,995
|
8 Mayo 2013, 06:27 am
por nicolas_cof
|
|
|
Porque para asignarle valor a un vector mediante for tiene que ser una variable
Programación C/C++
|
Naimaderis
|
4
|
2,853
|
14 Diciembre 2016, 18:33 pm
por Naimaderis
|
|