Страница 1 из 1
Чтение/запись объекта в файл на С#
Добавлено: 02 июн 2010, 17:59
MrBrain
Подскажите пожалуйста как сделать чтение/запись объектов в файл, с возможностью удаления любого объекта в файле.
Re: Чтение/запись объекта в файл на С#
Добавлено: 03 июн 2010, 08:03
WinMain
В приложениях на .Net вся сериализация объектов делается преимущественно через XML. Туда записываются все свойства объектов, оттуда считываются, их можно динамически добавлять, удалять.
Если у тебя массив однотипных объектов, то их свойства можно предстваить в виде таблицы в том же XML или в локальной СУБД.
Re: Чтение/запись объекта в файл на С#
Добавлено: 03 июн 2010, 13:43
MrBrain
Да, мне нужно создать базу данных. А можно ли как-нибудь обойтись без XML? Не хотелось бы сейчас учить еще и его)
Re: Чтение/запись объекта в файл на С#
Добавлено: 03 июн 2010, 14:06
WinMain
Можно и без XML. Можешь использовать в качестве СУБД Microsoft Access. Файлы формата .mdb можо создавать, читать, записывать в них данные из программы через компонент DAO (Data Access Objects). В MSDN есть документация по этому компоненту. Причём наличие самой программы Microsoft Access на компьютере не является обязательным. Если нужно что-то более серьёзное и при этом бесплатное, то можно установить на компьютер MS SQL (Express edition), Postgre SQL или MySQL.
Re: Чтение/запись объекта в файл на С#
Добавлено: 04 июн 2010, 17:14
MrBrain
Решил все таки сделать с помощью массива объектов. А как можно записать/считать из файла массив объектов?
Re: Чтение/запись объекта в файл на С#
Добавлено: 06 июн 2010, 21:55
MrBrain
Сделал процедуру, а она выдает ошибку при вызове "В экземпляре объекта не задана ссылка на объект.", полдня не могу понять почему, помогите пожалуйста!
Код: Выделить всё
public basadann[] readb() //basadann это мой класс
{
basadann[] mas;
using (StreamReader sr = new StreamReader(@"c:\basa.txt"))
{
i = Convert.ToInt32 (sr.ReadLine());
mas = new basadann[i];
for (int j = 0; j < i; ++j)
{
mas[j].strana = sr.ReadLine();
mas[j].ploshad = sr.ReadLine();
mas[j].naselenie = sr.ReadLine();
mas[j].capital = sr.ReadLine();
}
sr.Close();
}
return mas;
}
//дальше сама программа
basadann[] basa;
basa=b.readb();