IPB

Здравствуйте, гость ( Вход | Регистрация )

> Visual Basic 6.0, Один вопрос. В книгах банально не нашел.
Гость_Mamont_*
сообщение Feb 1 2007, 10:29
Сообщение #1





Guests






Необходимо написать программу. Все могу сам, но уперся в один вопрос, решение которого ни где не могу найти.

Требуется, чтобы программа не создавая никаких дополнительных файлов могла хранить некоторый объем текстовой информации.

Т.е. запускаешь прогу, записываешь пару строк, закрываешь прогу. Опять запускаешь прогу, и информация введенная ранее доступна для чтения и редактирования.
Вернуться к началу страницы
 
+Цитировать сообщение
2 страниц V   1 2 >  
Создать новую тему
Ответов (1 - 19)
LLeSS
сообщение 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, пасиба, но необходимо, именно чтобы инфа была потом доступна и на другой машине sad.gif
Вернуться к началу страницы
 
+Цитировать сообщение
Гость_belka_*
сообщение Feb 1 2007, 12:15
Сообщение #5





Guests






БД рулят: научись работать с ними smile.gif
Вернуться к началу страницы
 
+Цитировать сообщение
Гость_Mamont_*
сообщение Feb 1 2007, 12:20
Сообщение #6





Guests






Цитата(belka @ Feb 1 2007, 12:15) *
БД рулят: научись работать с ними smile.gif

Это не сложно, но необходимо чтобы никаких файлов небыло. А при работе с БД эта самая БД должна присутствовать. wink.gif
Вернуться к началу страницы
 
+Цитировать сообщение
Гость_belka_*
сообщение Feb 1 2007, 12:21
Сообщение #7





Guests






а БД у всех уже есть
так раз не сложно, как ты себе это представляешь?
Вернуться к началу страницы
 
+Цитировать сообщение
LLeSS
сообщение 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






Цитата(belka @ Feb 1 2007, 12:21) *
а БД у всех уже есть
так раз не сложно, как ты себе это представляешь?

Самый примитивный пример программы, работающей с БД:


Код
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






Цитата
БД, это файлы.

однако же они функцианируют как приложения. В этом случае уже сама база(типа профлиса)выступает как ось.
Гггг slow.gif
Вернуться к началу страницы
 
+Цитировать сообщение
Гость_belka_*
сообщение Feb 1 2007, 12:32
Сообщение #11





Guests






Цитата(Mamont @ Feb 1 2007, 12:28) *
Самый примитивный пример программы, работающей с БД:

ну за чем писать код? (кстати он вроде лисий, хотя ща все работают через скулы)
ты просто расскажи как ты представляешь как себя ехе-шная программа будет изменять?
Вернуться к началу страницы
 
+Цитировать сообщение
Гость_Mamont_*
сообщение Feb 1 2007, 12:33
Сообщение #12





Guests






Цитата(belka @ Feb 1 2007, 12:29) *
однако же они функцианируют как приложения. В этом случае уже сама база(типа профлиса)выступает как ось.
Гггг slow.gif

Требуется не просто исполняемый файл, а четка екзешник sad.gif
Вернуться к началу страницы
 
+Цитировать сообщение
Гость_Mamont_*
сообщение Feb 1 2007, 12:36
Сообщение #13





Guests






Цитата(belka @ Feb 1 2007, 12:32) *
ну за чем писать код? (кстати он вроде лисий, хотя ща все работают через скулы)
ты просто расскажи как ты представляешь как себя ехе-шная программа будет изменять?

Еслиб я знал, спрашивать не стал бы...
Вернуться к началу страницы
 
+Цитировать сообщение
LLeSS
сообщение 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






Цитата(LLeSS @ Feb 1 2007, 12:36) *
хм. править екзешник, к томуже запущенного приложения. имхо бред
что за прога?

Что-то типа базы данных. Содержит короткие записи.
Сдается мне, что она просто куда-то ссылается. Сдается мне, зря я эту тему создал... Хотя сам разобрался.

Меня страшно развели! Прикол был в том, что программы ссылается на закодированный скрытый файл. А с машины на машину она, само-собой, переносилась в папке!

Прошу у всех прощения... blush.gif
Чес слово, сейчас пойду и надаю по рогам приколистам! mad.gif
Вернуться к началу страницы
 
