Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 22
.NET 4.x

Как осуществить запись пути который указывается через FolderBrowserDialog в .ini файл

04.12.2012, 09:38. Показов 2061. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Товарищи, прошу Вашей помощи в моем вопросе.
Возникла необходимость хранить настройки утилиты в .ini файле. Проведя некоторое время в поисках нашел отличный пример использования .ini файлов, а именно запись в определенную секцию определенного параметра и их дальнейшее считывание. Процесс описывается в видео + исходники.
Смотреть ролик

Теперь вопрос. Как осуществить запись пути который указывается через FolderBrowserDialog в .ini файл в секцию main, строку - path, а затем считать это значение и выполнить соответствующее действие.

В настоящий момент конфигурация записывается таким кодом:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Dim GamePath As String
        Dim SoursPath As String
        Dim FolderBrowserDialog1 As New FolderBrowserDialog()
        Dim Path As String
        SoursPath = My.Computer.FileSystem.CurrentDirectory
        FolderBrowserDialog1.Description = "Укажите путь к папке содержащей .exe файл"
        If My.Computer.FileSystem.FileExists("conf.ini") Then
            Path = My.Computer.FileSystem.ReadAllText("conf.ini")
            If Path = Nothing Then
                MsgBox("Файл конфигурации пуст")
                GoTo 6
            End If
            'MsgBox("Есть")
        Else
            MsgBox("утерян или поврежден файл конфигурации")
            My.Computer.FileSystem.WriteAllText("conf.ini", GamePath, False)
6:          If FolderBrowserDialog1.ShowDialog = System.Windows.Forms.DialogResult.OK Then
                My.Computer.FileSystem.CurrentDirectory = FolderBrowserDialog1.SelectedPath
                If My.Computer.FileSystem.FileExists("1.exe") Or My.Computer.FileSystem.FileExists("2.exe") Or My.Computer.FileSystem.FileExists("3.exe") Then
                    Me.Show()
                    GamePath = FolderBrowserDialog1.SelectedPath
                    My.Computer.FileSystem.CurrentDirectory = SoursPath
                    My.Computer.FileSystem.WriteAllText("conf.ini", GamePath, False)
                    MsgBox("Конфигурация успешно обновлена")
                    Path = My.Computer.FileSystem.ReadAllText("conf.ini")
                    Application.Restart()
                Else
                    MsgBox("Указан неверный путь", MsgBoxStyle.Information)
                    GoTo 6
                End If
            End If
        End If
т.е. необходимо чтобы в файле conf.ini в секцию "main", строку "path" записался ключ (например, C:\test\) и затем при необходимости утилита могла бы обращаться к строке "path" и использовать записанный в ней ключ и использовать полученный путь в работе.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.12.2012, 09:38
Ответы с готовыми решениями:

Как произвести запись в ini-файл
Ребята как в Windows Forms записывать в ini файл

Как открыть ini-файл который будет расположен в посторонней папке?
Доброго времени суток! Как при запуске открыть ini-файл, который будет расположен в другом месте, например в "C:\Program...

Скопировать файл выбранный в ListBox в папку выбранную через FolderBrowserDialog
Короче есть список файлов в listbox1, как выбранный файл скопировать в выбранную папку в folderbrowserdialog? Есть какие то догадки методом...

3
35 / 35 / 1
Регистрация: 14.11.2012
Сообщений: 176
04.12.2012, 10:52
ваше видео посмотреть не могу на данный момент, вот пример работы с ini

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
    'Инициализация АПИ
    Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _
 (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, _
 ByVal lpFileName As String) As Integer
    Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _
 (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, _
 ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
    Public FileN As String = System.IO.Directory.GetCurrentDirectory & "\test3.ini"
    'WS - запись, RS - чтение
    Public Sub WS(ByVal Section As String, ByVal Obj As String, ByVal Param As String)
        Call WritePrivateProfileString(Section, Param, Obj, FileN)
    End Sub
    Public Function RS(ByVal Section As String, ByVal Param As String, ByVal Non As String) As String
        If System.IO.File.Exists(FileN) = False Then
            RS = Non
            Exit Function
        End If
        Dim rc As String = Strings.StrDup(255, vbNullChar)
        Dim x As Integer
        x = GetPrivateProfileString(Section, Param, Non, rc, 255, FileN)
        If x <> 0 Then rc = Strings.Left(rc, x)
        RS = rc
    End Function
 
    'пример использования
    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        'запись(секция, значение, имя переменной в ini)
        WS("INFO", Me.Top, "TOP")
        WS("INFO", Me.Left, "LEFT")
        WS("INFO", Me.Width, "WIDTH")
        WS("INFO", Me.Height, "HEIGHT")
        WS("OTHER", "User", "MyLogin")
        WS("OTHER", "123456", "MyPassword")
    End Sub
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        On Error Resume Next
        'чтение(секция, имя переменной в ini, значение по умолчанию если перем. в ini отсутствует)
        Me.Top = RS("INFO", "TOP", "400")
        Me.Left = RS("INFO", "LEFT", "200")
        Me.Width = RS("INFO", "WIDTH", "300")
        Me.Height = RS("INFO", "HEIGHT", "300")
        MsgBox("Hello, " & RS("OTHER", "MyLogin", "x"))
        MsgBox("Your password is " & RS("OTHER", "MyPassword", "1"))
    End Sub
Вложения
Тип файла: txt ini.txt (2.3 Кб, 29 просмотров)
1
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 22
05.12.2012, 04:59  [ТС]
спасибо! отличный пример, сделал что хотел

Добавлено через 29 минут
вопрос появился, как осуществить следующее:
нужна проверка, на присутствие в файле строки, если строка есть, то проверить наличие ключа и если строка или ключ отсутствует, то оповестить об этом
0
35 / 35 / 1
Регистрация: 14.11.2012
Сообщений: 176
05.12.2012, 10:19
VB.NET
1
2
x = RS("INFO", "TOP", "отсутствует")
If x = "отсутствует" Then MsgBox("переменная TOP в секции INFO отсутствует")
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.12.2012, 10:19
Помогаю со студенческими работами здесь

Класс лог-файла, как лучше осуществить запись в файл
Здравствуйте! Хочу создать класс лог-файла с конструктором, в котором передаваемое значение - путь к файлу. Связь с файлом хотел сделать...

Как осуществить запись в файл bin и как прочитать всё, что в нём есть
Добрый день.Подскажите как осуществить запись в файл bin и как прочитать всё,что в нём есть.Заранее благодарен.

Локализовать приложение не через dll файл, а через обычный xml или ini файл
Добрый вечер дамы и господа, у меня возникла такой вопросик. Как можно локализовать приложение Windows Forms не через dll файл а через...

Бинарное дерево поиска. Как осуществить запись в файл и чтение из файла
Добрый день! Если кому не жаль своего времени окажите помощь! Необходимо осуществить запись в файл,просмотр содержимого файла, и создание...

Есть файл xml, который сохранен в ClientBin. Как добавлять запись в этот в файл
Доброго времени суток. Есть файл xml, который сохранен в ClientBin. Вопрос как добавлять запись в этот в файл? Например не в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru