Страница 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();