+Цитировать сообщение
Гость_belka_*
сообщение Feb 1 2007, 12:46
Сообщение #16





Guests






ехе-шник можно перекомпилировать, представляю тебе небольшие шаги действий.
1) делаешь программу, однако же строго в начале прописываешь все переменные(!!!!!!!!!)
2) в программе следует предусматреть сохранение нового ехе-файла и его запуск с послудуещем завершением старой программы.

(детально:
а) программа содержит свой же код.
б) программа пишет код в ноый файл
в) программа запускает новый файл
г) программазакрывает себя после успешного запуска. бугыг)

3) открой в ассемблере скомпелированную прогу(ехе-файл).
4) найди блок с резервацией переменных(сам читай как это делать)
5) запиши этот нескомпелированный код в начальный код программы на бейсике
6) заново откомпелируй ее предусматривая пункт 2)
вот и всё.
п.с. блондинки рулят smile.gif
Вернуться к началу страницы
 
+Цитировать сообщение
Гость_Mamont_*
сообщение Feb 1 2007, 12:49
Сообщение #17





Guests






Цитата(belka @ Feb 1 2007, 12:46) *
ехе-шник можно перекомпилировать, представляю тебе небольшие шаги действий.
1) делаешь программу, однако же строго в начале прописываешь все переменные(!!!!!!!!!)
2) в программе следует предусматреть сохранение нового ехе-файла и его запуск с послудуещем завершением старой программы.

(детально:
а) программа содержит свой же код.
б) программа пишет код в ноый файл
в) программа запускает новый файл
г) программазакрывает себя после успешного запуска. бугыг)

3) открой в ассемблере скомпелированную прогу(ехе-файл).
4) найди блок с резервацией переменных(сам читай как это делать)
5) запиши этот нескомпелированный код в начальный код программы на бейсике
6) заново откомпелируй ее предусматривая пункт 2)
вот и всё.
п.с. блондинки рулят smile.gif

Хм... Интересное решение... Обязательно попробую, спасибо. rolleyes.gif
Вернуться к началу страницы
 
+Цитировать сообщение
Amp
сообщение Feb 1 2007, 12:51
Сообщение #18


Мега постер
Иконка группы

Группа: Local moder
Сообщений: 1,712
Регистрация: 21.8.2006
Пользователь №: 1,269



Цитата(belka @ Feb 1 2007, 12:46) *
б) программа пишет код в ноый файл

Секции/заголовки и прочее сами ручками формировать будете? smile.gif) Аж полноценный компилятор с линковщиком получается

Сообщение отредактировал Amp - Feb 1 2007, 12:51


--------------------
irc-капец

#КартинкА#
Вернуться к началу страницы
 
+Цитировать сообщение
Гость_belka_*
сообщение Feb 1 2007, 12:54
Сообщение #19





Guests






Цитата(Amp @ Feb 1 2007, 12:51) *
Секции/заголовки и прочее сами ручками формировать будете? smile.gif) Аж полноценный компилятор с линковщиком получается

ну сама за место компилятора, умнегГГ.
не моим то способом так то ведь придется весь кампилятор в нее засунуть!!!!
чисто сработано! все так же как и ворд файлы изменяет, бугыг
Вернуться к началу страницы
 
+Цитировать сообщение
Amp
сообщение Feb 1 2007, 12:58
Сообщение #20


Мега постер
Иконка группы

Группа: Local moder
Сообщений: 1,712
Регистрация: 21.8.2006
Пользователь №: 1,269



Цитата(belka @ Feb 1 2007, 12:54) *
ну сама за место компилятора, умнегГГ.
не моим то способом так то ведь придется весь кампилятор в нее засунуть!!!!
чисто сработано! все так же как и ворд файлы изменяет, бугыг

Вы понимаете о чем говорите? Я слабо догоняю smile.gif
"Открой в ассемблере скомпилированную прогу" - хорошо написано smile.gif)

Сообщение отредактировал Amp - Feb 1 2007, 12:59


--------------------
irc-капец

#КартинкА#
Вернуться к началу страницы
 
+Цитировать сообщение

2 страниц V   1 2 >
ОтветитьСоздать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 2nd May 2024 - 19:57