Faint
|
|
1 | |
Информация из .ini в ListBox и обратно14.02.2011, 22:43. Показов 1340. Ответов 8
Метки нет (Все метки)
Здравствуйте, давно читаю этот форум, много чего полезного для себя нашел, только вот решения своей проблемы не увидел. Может сможете мне помочь?
Нужно записать информацию из .ini файла в ListBox, друг по другом. В .ini 7 строчек, в будующем будет больше, там все опции пользователя сохраняются. Я записываю информацию имя пользователя, пароль и его е-мейл в из текстбоксов в листбокс, из него переписываю в .ini файл. Ну вроде пока всё нормально, потом нужно сохранить настройки цветов в этот-же файл, в первый раз всё прекрасно срабатывает, записываются коды 4 цветов, они даже считываются и перепроверяются, не в этом проблема. Если еще раз попробовать сохранить цвета этого-же пользователя в этот же файл, таким же путем что и в первый раз, он копирует всё содержимое .ini файла и вставляет его еще раз в листбокс. Тоесть получается полная каша. Чтение из файла: Код
Sub DatLesen() Dim s As String fN = FreeFile On Error GoTo Fehler dateiname = KBLmain.txtusername.Text Open App.Path & ' ' & 'user-' & dateiname & '.ini' For Input As #fN Do While Not EOF(fN) Line Input #fN, s KBLmain.listzwischen1.AddItem s Loop Close #fN Exit Sub Fehler: MsgBox 'Fehler!', vbCritical + vbOKOnly, 'Fehler' Exit Sub End Sub Код
Sub DatSchreiben() fN = FreeFile On Error GoTo Fehler dateiname = KBLmain.txtusername.Text Open App.Path & ' ' & 'user-' & dateiname & '.ini' For Output As #fN For i = 0 To KBLmain.listzwischen1.ListCount - 1 Print #fN, KBLmain.listzwischen1.List(i) Next i Close #fN Exit Sub Fehler: reply = MsgBox('Fehler!', vbCritical + vbOKOnly, 'Fehler') Exit Sub End Sub Код
Private Sub cmdusercolorsok_Click() If txtusername.Text <> '' And txtuserpass.Text <> '' Then 'On Error Resume Next DatLesen dateiname = txtusername.Text For i = 0 To 3 listzwischen1.AddItem txtusercolors(i).Text Next i cmdusercolorsok.Enabled = False DatSchreiben Else MsgBox 'Sie sind nicht eingeloggt.', vbCritical + vbOKOnly, 'Fehler' End If End Sub |
14.02.2011, 22:43 | |
Ответы с готовыми решениями:
8
Listbox ini файл Чтение Ini файла. ListBox ListBox ComboBox ini файл Занесение значений ключа ini в listbox |
Comanche
|
|
15.02.2011, 13:16 | 2 |
Перейти на использование АПИ-функций WritePrivateProfileString und ReadPrivateProfileString )
|
Faint
|
|
15.02.2011, 14:08 | 3 |
Хм... А выхода попроще нету?
Если нету, то где можно про эти функции почитать? |
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 139
|
|
15.02.2011, 14:51 | 4 |
А зачем ты сам зациrлил процесс в третьем примере кода:
Private Sub cmdusercolorsok_Click() .... DatLesen ' т.е. прочитал и записал из ini ' далее ..... зачем тут-же вкоде записываешь обратно, ничего не изменив: DatSchreiben ..... End Sub 1. Я понимаю dise так: 1. Если уж записано как-то в DatSchreiben Sub 2. Значит и считываешь, когда надо из DatLesen Sub 3. Если внес изменения в текстовом окне и нужно это записать. T.е. эти данные находились до изменения и также в строке = ListBox.ListIndex равного, например, 3-й строке (счет с нуля!) 4. А Л Г О Р И Т М: Open file fot Output .... For i=0 To ListBox.ListCound-1 ListBox.ListIndex = i 'будем листать строки ListBox'а Print 1, ListBox.Text ' - запишем в ini все три строки из ListBox'a: (0,1,2 !!!), далее: if i = 3 then ' - запишем всю строку новых данных вместо строки 3 из ListBox'a, кот. ты изменить задумал. End if ' Далее: ' - запишем все остальные строки из ListBox'a, начиная с 4-й и до конца, т.е. до 6 включительно (она у тебя последняя в ListBox'е, а всего их = 7 !!! ). Next i Close Fille Подходит это ????
0
|
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 139
|
|
15.02.2011, 14:57 | 5 |
P.S. примерно та же идея, когда соверщенно новая старока добавляется в ini: - только подумай куда ее встакить
1-й или последней... и т.д. как ранее я сказал Я так делаю, а спецы что скажут. Или я не понял задачу ?????
0
|
Faint
|
|
15.02.2011, 16:49 | 6 |
У меня 4 текстбокса с разными индексами, потому и зациклил... Сейчас попробую ваш код вставить, посмотрим что выйдет.
|
Faint
|
|
15.02.2011, 17:23 | 7 |
'' - запишем всю строку новых данных вместо строки 3 из ListBox'a, кот. ты изменить задумал.'
Вот это я не понял как сделать... Можно кодом? |
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 139
|
|
16.02.2011, 16:21 | 8 |
А где отражаются твои изменения ???
Я ведь незнаю, это я к примеру. Где-то вносил изменения, а потом хотишь записать... во о чем речь! Я дал пример. А если изменения происходят напосредственно в ListBox'е :)) Если ты умеешь изменить (редактировать) строку ListBox'a ??? Тогда мой вариант выброчь и выплняй стразу в DatSchreiben Если ничего не понял, то раскажи вновь и подробнее свой алгоритм-задачу!
0
|
0 / 0 / 0
Регистрация: 01.03.2010
Сообщений: 223
|
|
16.02.2011, 16:36 | 9 |
0
|
16.02.2011, 16:36 | |
16.02.2011, 16:36 | |
Помогаю со студенческими работами здесь
9
Сохранение строк с ListBox в ini файл Загрузить данные из ini файла в Listbox Перемещение текста из ListBox в TextBox и обратно Выведение всех имен секций INI файла в Listbox Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |