Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

scorpio

[Resolvido] Erro com %systemroot%

Recommended Posts

Porque quando eu mando abrir um arquivo ini que está na pasta do windows, ele busca na pasta do projeto ?

 

 

Tenho que ler um arquivo ini, dai criei uma função pra isso, porque a do windows nao queria trabalhar.

Private Function LeArquivoINI(ByVal file_name As String, ByVal section_name As String, ByVal key_name As String, ByVal default_value As String) As String
		Dim FileRead As New System.IO.StreamReader(file_name)
		Dim strArq As String = FileRead.ReadToEnd
		Dim KeyPos As Integer
		Dim Valor As String = ""
		Dim SectionPos As Integer = InStr(1, strArq, section_name)
		If (SectionPos > 0) Then
			KeyPos = InStr(SectionPos, strArq, key_name)
			Dim linha As String = Mid(strArq, KeyPos, InStr(KeyPos, strArq, vbCrLf) - KeyPos)
			While (KeyPos >= 0 And Valor = "")
				linha = Mid(strArq, KeyPos - 1, IIf(InStr(KeyPos, strArq, vbCrLf) > 0, InStr(KeyPos, strArq, vbCrLf), strArq.Length + 1) - KeyPos + 1)
				If (Mid(linha, 1, 1) <> ";") Then
					Valor = Trim(Mid(linha, InStr(linha, "=") + 1, linha.Length - InStr(linha, "=") + 1))
				End If
				KeyPos = InStr(KeyPos + key_name.Length, strArq, key_name)
			End While
			If Valor = "" Then
				Valor = default_value
			End If
		End If
		Return Valor

'le o arquivo ini
		'Const MAX_LENGTH As Integer = 500
		'Dim string_builder As New StringBuilder(MAX_LENGTH)
		'GetPrivateProfileString(section_name, key_name, default_value, string_builder, MAX_LENGTH, file_name)
		'Return string_builder.ToString()
	End Function
Só que, passo de parametro pra ela o nome do arquivo, que no caso ta tem '[X]:\Windows\automato.ini', dai passei assim

"%Systemroot%\automato.ini". Mas o bendito .Net busca na pasta Debug do projeto 'C:\SS300000\SS300000\SS300000\bin\Debug\%systemroot%\automato.ini'.

 

Porque disso? Há outra forma de pegar a pasta do windows ? Se alguem também souber sobre ler arquivo ini, me diga por favor :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae, achei pra retornar o caminho da pasta windows, ou outra variavel do windows!

 

Dim sWinDir As String = System.Environment.GetEnvironmentVariable("systemroot")

 

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.