Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/19: Рейтинг темы: голосов - 19, средняя оценка - 4.74
123 / 123 / 12
Регистрация: 12.06.2010
Сообщений: 499
Записей в блоге: 2
1

Применить настройки из файла

23.06.2010, 15:54. Показов 3805. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как применить настройки из файла? Например цвет формы
И главное записать измененные настройки записать обратно, причем:
Записать построчно не перезаписывая весь файл т.е. например есть изменения у переменной b, которая находиться в 3 строке файла, значит нужно перезаписать только 3 строчку.
п.с. возможно это ламерский вопрос, но я самоучка
Вложения
Тип файла: rar Config.rar (99.9 Кб, 50 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.06.2010, 15:54
Ответы с готовыми решениями:

Как применить настройки без перезапуска приложения
Здравствуйте! Ситуация следующая, в процессе работы программа записывает некоторую информацию в...

Как применить настройки для Explorer'a?
Типа изменяешь что-то в св-вах обозревателя и нажимаешь кнопку Применить, только програмно?

Не удалось применить выбранные настройки к вашей системе
Здравствуйте! Я в курсе, что AC 1 не поддерживается в GeForce Experience, но я подумал, что в...

Как применить настройки только к конкретному слайдеру (CSS)?
Сайт на WP с пэдж билдером. У меня были проблемы со слайдером, он не был в размер экрана. Я...

13
407 / 359 / 82
Регистрация: 07.10.2009
Сообщений: 558
23.06.2010, 16:26 2
Погугли - "XML.Serialization" или "сохранение настроек в XML на VB.NET"
0
123 / 123 / 12
Регистрация: 12.06.2010
Сообщений: 499
Записей в блоге: 2
23.06.2010, 19:59  [ТС] 3
Мне не нужно xml просто скажите как можно переписать конкретную строку в файле?
0
407 / 359 / 82
Регистрация: 07.10.2009
Сообщений: 558
24.06.2010, 10:25 4
В папке с exe-файлом лежит файл настроек settings.txt, содержащий строки:

1-я строка
2-я строка
3-я строка
4-я строка
5-я строка

Выполняем следующий код, подключив пространство System.IO:
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
'Файл настроек находится в папке с приложением
Dim fileName As String = Application.StartupPath & "\settings.txt"
If File.Exists(fileName) Then
    Dim arrString(1) As String
    Dim streamReader As New StreamReader(fileName)
    Dim line As String
    Dim l As Integer = 0
    Do
        line = streamReader.ReadLine()
        arrString(l) = line
        ReDim Preserve arrString(arrString.Length + 1)
        l +=1
    Loop Until line Is Nothing
    streamReader.Close()
    arrString(2) = "Измененная 3-я строка"
    Dim fs As New FileInfo(fileName)
    Dim streamWriter As StreamWriter = fs.CreateText()
    For i As Integer = 0 To arrString.GetUpperBound(0)
        streamWriter.WriteLine(arrString(i))
    Next i
    streamWriter.Flush()
    streamWriter.Close()
Else
    MessageBox.Show("Файл не существует")
End If
В результате текст в файле изменится на:

1-я строка
2-я строка
Измененная 3-я строка
4-я строка
5-я строка

Так пойдет?
1
123 / 123 / 12
Регистрация: 12.06.2010
Сообщений: 499
Записей в блоге: 2
24.06.2010, 10:58  [ТС] 5
Отлично то что было нужно
0
Почетный модератор
21415 / 9150 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
15.07.2010, 21:05 6
В любом случае, ты переписываешь ВЕСЬ файл все равно, просто изменена только 3 строка.
И потом, что страшного в том, что прога перепишет конфигурационный файл заново? Это ж тысячные доли секунды.
Если пригодится, то вот другой способ сохранения настроек:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        FileOpen(1, "Config.dat", OpenMode.Random)
        FilePut(1, Height)
        FilePut(1, Width)
        FilePut(1, Top)
        FilePut(1, Left)
        FileClose(1)
    End Sub
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        FileOpen(1, "Config.dat", OpenMode.Random)
        Try
            FileGet(1, Height)
            FileGet(1, Width)
            FileGet(1, Top)
            FileGet(1, Left)
        Catch ex As Exception
        End Try
        FileClose(1)
    End Sub
В этом примере сохраняются и читаются настройки положения и размеров формы, ты же можешь запихнуть туда все, что дуже угодно, хоть время последнего сеанса.
1
123 / 123 / 12
Регистрация: 12.06.2010
Сообщений: 499
Записей в блоге: 2
24.07.2010, 16:14  [ТС] 7
Вот этот способ лучше)) спасибо
п.с.: правда нужно было не совсем это, но для настроек программы пригодилось

Добавлено через 7 минут
хм.. новая проблема это все работает если файл существует, а если его нет? как создать его автоматически?
0
Почетный модератор
21415 / 9150 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
24.07.2010, 17:40 8
По идее Рэндомный способ чтения-записи предусматривает автоматическое создание файла, если его не было. По второму запуску у тебя должно пойти как надо. Удали файл вручную, и он снова там окажется после ближайшего запуска формы, а после ее первого закрытия в нем уже будут данные.
0
39 / 39 / 9
Регистрация: 21.11.2009
Сообщений: 201
04.08.2010, 10:20 9
А лучше использовать функцию File.Exicist("Имя_Файла") для проверки файла(т.е есть он, или нету)
Пример:
if(File.Exicist("Имя_Файла"))
{
//Читаем файл
}
else
{
Создаем новый...
}
}
0
Почетный модератор
8784 / 2537 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
04.08.2010, 10:25 10
ForestG, вы, наверное, имели в виду FileExists
0
Почетный модератор
21415 / 9150 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
04.08.2010, 10:33 11
Цитата Сообщение от ForestG Посмотреть сообщение
для проверки файла(т.е есть он, или нету)
Смысл?
Этот файл существует всегда, ваша проверка всегда возвратит True
Еще раз подчеркну, что метод Random - это метод записи, при котором файл открывается И на чтение И на запись. То есть с загрузкой программы он автоматически создается всегда.
0
39 / 39 / 9
Регистрация: 21.11.2009
Сообщений: 201
04.08.2010, 14:51 12
Yep По памяти писал!

Добавлено через 47 минут
Памирыч, Не знаю... дело в том, что я ответил на вопрос
Pe4eNEG, "хм.. новая проблема это все работает если файл существует, а если его нет? как создать его автоматически?"
Поэтому и написал так...
0
1 / 1 / 0
Регистрация: 17.09.2010
Сообщений: 13
18.09.2010, 00:54 13
Люди. У меня похожая ситуация, вроде.

Public Class Form1


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.BackColor = Color.AntiqueWhite
End Sub

Private Sub КрасивыйToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles КрасивыйToolStripMenuItem.Click
BackgroundImage = Image.FromFile("D:\DOKI\Visual Studio 2008\ZverOS_фон.jpg")
Me.Opacity = 100
End Sub

Private Sub ПрозрачныйToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ПрозрачныйToolStripMenuItem.Click
Me.Opacity = 0.7
End Sub

Private Sub ОбычныйToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ОбычныйToolStripMenuItem.Click

________ _________ _____________ ???

End Sub
End Class

Как вернуть изначальный вид формы? (BackgroundImage = Image.FromFile("D:\DOKI\Visual Studio 2008\ZverOS_фон.jpg")) - не уходит, зараза.
0
Почетный модератор
21415 / 9150 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
18.09.2010, 08:08 14
Цитата Сообщение от museyca Посмотреть сообщение
У меня похожая ситуация
Чем же она похожа? В теме обсуждалось то. как работать с файлами и какие свойства формы туда записывать и читать оттуда, а в твоем случае:
VB.NET
1
2
3
4
Private Sub ОбычныйToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ОбычныйToolStripMenuItem.Click
        BackgroundImage = Nothing
        Me.Opacity = 100
    End Sub
1
18.09.2010, 08:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.09.2010, 08:08
Помогаю со студенческими работами здесь

Как при обновлении виджета получить настройки и применить их
Доброго времени. Создаю виджет, который отображает кол-во дней от некой начальной даты. (просто...

Какае настройки нужно применить, чтобы любой пользователь мог подключиться к удаленному рабочему столу?
мне нужно через интернет подключиться к удаленному рабочему столу, пользуясь динамическим ip, имя...

Как применить все необходимые настройки "на лету", без перезапуска программы
Есть проект на C# + WPF, имеются два окна: MainWindow и SettingsWindow. Необходимо чтобы после...

Сохранить настройки сети в Windows XP и применить их в Windows 7
Добрый день. Подскажите такой вопрос. Есть комп с XP, со статическим IP. На этом компе...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru