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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сохранение 
:(
    Опции темы
Vadok
  Дата 28.12.2003, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



exclamation.gif как зделать так что бы программы сохраняла в себе все изменения confused.gif??
PM MAIL ICQ   Вверх
shilnik
Дата 29.12.2003, 05:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Какая программа, какие изменения? Поподробней бы.


--------------------
каталог товаров qp1
PM MAIL WWW   Вверх
cardinal
Дата 29.12.2003, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


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

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



Вот тебе вырезка из MSDN (если у тебя ее еще нет, то купи - полезная вещь):

Managing Application Settings
In Microsoft Windows 3.1 and earlier versions of Windows, program settings like window positions, files used, and other items were commonly stored in .ini files. In Windows NT, Windows 95, and later versions of Windows these program settings are stored in the system registry.

Visual Basic provides a standard registry location for storing program information for applications created in Visual Basic:

HKEY_CURRENT_USER\Software\VB and VBA Program Settings\appname\section\key

Visual Basic also provides four statements and functions to manipulate the settings stored in your application's registry location.

Function or Statement Description
GetSetting function Retrieves registry settings.
SaveSetting statement Saves or creates registry settings.
GetAllSettings function Returns an array containing multiple registry settings.
DeleteSetting statement Deletes registry settings.


Note To view registry entries, use the Regedit application, included with Windows 95 and Windows NT.

SaveSetting and DeleteSetting Statement Example
The following example first uses the SaveSetting statement to make entries in the Windows registry (or .ini file on 16-bit Windows platforms) for the MyApp application, and then uses the DeleteSetting statement to remove them.
Код
' Place some settings in the registry.
SaveSetting appname := "MyApp", section := "Startup", _
           key := "Top", setting := 75
SaveSetting "MyApp","Startup", "Left", 50
' Remove section and all its settings from registry.
DeleteSetting "MyApp", "Startup"

GetSetting Function Example
This example first uses the SaveSetting statement to make entries in the Windows registry (or .ini file on 16-bit Windows platforms) for the application specified as appname, and then uses the GetSetting function to display one of the settings. Because the default argument is specified, some value is guaranteed to be returned. Note that section names can't be retrieved with GetSetting. Finally, the DeleteSetting statement removes all the application's entries.
Код
' Variant to hold 2-dimensional array returned by GetSetting.
Dim MySettings As Variant
' Place some settings in the registry.
SaveSetting "MyApp","Startup", "Top", 75
SaveSetting "MyApp","Startup", "Left", 50

Debug.Print GetSetting(appname := "MyApp", section := "Startup", _
                      key := "Left", default := "25")

DeleteSetting "MyApp", "Startup"

GetAllSettings Function Example
This example first uses the SaveSetting statement to make entries in the Windows registry for the application specified as appname, then uses the GetAllSettings function to display the settings. Note that application names and section names can't be retrieved with GetAllSettings. Finally, the DeleteSetting statement removes the application's entries.
Код
' Variant to hold 2-dimensional array returned by GetAllSettings
' Integer to hold counter.
Dim MySettings As Variant, intSettings As Integer
' Place some settings in the registry.
SaveSetting appname := "MyApp", section := "Startup", _
key := "Top", setting := 75
SaveSetting "MyApp","Startup", "Left", 50
' Retrieve the settings.
MySettings = GetAllSettings(appname := "MyApp", section := "Startup")
  For intSettings = LBound(MySettings, 1) To UBound(MySettings, 1)
     Debug.Print MySettings(intSettings, 0), MySettings(intSettings, 1)
  Next intSettings
DeleteSetting "MyApp", "Startup"



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

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


Шустрый
*


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

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



cardinalизвени .....но ничего не понял......немного с английским проблема .....у меня в прогу изменяеться Caption в Label ....и мне нужно .. если я даже изменил Caption то при следушей загрузке программы там были те значения которые ...были самыми последними......" это у меня программа типа голосование" и мне надо что бы сохранялись количество голосов
PM MAIL ICQ   Вверх
shilnik
Дата 30.12.2003, 05:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Сохранение значения в реестре:
SaveSetting "MyApp","Startup", "Top", 75
Значение 75 будет присвоено параметру Top в ветке
HKEY_CURRENT_USER\Software\VB and VBA Program Settings\MyApp\Startup

Возвращение значения из реестра:
GetSetting("MyApp","Startup", "Top", 50)
Функция вернет 50 если ключа Top не существует.




--------------------
каталог товаров qp1
PM MAIL WWW   Вверх
Vadok
Дата 30.12.2003, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



а куда писать это

HKEY_CURRENT_USER\Software\VB and VBA Program Settings\MyApp\Startup

PM MAIL ICQ   Вверх
~FoX~
Дата 30.12.2003, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


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

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



Vadok
А можно плюнуть на реестр и повозиться с *.ini - шками wink.gif


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
shilnik
Дата 30.12.2003, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Vadok @ 30.12.2003, 08:35)
а куда писать это

