Resolver variables de entorno en una string

Iniciado por nhaalclkiemr, 10 Agosto 2007, 21:16 PM

0 Miembros y 1 Visitante están viendo este tema.

nhaalclkiemr

Weno, primero deciros que ya se que existe la funcion Environ que resuelve variables de entorno, pero lo que yo quiero es que un programa lo haga automaticamente, teniendo una string...pongo un ejemplo:

Imaginaros que tengo este String:

%windir%\system32\cmd.exe

Pues quiero que me lo convierta en este (suponiendo que la variable de entorno windir sea C:\Windows):

C:\Windows\system32\cmd.exe

Supongo que lo que tengo que hacer es separar lo de dentro del %

y hacer

Environ("windir") & "\systen32\cmd.exe"

Pero no se como hacer para separar ese windir

Weno, si alguien me puede ayudar que lo diga...

Saludos ;)
StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%

Achernar

con la funcion instr() o instr$() no me acuerdo bien
esta funcion te dice la posicion de un caracter en una cadena a partir de un punto.
Partiendo de la posicion 1 empezas a buscar el primer % supongamos en la posicion POS1 y a partir de la posicion (POS1 + 1) buscas el siguiente % ahora tenes la POS2
despues con la funcion Mid$() o Mid() tampoco me acuerdo bien, (fijate en la ayuda de VB) tomas una porcion de la cadena a partir de cierta posicion (POS1) y de cierta longitud (POS2 - POS1) y vas a tener lo que buscas (caracter mas, caracter menos). Espero que te sea util.  ;)

byebye

Private Function hola(x As String) As String
Dim t() As String
t = Split(x, "%")
hola = Environ(t(1)) & t(2)
End Function


y lo usas

Private Sub Command1_Click()
MsgBox hola("%windir%\system32\cmd.exe")
End Sub

~~

O mas facil a mi parecer:

Código (vb) [Seleccionar]
Private Sub Command1_Click()
Dim Ruta1 As String
Ruta1 = "%windir%\system32\cmd.exe"
MsgBox Replace(Ruta1, "%windir%", Environ("WINDIR"))
End Sub

byebye

si pero si le mete %systemroot% ese code no funciona ;).

nhaalclkiemr

StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%

~~

Citarsi pero si le mete %systemroot% ese code no funciona

Sip, tienes razon no me habia dado cuenta de ese detalle ;)