Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Как сохранить данные в .ехе файле? Добавлено: 20.11.06 17:42  

Автор вопроса:  appolinari
Имется ли возможнозность сохранить данные в ехешник?
Например у меня есть форма с кучей текстовых окошек. И я хочу, чтобы тот текст, который я ввожу в текстовые окна сохранялся при выходе из программы. Не сильно хочется запоминать всё в отдельный файл и считывать при запуске.

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 20.11.06 19:27
А лучше именно так.

Ответить

Номер ответа: 2
Автор ответа:
 appolinari



Вопросов: 10
Ответов: 30
 Профиль | | #2 Добавлено: 20.11.06 21:15
А лучше именно так.

В смысле сохранить в отдельный файл и считывать при запуске программы? А чем это лучше?(простите ламера великодушно!!!)

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 20.11.06 22:34
Ну а чем хуже? :)

Ответить

Номер ответа: 4
Автор ответа:
 Shark



ICQ: 284036855 

Вопросов: 35
Ответов: 155
 Web-сайт: www.ma26.ru
 Профиль | | #4
Добавлено: 20.11.06 23:10
Этот файл можно легко подредактировать, перенести куда нибудь, программу удалить, а файл останется. Когда ты, исправил ошибку в программе сделал новый exe заново вводить не надо

Ответить

Номер ответа: 5
Автор ответа:
 HACKER


 

Разработчик 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
Автор ответа:
 appolinari



Вопросов: 10
Ответов: 30
 Профиль | | #6 Добавлено: 21.11.06 07:53
исправил ошибку в программе сделал новый exe заново вводить не надо

Но писать в exe - изврат...

возможнозно вы правы.A куда этот .ini лучше спрятать,так чтобы глаза не мозолил?

Ответить

Номер ответа: 7
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #7 Добавлено: 21.11.06 09:15
В смысле сохранить в отдельный файл и считывать при запуске программы? А чем это лучше?(простите ламера великодушно!!!)

Тем что в работающий exe ты не сможешь внести изменнеия, и тем что у тебя может не оказаться прав вообще писать туда куда ты хочешь!

Писать нужно в специальн опредназначеные для этого папки - вроде, Documents And Settings\UserName\ApplicationData - не конкретно такой путь, а как-то через переменные окружения или АПИ нужно узнавать куда писать, я сам не совсем хорошо это помню - нужно посмотреть Guidance.
Так у тебя будет гарантия, что туда, куда ты собираешься писать, у тебя будет доступ (если ну будет, то юзер сам себе злобный буратина и значит у него и так весь софт глючит).

Ответить

Номер ответа: 8
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #8 Добавлено: 21.11.06 23:04
Тем что в работающий exe ты не сможешь внести изменнеия
Как? А в ресурсы? (пример выше :) )

Ответить

Номер ответа: 9
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #9 Добавлено: 21.11.06 23:14
> Тем что в работающий exe ты не сможешь внести изменнеия
Как? А в ресурсы? (пример выше :) )

Ну я понял что в ресурсы, но что, они изменяются в РАБОТАЮЩЕМ EXE??? Отказываюсь в это верить!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам