Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Сохранение данных Добавлено: 10.09.03 16:47  

Автор вопроса:  gun242

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

Подскажите, плз, как такое лучше реализовать.

Может, есть простой пример подобной реализации?

Всем спасибо.

Ответить

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

Номер ответа: 1
Автор ответа:
  Артём Л.



ICQ: 280044491 

Вопросов: 43
Ответов: 227
 Профиль | | #1 Добавлено: 10.09.03 17:28

создаешь какунить структуру (класс, что хочешь), запи[sensored]шь туда все данные, а потом можешь сделать следующее:

Dim stream As System.IO.Stream = System.IO.File.Open("save.dat", System.IO.FileMode.Create)

Dim formatter As System.Runtime.Serialization.Formatters.Binary.BinaryFormatter = New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()

formatter.Serialize(stream, MyData)

'MyData - твоя перемення (ссылка на класс, структуру ...)

 

а вот так можна считать данные

 

Dim b = formatter.Deserialize(stream) 'stream - естественно нужно ешо открыть

stream.Close()

b - будет переменной  MyData

 

-----------------

если не подходит такой способ , то можна помучаться самому сохраняя все данные в формате XML, благо в .нет по этому поводу классов хватает (лично я таким способом и пользуюсь)

 

 

Ответить

Номер ответа: 2
Автор ответа:
  Артём Л.



ICQ: 280044491 

Вопросов: 43
Ответов: 227
 Профиль | | #2 Добавлено: 10.09.03 17:31

а что это за запи[sensored]шь ?

я ничего плохого не хотел сказать!

что плохого в слове запи_х_у_е_ш?

Ответить

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



Вопросов: 15
Ответов: 115
 Web-сайт: www.fea.nxt.ru
 Профиль | | #3
Добавлено: 10.09.03 17:39
function LoadFile($fname)
{ $f=@fopen(GBook, "rb");
 if(!$f) return array();
 $Book=Unserialize(fread($f, 100000));
 fclose($f);
 return $Book;
}
function SaveBook ($fname, $Book)
{ $f=fopen(GBook, "wb");
 fwrite($f, Serialize($Book));
 fclose($f);
Это на PHP - куда удобней! Скомпилируй похожие функции на С++ в библиотеку, и вызывай оттуда.

Ответить

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



ICQ: 8440085 

Вопросов: 15
Ответов: 117
 Web-сайт: malyav.narod.ru
 Профиль | | #4
Добавлено: 11.09.03 07:13

Я бы использовал запись в ини-файл. Получится достаточно читабельно, как в самом файле, так и в коде программы. Можно считывать не все данные сразу и потом их в коде разгр[sensored]ь, а выборочно, по мере надобности. В инете масса приблуд для работы с ини. Я использую модуль с АПИ. А если ты хочешь скрыть какие-либо параметры, можно либо их зашифровать, либо в реестр.

Ответить

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



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #5 Добавлено: 11.09.03 10:17

На .NET это, конечно, удобно, на на VB6 не катит.

Можно конечно в ини файл сохранять, но я обычно делал дубово - просто запихивал все переменные в массив, затем скидывал этот массив через Put. Чтение, соответственно, через Get.

Ответить

Номер ответа: 6
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #6
Добавлено: 11.09.03 12:00
Я бы предложил соорудить структуру со всеми нужными полями, а потом
читать/писать в режиме Binary сразу структуры.

В .NET очень удобно юзать сериализацию.

Ответить

Номер ответа: 7
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #7
Добавлено: 11.09.03 13:20
To Артём: да вроде сказали, что надо не в .NET :-)) Хотя сериализация
- мощная вещь! Особнно при небольших объёмах данных (если не
приходится слишком забивать ОЗУ).

Ответить

Страница: 1 |

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



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