Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
6 / 6 / 4
Регистрация: 16.11.2013
Сообщений: 134

Сериализация нарисованных фигур в файл для дальнейшей работы с ними после перезапуска программы

07.04.2014, 00:19. Показов 1270. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть графический редактор. На нём можно рисовать разные фигуры, двигать их, менять размеры и т.д. (Естественно, есть система классов этих фигур). Все действия с фигурами производятся через коллекцию фигур, которая пополняется каждый раз, когда мы рисуем новую фигуру.

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

вот так я сохраняю:
C#
1
2
3
4
5
6
7
8
9
10
11
12
        private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SaveLoad save = new SaveLoad();
            save.list = Image.collection;
 
            using (FileStream fs = new FileStream("Figures.txt", FileMode.Create))
            {
                BinaryFormatter formatter = new BinaryFormatter();
                formatter.Serialize(fs, save);
            }
 
        }
Код класса SaveLoad:
C#
1
2
3
4
5
    [Serializable]
    public class SaveLoad
    {
        public List<MyFigure> list { get; set; }
    }
А вот код класса Изображение, в котором хранятся все фигуры:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
    [Serializable]
    class Image
    {
        public static List<MyFigure> collection = new List<MyFigure>();
 
        public Image()
        {
            collection = new List<MyFigure>();
            
        }
 
        public void AddFigure(MyFigure figure)
        {
            collection.Add(figure);
            
        }
 
        public void Scale(int i)
        {
            if (i == 1 || i == -1)
                while (true)
                {
                    foreach (MyFigure figure in collection)
                        figure.Scale(i);
                }
            else return;
        }
 
        public void Move(string direction)
        {
            if (direction == "up" || direction == "down" || direction == "left" || direction == "right")
                while(true)
                    foreach (MyFigure figure in collection)
                    {
                        figure.Move(direction);
                    }
            else return;
        }
 
        public static int CountFigures
        {
            get { return collection.Count; }
        }
 
        public static double WholeArea
        {
            get
            {
                double whole = 0;
                foreach (var figure in collection)
                    whole += figure.Area();
                return whole;
            }
        }
 
        public void Draw(Graphics g)
        {
            foreach (var figure in collection)
                figure.Draw(g, FigureParametres.width);
        }
    }
________________________________________ _
Подскажите, пожалуйста, как правильно сохранять и загружать файл с данными чтобы можно было продолжить работу с фигурами после закрытия программы.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.04.2014, 00:19
Ответы с готовыми решениями:

Считать числа из файла в массив для дальнейшей работы с ними
дан файл, в котором записаны данные: X 1 2 35 41 5 63 7 80 нужно считать ЧИСЛА из файла в массив для работы с ними. Никак не...

Как записать данные из аякс-запроса в PHP скрипт для дальнейшей работы с ними?
Сам запрос: $.get('test.php', {login: &quot;admin&quot;, ID: 01}); $('html').load('test.php');

После редактирования данных в БД, данные на форме обновляются только после перезапуска программы
Добрый день! Прошу помощи. Пишу программу Form1 работает с полями из БД MS Sql LocalDB, Form2 - отчет, содержащий данные с Form1,...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.04.2014, 00:19
Помогаю со студенческими работами здесь

BAT-файл для перезапуска программы при обнаружении в её логе слова "ERROR"
Задача такая есть программа которую нужно перезапускать если у нее в логах появилась запись ERROR. Но у нее каждый раз лог с новым...

Сериализация данных (произвольно нарисованных линий)
Доброго времени суток ! Есть код,который рисует линию(произвольную) .Как вывести данные о том,что нарисовалось в ввиде XML ? ...

Идеи для дальнейшей работы
Здравствуйте! У меня такая ситуация. Я закончила один (&quot;неэффективный&quot;) ВУЗ по специальности &quot;Автоматизированные системы обработки...

Перемещение нарисованных фигур
&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;link rel = &quot;stylesheet&quot; href = &quot;index.css&quot;&gt; &lt;script src=&quot;canvas.js&quot;&gt;&lt;/script&gt; ...

Удаление нарисованных фигур
Доброе время суток! Как можно реализовать удаление нарисованных фигур? Мышкой тыкаешь, например, на прямоуголник, он выделятся, нажимаешь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru