Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 37
1

Откуда берется число в строчке j = fs.Length / 231; //231 — количество байт занимаемых одним объектом класса ?

13.05.2014, 20:47. Показов 1245. Ответов 5
Метки нет (Все метки)

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
 
namespace Laba_5//Лабораторная работа №5
{
    [Serializable]//сериализация объекта 
    class Prepodavatel//класс Преподаватель
    {
        private string Fio = "Хуснутдинов";  //закрытое поле ФИО
        private string Cafedra = "Отделение энергетики и информатизации";//закрытое поле Кафедра
        private int[] Stagraboti = new int[4] { 6, 7, 8, 10 };//закрытое поле Стаж работы
 
        public string FIO;
        public string CAFEDRA;
        public int STAGRABOTI;
    }
    //Cериализация объекта
    [Serializable]
    class Prepodavatel1 : Prepodavatel
    {
        public new string Fio = "Байрамов";
        public new string Cafedra = "Отделение энергетики и информатизации";//закрытое статическое поле
        public new int[] Stagraboti = new int[4] { 6, 7, 8, 10 };
 
        public Prepodavatel1() { }
        public Prepodavatel1(string Fio, string Cafedra, int i)
        {
            FIO = Fio;
            CAFEDRA = Cafedra;
            STAGRABOTI = Stagraboti[i];
        }
    }
 
    class Executer
    {
        [STAThread]
        static void Main()
        {
            Prepodavatel1 a = new Prepodavatel1();
            Prepodavatel1 b = new Prepodavatel1("Хуснутдинов Айнур Айратович", "Отделение энергетики и информатизации", 2);
            Prepodavatel1 c = new Prepodavatel1("Байрамов Динар Ильдарович", "Отделение энергетики и информатизации", 3);
 
            //***При работе с текстовыми файлами сначала создается поток класса FileStream***//
 
            FileStream fs;
            fs = new FileStream
                ("File_gueue.bin", FileMode.Create, FileAccess.Write);//FileMode.Create ---> позволяет создавать новый файл или переписывать существующий
                                                                      //FileAccess.Write---> Поток может записывать данные
            BinaryFormatter sw = new BinaryFormatter();
            sw.Serialize(fs, b);//сериализация данных
            sw.Serialize(fs, c);
            fs.Close();
       
            fs = new FileStream
                ("File_gueue.bin", FileMode.Open, FileAccess.Read);//FileMode.Open  ---> открывает существующий файл. Если файла нет, возникает исключение
                                                                   //FileAccess.Read---> поток может читать данные
            long i = 0,
            j = fs.Length / 231; //231 — количество байт занимаемых одним объектом класса  Prepodavatel1
            while (i < j)
            {
                Console.WriteLine(" ");//пустая строка
                a = (Prepodavatel1)sw.Deserialize(fs);
                Console.WriteLine("ФИО преподавателя: " + a.FIO);//вывод поля  FIO объекта а
                Console.WriteLine("Кафедра: " + a.CAFEDRA);//вывод поля CAFEDRA объекта а
                Console.WriteLine("Стаж работы: " + a.STAGRABOTI + " лет");//вывод поля STAGRABOTI объекта а
                i++;
            }
            fs.Close(); 
            Console.ReadLine();//ожидание нажатия кнопки Enter        
        }
    }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2014, 20:47
Ответы с готовыми решениями:

Выбор оборудования 2 порта LAN (192.168.55.0/30, 192.168.55.5/30) и 1 WAN Порт (231.x.x.10, 231.x.x.11)
Добрый день! Посоветуйте оборудование: 2 порта LAN (192.168.55.0/30, 192.168.55.5/30) и 1 WAN...

Чем заменить УР-231?
Доброго, коллеги. А что сейчас применяют вместо старого доброго лака УР? Хочется чего-нибудь...

Формат числа: 1.231.415 руб
вытаскиваю из базы цену: $cost = $row1; на сайте отображается в формате 1231415 руб. а я...

Треск в колонках SP-231 при включении в розетку
Здравствуйте. До недавнего времени у меня были колонки SVEN SP - 231, играли отлично для своей...

5
Эксперт .NET
15555 / 11804 / 3097
Регистрация: 17.09.2011
Сообщений: 19,716
13.05.2014, 21:21 2
Цитата Сообщение от Дилярочка Посмотреть сообщение
231 — количество байт занимаемых одним объектом класса ?
Тоже не понятно, откуда это значение высосано.
Размер объекта будет там на-амного больше 231 байта.
1
0 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 37
13.05.2014, 21:27  [ТС] 3
Спасибо:-)Возможно там будет другое число. Мне бы узнать каким образом оно считается...
0
Эксперт .NET
15555 / 11804 / 3097
Регистрация: 17.09.2011
Сообщений: 19,716
13.05.2014, 22:13 4
Лучший ответ Сообщение было отмечено Дилярочка как решение

Решение

Цитата Сообщение от Дилярочка Посмотреть сообщение
Мне бы узнать каким образом оно считается...
Данные о типе: сборка, версия сборки (опционально), пространство, имя класса. Ну и сами данные: шесть строк различной длины по 2 байта на символ, два массива по 16 байт на каждый и одно целое на 4 байта.
Возможно, сериализатор еще что-то от себя добавляет (префикс на длину строки, например).
1
7158 / 6133 / 2801
Регистрация: 14.04.2014
Сообщений: 26,455
13.05.2014, 22:37 5
Это вообще не возможно решить таким образом. Размер структур может быть разным. Проще сериализовать список элементов (List). И так же обратно извлечь.
1
0 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 37
13.05.2014, 22:56  [ТС] 6
Спасибо за ответ)))А как можно это сделать? (сериализовать список элементов )
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2014, 22:56

Управление для МАЯК-231(232,233)
Вариант блока управления для МАЯК-231(232,233) на ATTiny2313A (пофиксать некоторые баги при работе...

СМА Whirlpool AWG 231 853753184000, Не включается
Стиральными машинами занимаюсь давно, Whirlpool открываю третий раз ( раньше не было необходимости)...

Клавиша Сохранить [Error] Unit2.pas(231): Missing operator or semicolon
Бьет вот такую ошибку Unit2.pas(231): Missing operator or semicolon ругается на строчку кода...

Обнаружен эксплойт скрытого канала в ICMP -пакете Удаленный IP 222.231.15.60
вот такое выдает нод при загрузке ла2...что ето значит и как с ним бороться


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru