Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Восстановление проги как спящий режим Добавлено: 02.04.06 19:53  

Автор вопроса:  ChemistN1 | Web-сайт: snurs.narod.ru
У меня вопрос: можно ли сохранить содержимое опер. памяти, занимаемой программой, а потом это содержимое загрузить в свободное пространство оп. памяти, как это делает XP в спящем режиме, и полностью востановить тогдашнее состояние системы? Или, если этот способ не годится, есть ли какой другой, который может восстановить состояние закрытой программы?

Ответить

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

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


 

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

Вопросов: 236
Ответов: 8362
 Профиль | | #1 Добавлено: 03.04.06 03:25
например брутфорс перебирая пароли умеет сохранять прогресс чтобы продолжить в слейдущий раз, он что, сохраняет содержимое того куска памяти которую юзает? Или сохраняет текущий пароль и возможно некоторые другие настройки в какой нибуть текстовичёк, ini, реестр... Скорее второе ;) Сделай аналогично...

Ответить

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



Вопросов: 7
Ответов: 43
 Web-сайт: snurs.narod.ru
 Профиль | | #2
Добавлено: 03.04.06 05:15
Замечательно, а если это не моя программа, прогресс которой надо сохранить? Или если моя, но количество переменных, которые надо сохранить, зашкаливает за 1000000, и постоянно меняется от версии к версии? Какие надо сохранять, какие нет - запомнить невозможно!

Ответить

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


 

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

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 03.04.06 12:53
а если это не моя программа, прогресс которой надо сохранить?

Для этого и был придуман спящий режим...
Или если моя, но количество переменных, которые надо сохранить, зашкаливает за 1000000
Неправельно организована структра программы, с расебегу аб стенку, и всё переписать...

Ответить

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



Вопросов: 7
Ответов: 43
 Web-сайт: snurs.narod.ru
 Профиль | | #4
Добавлено: 03.04.06 18:47
а если это не моя программа, прогресс которой надо сохранить?

Для этого и был придуман спящий режим...

А если комп надо перезагрузить (в смысле повис он например)?

Или если моя, но количество переменных, которые надо сохранить, зашкаливает за 1000000

Неправельно организована структра программы, с расебегу аб стенку, и всё переписать...

Угу, весь прикол в том, что этот 1000000 переменных действительно является 1000000 переменных и никак не оптимизируется. Все равно что база данных (считайте, что в ней 100 полей и 10000 записей, причем количество полей и записей постоянно меняется - как вы "организуете структуру программы"?), но не база данных (то бишь лишь похожа). В общем, по другому никак.


У меня другой вопрос: можно ли сохранить значение всех переменных из самой программы (есть ли такая команда), а потом их другой командой загрузить обратно? Это был бы идеальный вариант.

Ответить

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


 

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

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 05.04.06 00:07
Массивом это называется, а не 1 млн переменных из БД... ненадо мне
рассказывать что 1 млн переменных и подругому никак, если никак - у
тебя обе руки левые... Сохранить/Загрузить массив любой мерности,
двухмерности итп... можно действительно довольно просто...

Я лабу подруге делал, вот её шмот:



Private Type Goods
    NameGoods As String * 50    'Наименование
    MoneyGoods As Single       'Цена
End Type

Dim myGoods() As Goods        'Объявили массив пользовательского типа

Private Sub SaveArrayToFile(SaveArray() As Goods, PathFile As String)
'Сохраняет массив пользовательского типа в указанный в параметрых файл
    On Error Resume Next 'Если будет ошибка - строка где была ошибка будет пропущена автоматически
    Kill PathFile 'удаляем старый файл
    Dim n As Byte, i As Integer
    n = FreeFile 'первый свободный индекс для открытия файла
    Open PathFile For Binary As #n
     Put n, , SaveArray
    Close #n
End Sub

Private Sub LoadArrayFromFile(PathFile As String, ReturnArray() As Goods)
'Загрузка из файла в массив пользовательского типа данных
On Error Resume Next
   Dim n As Byte, i As Integer
   n = FreeFile 'первый свободный индекс для открытия файла
   Open PathFile For Binary As #n
        ReDim ReturnArray(LOF(n) / Len(ReturnArray(0)) - 1) 'Определяем размер массива
        Get n, , ReturnArray
   Close #n
End Sub


Аналогично можно было сохранить/загрузить не массив структуры а
двухмерный массив любой размерности...

Переменная как правило счётчик или рабочая лошадка, если у тебя
переменная

Dim vasya1 as String
Dim vasya2 as String
Dim vasya3 as String

И в них аналогичные данные, значит обе руки левые...

Ответить

Номер ответа: 6
Автор ответа:
 ChemistN1



Вопросов: 7
Ответов: 43
 Web-сайт: snurs.narod.ru
 Профиль | | #6
Добавлено: 05.04.06 05:46
Спасибо, однако руки у меня не обе левые. С массивами понятно, их не так много, не больше сотни, а вот как мне несколько тысяч переменных в голове удержать, когда со следующей версией часть сохранять уже не надо, а часть надо?

Ответить

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


 

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

Вопросов: 236
Ответов: 8362
 Профиль | | #7 Добавлено: 05.04.06 16:01
Я не верю в приложение созданное на ВБ такого объема что надо было бы
одновременно работать с тысячей, а то и с миллионом переменных! Я тебе
пытаюсь объяснить что если у тебя в приложении действительно столько
переменных, значит ты не продумал структуру всей программы и написана
она до невозможности криво...

Ответить

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



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #8 Добавлено: 05.04.06 16:36
Ну почему же? Объяви в процедуре несколько переменных и замкни её в тупую рекурсию на саму себя :)

Ответить

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



Вопросов: 7
Ответов: 43
 Web-сайт: snurs.narod.ru
 Профиль | | #9
Добавлено: 05.04.06 18:08
А я вот прикидываю - ничего я не загнул. Реально так получается. В общем, если до сих пор не верите, придется сказать - это игровые данные, а в играх постоянное изменение sav'а из-за постоянных изменений кода - головная боль. Только не надо говорить "ну с тобой все понятно". Я и серьещные программы пишу. Иногда...

Ответить

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


 

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

Вопросов: 236
Ответов: 8362
 Профиль | | #10 Добавлено: 06.04.06 18:53

Назови мне хоть одну игрушку в которой юзается 1 млн переменных, я
весь диапазон её памяти просканирую на значения через ArtMoney, я
уверен на 99% что дале в ArtMoney (а она показывает далеко больше чем
переменных на самом деле) небудет 1 млн адресов на переменные (P.S. к
тому же там не только на переменные... и всёравно небудет)

По поводу рекурсии. Небуду даже говорить что это плохо, медленно итп
итд... всегда можно обойтись без неё... Но даже если пускай и
рекурсия, тогда на каждом шаге сохранять текущее значение переменной и
уже потом вызывать себя снова...

Ответить

Страница: 1 |

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



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