Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сериализация ListBox, Что яделаю не так?? 
:(
    Опции темы
gambit
Дата 3.11.2008, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: 3
Всего: 40



Скажите что не так?? Задача: 
открыть файл
десериализировать ListBox
добавить элемент
запакаовать обратно

Код

                ListBox listbox = new ListBox();
                
                FileStream reader = new FileStream("Event.dat", FileMode.Open, FileAccess.Read);
                BinaryFormatter formatter = new BinaryFormatter();
                listbox.Items.Add(((string)formatter.Deserialize(reader)));
                reader.Close();

                listbox.Items.Add(s);
                
                FileStream writer = new FileStream("Event.dat", FileMode.Create, FileAccess.Write);
                int nodesCount = listbox.Items.Count;
                string[] listboxs = new string[nodesCount];
                for (int i = 0; i < nodesCount; i++)
                {
                    listboxs[i] = listbox.Items[i].ToString();
                }
                formatter.Serialize(writer, listboxs);
                writer.Close();

PM MAIL ICQ Skype   Вверх
Bogdan1024
Дата 3.11.2008, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: 3
Всего: 13



Мэн! Сериализовать листбокс нельзя! Бинарно можно сериализовать лишь то, что помечено атрибутом SerializableAttribute.

Добавлено через 1 минуту и 28 секунд
А, выкупил что ты имеешь ввиду под листбоксом smile

Добавлено через 4 минуты и 34 секунды
Код

listbox.Items.Add(((string)formatter.Deserialize(reader)));

Ды десериализуешь массив и пытаешься его добавить, а этот метод добавляет по одному элементу за раз.


--------------------
user posted image
PM MAIL   Вверх
gambit
Дата 3.11.2008, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: 3
Всего: 40



Цитата(Bogdan1024 @  3.11.2008,  20:00 Найти цитируемый пост)
Ды десериализуешь массив и пытаешься его добавить, а этот метод добавляет по одному элементу за раз. 

Подскажи пож. как сделать.
PM MAIL ICQ Skype   Вверх
Bogdan1024
Дата 3.11.2008, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: 3
Всего: 13



Меняешь
Код

listbox.Items.Add(((string)formatter.Deserialize(reader)));

на
Код

            string[] strings = (string[])formatter.Deserialize(reader);
            this.listBox1.Items.Clear();//удаляем из листбокса то шо там было
            for (int i = 0 ; i < strings.Length; i++)
                this.listBox1.Items.Add(strings[i]);



Добавлено через 48 секунд
Вот те код для справки. В ататче.

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  WindowsApplication2.rar 31,58 Kb


--------------------
user posted image
PM MAIL   Вверх
gambit
Дата 4.11.2008, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: 3
Всего: 40



Bogdan1024, спасибо, чет меня вчера клинило, думал мозг взорвется. За старания держи плюс.
PM MAIL ICQ Skype   Вверх
jonie
Дата 4.11.2008, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118



AddRange там есть. Не надо циклов


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1208 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.