2014-11-16 3 views
-1

Я создал файл установок для моего приложения, например:Vb.net чтения файла настроек

username: ProGamingHun 
version: 1.0 
maxmemory: 1GB 
minmemory: 512MB 

Я хочу, чтобы прочитать имя, так Dim имя = в файле настроек: ProGamingHun, как я могу это сделать ? Имя пользователя неизвестно, потому что ProGamingHun является тестовым текстом. Спасибо за помощь.

+0

Что это за установочный файл? Вы говорите о настройках Proejct, определенных в вашем проекте, или вы говорите о пользовательском файле, хранящемся где-то на вашем ПК? – Steve

+0

Да, это файл costum (cfg) для моего приложения, это программа запуска в этом файле, информация, хранящаяся в приложении, например: имя пользователя: ProGamingHun и т. Д., И я хочу прочитать имя пользователя = ProGamingHun, чтобы этот текст поиска (имя пользователя :) и значение (ProGamingHun), то в строке имени пользователя приложения = ProGamingHun. Но я не знаю, как это сделать. – ProGamingHun

ответ

3

Я не уверен, код, который вы отправили в качестве ответа, правильно разбирает файл. Ты лучше, используя регулярные выражения вместо:

Dim lines() As String = IO.File.ReadAllLines(SettingsRoot + "\config.cfg") 
Dim matches = lines.SelectMany(Function(line) Regex.Matches(line, "(.*): (.*)").Cast(Of Match)) 
Dim dictionary = matches.ToDictionary(Function(match) match.Groups(1).Value, Function(match) match.Groups(2).Value) 

dictionary теперь будет содержать пары ключ-значение ваших настроек. Несмотря на то, что это не ваш первоначальный вопрос, вы можете отобразить их в окне сообщения по одному с помощью следующего кода:

For Each setting In dictionary 
    MessageBox.Show(setting.Key & "=" & setting.Value) 
Next 

Тем не менее, я предлагаю вам использовать один из многих стандартных форматов для сохранения настроек. Таким образом, вы можете использовать существующие библиотеки для разбора их:

EDIT

Чтобы получить значения из словарь в отдельные переменные, используйте dictionary.TryGetValue, который обрабатывает отсутствующие ключи (настройки):

Dim username As String = Nothing 
dictionary.TryGetValue("username", username) 
+0

Спасибо, это правильный ответ, и я расскажу о своем «ответе» на вопрос. Большое спасибо. – ProGamingHun

+0

Но я хотел бы прочитать некоторые данные: dim username как string = nothing; Dim javapath как string = ничего; Dim MaxMemAlloc как string = nothing; Dim MinMemAlloc как string = ничего; Dim Version as string = Nothing, то эти строки равны в настройках файла конфигурации, как я могу это сделать? Спасибо за помощь. – ProGamingHun

+0

@ProGamingHun Я добавил пример кода для извлечения значения для одного параметра из словаря. –

Смежные вопросы