Faint
1

Информация из .ini в ListBox и обратно

14.02.2011, 22:43. Показов 1340. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, давно читаю этот форум, много чего полезного для себя нашел, только вот решения своей проблемы не увидел. Может сможете мне помочь?
Нужно записать информацию из .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
Вот такие вот пироги, что делать?
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.02.2011, 22:43
Ответы с готовыми решениями:

Listbox ini файл
Привет, как можно сохранить созданные строки в Listbox в ini файл, а также как произвести чтение с...

Чтение Ini файла. ListBox
Чтение. Каким образом написать? Желательно весь код

ListBox ComboBox ini файл
Привет всем, как можно сохранить текст edit, если в combobox выбрана некоторая строка &quot;i&quot; и в...

Занесение значений ключа ini в listbox
Вот собственно у меня имеется ini файл такой структуры ФИО=Пушкин Биография=C:\Documents and...

8
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
Если еще раз попробовать сохранить цвета этого-же пользователя в этот же файл, таким же путем что и в первый раз, он копирует всё содержимое .ini файла и вставляет его еще раз в листбокс. Тоесть получается полная каша.
может я чего-то не понимаю, но вроде решение твоей проблемы достаточно простое - List1.Clear - очищай лист перед загрузкой данных
0
16.02.2011, 16:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.02.2011, 16:36
Помогаю со студенческими работами здесь

Сохранение строк с ListBox в ini файл
Все настроено уже и сохраняет например ширину, высоту, количество строк в этот файл...

Загрузить данные из ini файла в Listbox
в ini файле к примеру Нужно что-бы эти данные попали в листбокс по порядку,с условием того...

Перемещение текста из ListBox в TextBox и обратно
В процессе написания программы возникла одна проблема, суть в следующем, у меня есть форма с...

Выведение всех имен секций INI файла в Listbox
Можно ли как то реализовать, чтобы в Listbox загружались все имена секций из ини файла. Например,...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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