Visual Basic 6.0, Один вопрос. В книгах банально не нашел. |
Здравствуйте, гость ( Вход | Регистрация )
Visual Basic 6.0, Один вопрос. В книгах банально не нашел. |
Гость_Mamont_* |
Feb 1 2007, 10:29
Сообщение
#1
|
Guests |
Необходимо написать программу. Все могу сам, но уперся в один вопрос, решение которого ни где не могу найти.
Требуется, чтобы программа не создавая никаких дополнительных файлов могла хранить некоторый объем текстовой информации. Т.е. запускаешь прогу, записываешь пару строк, закрываешь прогу. Опять запускаешь прогу, и информация введенная ранее доступна для чтения и редактирования. |
|
|
Feb 1 2007, 10:41
Сообщение
#2
|
|
N.N.G. Группа: Posters Сообщений: 292 Регистрация: 16.10.2005 Пользователь №: 103 |
Можно попробывать в реестр записать...если текст небольшой
Код Все необходимые установки приложения должны регистрироваться для текущего пользователя (User). Это отражено в названии ветви \HKEY_CURRENT_USER. Далее следует ветвь для приложений: \SOFTWARE. На следующем уровне обычно указывается фирма, но для приложений Visual Basic предусмотрена собственная ветвь — \VB AND VBA PROGRAM SETTINGS, где разработчик может сохранять установки приложения. При этом следует исходить из логики старых INIkфайлов. Верхний уровень обозначает имя приложения, при необходимости с номером версии. Ниже находятся секции, содержащие записи, через имена которых можно осуществлять доступ к соответствующим значениям. Visual Basic предлагает четыре команды для работы с реестром. Сохранение параметров С помощью функции SaveSetting записи сохраняются в реестре. [b]Save Setting[/b] SaveSetting (Имя приложения, Секция, Ключ, Установка) SaveSetting "BigMoney", "User", "Name", "Hugo" В примере создана новая ветвь реестра с именем BigMoney. Под ней находится ветвь User, а в ней запись Name со значением Hugo. Обратите внимание, что структура должна соответствовать определенному стандарту. Параметр Имя_приложения обычно содержит имя приложения. Для Windows не имеет значения, что здесь будет записано, но пользователь, просматривающий реестр, имеет шанс узнать, какой программе принадлежит запись. Имя секции также должно быть значимым. Считывание параметров Для считывания установок служит функция GetSetting. [b]GetSetting[/b] GetSetting (Имя_приложения. Секция, Ключ [, По_уыолчанию]) Параметр По_умолчанию помогает узнать, успешно ли выполнено считывание записи. Если считывание указанной области невозможно, функция возвращает значение, присвоенное параметру По_умолчанию. Если же процесс считывания завершился успешно, то в качестве возвращаемого значения получаем сохраненную в реестре запись. vReturn = GetSetting("BigMoney", "User", "Name", "Безуспешно") Если считывание не может производиться, например изkза того, что секции или записи вообще не существует, то в качестве возвращаемого значения получаем "Безуспешно", т.е. параметр По_умолчанию. [b]GetAllSettings[/b] С помощью функции GetAllSetting считываются все записи из секции. При этом возвращается массив типа Variant со всеми элементами указанной секции. GetAllSettings (Имя_приложения, Секция} Удаление параметров При деинсталляции приложений следует особенно заботиться об удалении ненужных установок в реестре, что предотвращает накопление информационного мусора. [b]DeleteSetting[/b] Для этого в Visual Basic имеется оператор DeleteSetting, который удаляет запись или всю секцию. DeleteSetting (Имя приложения. Секция[, Ключ}) DeleteSetting "BigMoney","User" В примере удаляется вся информация о пользователе в секции User. Для работы с другими областями реестра следует использовать функции Windows API. Но при работе на другой машине не будет сохранен результат +если в универе, то может не быть доступа к реестру. тогда мне кажется только чз файл... Сообщение отредактировал LLeSS - Feb 1 2007, 10:47 |
|
|
Гость_belka_* |
Feb 1 2007, 12:14
Сообщение
#3
|
Guests |
ЕХЕ-файлы перезаписать сложно, таких мозгов наверно в чебах нетюю...
DLL спасет тебя, если не хочешь создавать свои файлы. бугыг |
|
|
Гость_Mamont_* |
Feb 1 2007, 12:14
Сообщение
#4
|
Guests |
LLeSS, пасиба, но необходимо, именно чтобы инфа была потом доступна и на другой машине
|
|
|
Гость_belka_* |
Feb 1 2007, 12:15
Сообщение
#5
|
Guests |
БД рулят: научись работать с ними
|
|
|
Гость_Mamont_* |
Feb 1 2007, 12:20
Сообщение
#6
|
Guests |
|
|
|
Гость_belka_* |
Feb 1 2007, 12:21
Сообщение
#7
|
Guests |
а БД у всех уже есть
так раз не сложно, как ты себе это представляешь? |
|
|
Feb 1 2007, 12:22
Сообщение
#8
|
|
N.N.G. Группа: Posters Сообщений: 292 Регистрация: 16.10.2005 Пользователь №: 103 |
БД, это файлы.
Объясни что за софт. Может смогу помочь. Сообщение отредактировал LLeSS - Feb 1 2007, 12:23 |
|
|
Гость_Mamont_* |
Feb 1 2007, 12:28
Сообщение
#9
|
Guests |
а БД у всех уже есть так раз не сложно, как ты себе это представляешь? Самый примитивный пример программы, работающей с БД: Код Private Sub cmdAdd_Click() prompt$ = "Для добавления новой записи нажмите кнопку ОК" reply = MsgBox(prompt$, vbOKCancel, "Добавление записи") If reply = vbOK Then txtTitle.SetFocus datStudent.Recordset.AddNew End If End Sub Private Sub cmdDelete_Click() prompt$ = "Вы действительно хотите удалить этот курс ?" reply = MsgBox(prompt$, vbOKCancel, "Удаление записи") If reply = vbOK Then datStudent.Recordset.Delete datStudent.Recordset.MoveNext End If End Sub Private Sub cmdFind_Click() prompt$ = "Введите полное наименование курса." SearchStr$ = InputBox(prompt$, "Поиск курса") datStudent.Recordset.Index = "ClassName" datStudent.Recordset.Seek "=", SearchStr$ If datStudent.Recordset.NoMatch Then datStudent.Recordset.MoveFirst End If End Sub Private Sub cmdQuit_Click() End End Sub Private Sub Form_Load() prompt$ = _ "Вы хотите создать резервную копию ваших данных?" reply = MsgBox(prompt$, vbOKCancel, datStudent.DatabaseName) If reply = vbOK Then FileNm$ = InputBox$ _ ("Введите путь где будет создана резервная копия.") If FileNm$ <> "" Then _ FileCopy datStudent.DatabaseName, FileNm$ End If End Sub Само собой это кусок программы Сообщение отредактировал Mamont - Feb 1 2007, 12:30 |
|
|
Гость_belka_* |
Feb 1 2007, 12:29
Сообщение
#10
|
Guests |
Цитата БД, это файлы. однако же они функцианируют как приложения. В этом случае уже сама база(типа профлиса)выступает как ось. Гггг |
|
|
Гость_belka_* |
Feb 1 2007, 12:32
Сообщение
#11
|
Guests |
|
|
|
Гость_Mamont_* |
Feb 1 2007, 12:33
Сообщение
#12
|
Guests |
|
|
|
Гость_Mamont_* |
Feb 1 2007, 12:36
Сообщение
#13
|
Guests |
|
|
|
Feb 1 2007, 12:36
Сообщение
#14
|
|
N.N.G. Группа: Posters Сообщений: 292 Регистрация: 16.10.2005 Пользователь №: 103 |
хм. править екзешник, к томуже запущенного приложения. имхо бред
что за прога? Сообщение отредактировал LLeSS - Feb 1 2007, 12:37 |
|
|
Гость_Mamont_* |
Feb 1 2007, 12:46
Сообщение
#15
|
Guests |
хм. править екзешник, к томуже запущенного приложения. имхо бред что за прога? Что-то типа базы данных. Содержит короткие записи. Сдается мне, что она просто куда-то ссылается. Сдается мне, зря я эту тему создал... Хотя сам разобрался. Меня страшно развели! Прикол был в том, что программы ссылается на закодированный скрытый файл. А с машины на машину она, само-собой, переносилась в папке! Прошу у всех прощения... Чес слово, сейчас пойду и надаю по рогам приколистам! |
|
|
Гость_belka_* |
Feb 1 2007, 12:46
Сообщение
#16
|
Guests |
ехе-шник можно перекомпилировать, представляю тебе небольшие шаги действий.
1) делаешь программу, однако же строго в начале прописываешь все переменные(!!!!!!!!!) 2) в программе следует предусматреть сохранение нового ехе-файла и его запуск с послудуещем завершением старой программы. (детально: а) программа содержит свой же код. б) программа пишет код в ноый файл в) программа запускает новый файл г) программазакрывает себя после успешного запуска. бугыг) 3) открой в ассемблере скомпелированную прогу(ехе-файл). 4) найди блок с резервацией переменных(сам читай как это делать) 5) запиши этот нескомпелированный код в начальный код программы на бейсике 6) заново откомпелируй ее предусматривая пункт 2) вот и всё. п.с. блондинки рулят |
|
|
Гость_Mamont_* |
Feb 1 2007, 12:49
Сообщение
#17
|
Guests |
ехе-шник можно перекомпилировать, представляю тебе небольшие шаги действий. 1) делаешь программу, однако же строго в начале прописываешь все переменные(!!!!!!!!!) 2) в программе следует предусматреть сохранение нового ехе-файла и его запуск с послудуещем завершением старой программы. (детально: а) программа содержит свой же код. б) программа пишет код в ноый файл в) программа запускает новый файл г) программазакрывает себя после успешного запуска. бугыг) 3) открой в ассемблере скомпелированную прогу(ехе-файл). 4) найди блок с резервацией переменных(сам читай как это делать) 5) запиши этот нескомпелированный код в начальный код программы на бейсике 6) заново откомпелируй ее предусматривая пункт 2) вот и всё. п.с. блондинки рулят Хм... Интересное решение... Обязательно попробую, спасибо. |
|
|
Feb 1 2007, 12:51
Сообщение
#18
|
|
Мега постер Группа: Local moder Сообщений: 1,712 Регистрация: 21.8.2006 Пользователь №: 1,269 |
б) программа пишет код в ноый файл Секции/заголовки и прочее сами ручками формировать будете? ) Аж полноценный компилятор с линковщиком получается Сообщение отредактировал Amp - Feb 1 2007, 12:51 -------------------- |
|
|
Гость_belka_* |
Feb 1 2007, 12:54
Сообщение
#19
|
Guests |
Секции/заголовки и прочее сами ручками формировать будете? ) Аж полноценный компилятор с линковщиком получается ну сама за место компилятора, умнегГГ. не моим то способом так то ведь придется весь кампилятор в нее засунуть!!!! чисто сработано! все так же как и ворд файлы изменяет, бугыг |
|
|
Feb 1 2007, 12:58
Сообщение
#20
|
|
Мега постер Группа: Local moder Сообщений: 1,712 Регистрация: 21.8.2006 Пользователь №: 1,269 |
ну сама за место компилятора, умнегГГ. не моим то способом так то ведь придется весь кампилятор в нее засунуть!!!! чисто сработано! все так же как и ворд файлы изменяет, бугыг Вы понимаете о чем говорите? Я слабо догоняю "Открой в ассемблере скомпилированную прогу" - хорошо написано ) Сообщение отредактировал Amp - Feb 1 2007, 12:59 -------------------- |
|
|
Текстовая версия | Сейчас: 2nd May 2024 - 19:57 |