HKEY_CURRENT_USER\Software\VB and VBA Program Settings\MyApp\Startup

Никуда не писать smile.gif
Просто VB сохраняет все именно в этой ветке:
HKEY_CURRENT_USER\Software\VB and VBA Program Settings\
дальше MyApp, Startup, Top - это то,что ты указываешь в SaveSetting

Если напишешь
SaveSetting "A1","A2", "K1", 40,
то все сохранится:
HKEY_CURRENT_USER\Software\VB and VBA Program Settings\А1\А2\К1 = 40

А вообще ~FoX~ прав можно и с ini-шками, а то реестр даже на чистой машине загажен.



--------------------
каталог товаров qp1
PM MAIL WWW   Вверх
Vadok
Дата 30.12.2003, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



а как зделать через ini confused.gif?
PM MAIL ICQ   Вверх
shilnik
Дата 31.12.2003, 08:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Используй API:

Private Const MAX_STRING = 1024
Описание АПи функций
Private Declare Function api_GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" ( _
ByVal lpApplicationName As String, ByVal lpKeyName As String, _
ByVal lpDefault As String, ByVal lpReturnedString As String, _
ByVal nSize As Long, ByVal lpFileName As String _
) As Long
Private Declare Function api_WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" ( _
ByVal lpAppName As String, ByVal lpKeyName As String, _
ByVal lpString As String, ByVal lpFileName As String _
) As Long
Private Declare Function api_GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" ( _
ByVal lpAppName As String, ByVal lpKeyName As String, _
ByVal nDefault As Long, ByVal lpFileName As String _
) As Long


Public Function GetPrivateProfileString(cAppName As String, cKeyName As String, cDefault As String, cFileName As String) As String
Dim sBuf As String
Dim nRet As Long
sBuf = String(MAX_STRING, vbNullChar)
nRet = api_GetPrivateProfileString(cAppName, cKeyName, cDefault, sBuf, MAX_STRING, cFileName)
sBuf = StrZ(sBuf)
GetPrivateProfileString = sBuf
End Function

Public Function WritePrivateProfileString(cAppName As String, cKeyName As String, cValue As String, cFileName As String) As Boolean
Dim nRet As Long
nRet = api_WritePrivateProfileString(cAppName, cKeyName, cValue, cFileName)
WritePrivateProfileString = True
End Function

Public Function GetPrivateProfileInt(cAppName As String, cKeyName As String, nDefault As Long, cFileName As String) As Long
Dim nRet As Long
nRet = api_GetPrivateProfileInt(cAppName, cKeyName, nDefault, cFileName)
GetPrivateProfileInt = nRet
End Function


--------------------
каталог товаров qp1
PM MAIL WWW   Вверх
Vadok
Дата 3.1.2004, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



это через ini ??
PM MAIL ICQ   Вверх
Vadok
Дата 5.1.2004, 03:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Люди так хто нибудь мне скажит как зделать что бы Caption Labela сохронялся и загружался с ini файла...
PM MAIL ICQ   Вверх
shilnik
Дата 5.1.2004, 06:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Да, это через ИНИ.
Все, что было в моем предыдущем посте запихиваешь в модель, например WinAPI.mod, а в глевной форме:

Private Sub Form_Load()

Lfbel1.Caption=GetPrivateProfileString("Label", "Caption", "0", App.Path & "\Config.ini")

End Sub

Private Sub Form_Unload(Cancel As Integer)

If not WritePrivateProfileString("Label", "Caption", Lfbel1.Caption, App.Path & "\Config.ini") then
MsgBox "Ошибка записи конфигурации"
End if

End Sub

Вроде бы так, пробуй.

ЗЫ. С наступившим!!!


--------------------
каталог товаров qp1
PM MAIL WWW   Вверх
Vadok
Дата 5.1.2004, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



shilnikнеа неработае....гдето ошибка.... мне сказали что можно без АРИ функций
PM MAIL ICQ   Вверх
cardinal
Дата 5.1.2004, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


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

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



Ты сразу руки то не опускай. Поправь вот эту строку
Код
sBuf = StrZ(sBuf)

на эту
Код
sBuf = Left(sBuf, nRet)

в процедуре GetPrivateProfileString и все будет работать!


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

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

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

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

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

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


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

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


 




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


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

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