Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как в ListBox запоминать данные, которые не должны пропадать...... 
:(
    Опции темы
*^angel^*
  Дата 4.5.2003, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 5.3.2003
Где: Столица нашей нео бъятной Родины

Репутация: нет
Всего: нет



день добрый! smile.gif
Подскажите как средствами VBA можно сделать следующее:
есть ListBox надо хапоминать туда данные, которые не должны исчезать после выхода из программы. Может нужно в файл запоминать?
PM MAIL ICQ   Вверх
valex13
Дата 5.5.2003, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 29.1.2003
Где: Иркук. область, г . Иркутск

Репутация: 1
Всего: 1



Да. Лучше всего в ini. Вот пример работы:
'Записать информацию в ini
Public Declare Function WritePrivateProfileString Lib "KERNEL32" _
Alias "WritePrivateProfileStringA" (ByVal AppName As String, _
ByVal KeyName As String, ByVal keydefault As String, _
ByVal FileName As String) As Long
'Получить информацию из совственного ini
Public Declare Function GetPrivateProfileString Lib "KERNEL32" _
Alias "GetPrivateProfileStringA" (ByVal AppName As String, _
ByVal KeyName As String, ByVal keydefault As String, _
ByVal ReturnString As String, ByVal NumBytes As Long, _
ByVal FileName As String) As Long
'Считываем
iRez = GetPrivateProfileString("options", "DBPath", _
"", sTemp, iSize, Application.Path & "\MyFile.ini")
'Записываем
iRez = WritePrivateProfileString("options", "DBPath", sPath, _
Application.Path & "\MyFile.ini")
Записываешь сначало количество элементов, а потом в цикле и элементы.
Считываешь так же.

PM MAIL ICQ   Вверх
Unregistered
Дата 5.5.2003, 22:01 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











спасибо, я конечно умная, но к сожалению, в VBA не разбираюсь.........
можно это как-то легче написать? я в этом коде ничего не поняла.........
  Вверх
valex13
Дата 13.5.2003, 03:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 29.1.2003
Где: Иркук. область, г . Иркутск

Репутация: 1
Всего: 1



Цитата
Подскажите как средствами VBA можно сделать следующее:

Именно. Средствами Visual Basic for Application.
Однако. Этот способ наиболее легкий, а главное - классический.
Можете хранить информацию в реестре, но способ все равно тот же.
Вам нужно вызывать функции WINAPI для работы с реестром. Это придется делять в любом языке.
Стоит ли овчинка выделки? Решать вам.
PM MAIL ICQ   Вверх
vickr
Дата 15.5.2003, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 13.5.2003
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Выше приведенные советы вполне разумны, но есть альтернатива - функции VB для чтения/записи файлов. Не буду вдаваться в теорию, приведу пример кода сброса данных из ListBox в файл. Проверил в VB6 - все работает. В VBA тоже должно, по идее.
Dim i As Integer
Open "listdata.txt" For Output As #1
For i = 0 To List1.ListCount - 1
List1.ListIndex = i
Print #1, List1.Text
Next i
Print #1, List1.List(i)
Close #1
Или так, на строчку короче (и, по идее чуть быстрее):
Dim i As Integer
Open "listdata.txt" For Output As #1
For i = 0 To List1.ListCount - 1
Print #1, List1.List(i)
Next i
Print #1, List1.List(i)
Close #1
Ну а потом, когда нужно, считываешь эти данные обратно в ListBox.
Удачных экспериментов.

--------------------
Каждую секунду, тыкая в клавиши, мы давим насмерть не менее 1000 микробов =:)
PM MAIL   Вверх
*^angel^*
Дата 20.5.2003, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 5.3.2003
Где: Столица нашей нео бъятной Родины

Репутация: нет
Всего: нет



vickr спасибо большое. Я почти так и сделала smile.gif))
сохраняет в файл:
Код
Private Sub Form_Load()
Dim a As String
On Error Goto 1

Open "list.lst" For Input As 1
Do Until EOF(1)
Input #1, a
list1.AddItem a
Loop
1 Close
End Sub


Считавает из файла в ListBox:

Код
Private Sub Form_Unload()
Open "list.lst" For Output As 1
For i = 0 To list1.ListCount - 1
Write #1, list1.List(i)
Next
Close
End Sub



valex13 овчинка выделки не стоит.

PM MAIL ICQ   Вверх
*^angel^*
Дата 20.5.2003, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 5.3.2003
Где: Столица нашей нео бъятной Родины

Репутация: нет
Всего: нет



т.е. наоборот, сначало код для считывания, а потом для записи....

PM MAIL ICQ   Вверх
cardinal
Дата 21.5.2003, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99




Соблюдайте синтаксис! Пишите исходники так, чтобы их было легче читать. Делайте сноски в if ... else, for ... next, do while ... loop и т.д. Пишите комментарии если вы написали то, что может быть не понятно другим участникам и посетителям форума. Пишите когда указанный исходник может не работать! Просьба также помещать цитаты и куски кода в спец. рамки. Это не наезд, а попытка сделать форум лучше smile.gif


Код
Private Sub Form_Load()
Dim a As String
' мы исходим из того, что файл есть!
' лучше сделать в этом месте проверку
' на существование этого файла и создать
' файл в случае его отсутствия.
Open App.Path & "\list.lst" For Input As #1
Do While Not EOF(1)
   Input #1, a
   List1.AddItem a
Loop
Close #1
End Sub

Private Sub Form_Unload(Cancel As Integer)
Open App.Path & "\list.lst" For Output As #1
For i = 0 To List1.ListCount - 1
   Write #1, List1.List(i)
Next
Close #1
End Sub



--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
vickr
Дата 22.5.2003, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 13.5.2003
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Цитата
Соблюдайте синтаксис! Пишите исходники так

Ну ты суров, братишка smile.gif
--------------------
Каждую секунду, тыкая в клавиши, мы давим насмерть не менее 1000 микробов =:)
PM MAIL   Вверх
Mephisto
  Дата 28.8.2003, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: 2
Всего: 34



Цитата(cardinal @ 21.5.2003, 17:53)

Соблюдайте синтаксис! Пишите исходники так, чтобы их было легче читать. Делайте сноски в if ... else, for ... next, do while ... loop и т.д. Пишите комментарии если вы написали то, что может быть не понятно другим участникам и посетителям форума. Пишите когда указанный исходник может не работать! Просьба также помещать цитаты и куски кода в спец. рамки. Это не наезд, а попытка сделать форум лучше


Аминь. baaa.gif
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0478 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.