Страница: 1 |
Вопрос: Как сохранить данные в .ехе файле? | Добавлено: 20.11.06 17:42 |
Автор вопроса: ![]() |
Имется ли возможнозность сохранить данные в ехешник?
Например у меня есть форма с кучей текстовых окошек. И я хочу, чтобы тот текст, который я ввожу в текстовые окна сохранялся при выходе из программы. Не сильно хочется запоминать всё в отдельный файл и считывать при запуске. |
Ответы | Всего ответов: 9 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #1 | Добавлено: 20.11.06 19:27 |
А лучше именно так. |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 10 Ответов: 30 |
Профиль | Цитата | #2 | Добавлено: 20.11.06 21:15 |
А лучше именно так.
В смысле сохранить в отдельный файл и считывать при запуске программы? А чем это лучше?(простите ламера великодушно!!!) |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #3 | Добавлено: 20.11.06 22:34 |
Ну а чем хуже? ![]() |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ICQ: 284036855 Вопросов: 35 Ответов: 155 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 20.11.06 23:10 |
Этот файл можно легко подредактировать, перенести куда нибудь, программу удалить, а файл останется. Когда ты, исправил ошибку в программе сделал новый exe заново вводить не надо |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #5 | Добавлено: 20.11.06 23:29 |
Ну ок, на те...
' <МОДУЛЬ ДЛЯ ПРОГРАММНОГО ЧТЕНИЯ/ЗАПИСИ РЕСУРСОВ >|
' | ' = = = = = = = M A D E B Y H A C K E R = = = = = = | ' icq: 334479038, mail: no_detect@mail.ru | '==========================================================| Private Declare Function BeginUpdateResource Lib "kernel32" Alias "BeginUpdateResourceA" (ByVal pFileName As String, ByVal bDeleteExistingResources As Long) As Long Private Declare Function UpdateResource Lib "kernel32" Alias "UpdateResourceA" (ByVal hUpdate As Long, ByVal lpType As String, ByVal lpName As String, ByVal wLanguage As Long, lpData As Any, ByVal cbData As Long) As Long Private Declare Function EndUpdateResource Lib "kernel32" Alias "EndUpdateResourceA" (ByVal hUpdate As Long, ByVal fDiscard As Long) As Long Private Declare Function FindResourceEx Lib "kernel32" Alias "FindResourceExA" (ByVal hModule As Long, ByVal lpType As String, ByVal lpName As String, ByVal wLanguage As Long) As Long Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long Private Declare Function LockResource Lib "kernel32" (ByVal hResData As Long) As Long Private Declare Function SizeofResource Lib "kernel32" (ByVal hInstance As Long, ByVal hResInfo As Long) As Long Private Declare Function LoadResource Lib "kernel32" (ByVal hInstance As Long, ByVal hResInfo As Long) As Long Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long) Public Sub WriteRES(sFile As String, sData As String, sType As String, sName As String) Dim h As Long h = BeginUpdateResource(sFile, 0) Call UpdateResource(h, sType, sName, 1049, ByVal sData, Len(sData)) '1049 - язык Call EndUpdateResource(h, 0) End Sub Public Function ReadRES(sFile As String, sType As String, sName As String) As String Dim txt As String Dim hgRes As Long hLib = LoadLibrary(sFile) hRes = FindResourceEx(hLib, ByVal sType, ByVal sName, 1049) hLRes = LoadResource(hLib, hRes) hgRes = LockResource(hLRes) lenRes = SizeofResource(hLib, hRes) txt = Space(lenRes) CopyMemory ByVal txt, ByVal hgRes, lenRes FreeLibrary hLib ReadRES = txt End Function exe в который записуешь не должен быть запущен! Хотя вы неправы... Нормальные люди держат настройки в ini файлах, или в реестре... Но писать в exe - изврат... |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 10 Ответов: 30 |
Профиль | Цитата | #6 | Добавлено: 21.11.06 07:53 |
исправил ошибку в программе сделал новый exe заново вводить не надо
Но писать в exe - изврат...
возможнозно вы правы.A куда этот .ini лучше спрятать,так чтобы глаза не мозолил? |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #7 | Добавлено: 21.11.06 09:15 |
В смысле сохранить в отдельный файл и считывать при запуске программы? А чем это лучше?(простите ламера великодушно!!!)
Тем что в работающий exe ты не сможешь внести изменнеия, и тем что у тебя может не оказаться прав вообще писать туда куда ты хочешь! Писать нужно в специальн опредназначеные для этого папки - вроде, Documents And Settings\UserName\ApplicationData - не конкретно такой путь, а как-то через переменные окружения или АПИ нужно узнавать куда писать, я сам не совсем хорошо это помню - нужно посмотреть Guidance. Так у тебя будет гарантия, что туда, куда ты собираешься писать, у тебя будет доступ (если ну будет, то юзер сам себе злобный буратина и значит у него и так весь софт глючит). |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #8 | Добавлено: 21.11.06 23:04 |
Тем что в работающий exe ты не сможешь внести изменнеия Как? А в ресурсы? (пример выше ![]() |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #9 | Добавлено: 21.11.06 23:14 |
> Тем что в работающий exe ты не сможешь внести изменнеия
Как? А в ресурсы? (пример выше ![]() Ну я понял что в ресурсы, но что, они изменяются в РАБОТАЮЩЕМ EXE??? Отказываюсь в это верить! |
Страница: 1 |
|