Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/49: Рейтинг темы: голосов - 49, средняя оценка - 4.78
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913

BitConverter

14.08.2011, 10:00. Показов 10646. Ответов 41
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть массив байтов(с модема) Известно, что первые 2 баита содержат идентификационныи номер, третий байт - число, определяющее количество байтов данных, в остальных баитах - сами данные.
Как преобразовать эти байты в строки и положить их в DataGridView? Пробую через BitConverter.ToString, но не получается. Подскажите,пожалуйста! Спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.08.2011, 10:00
Ответы с готовыми решениями:

Как устроен BitConverter
Здравствуйте! :) Задался я тут вопросом: как работает BitConverter? Проблема в том, что у меня не сходятся "цифры". Может...

Как работает BitConverter.ToUInt32
Как "в ручную" можно преобразовать массив из четырех байтов в uint, не пользуясь классом BitConverter?

Что мне отдает BitConverter.ToUInt32?
Тестирую вот такой вот незамысловатый код, который естественно писал не я иначе бы понимал что он делает... var myIp =...

41
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
17.08.2011, 08:36  [ТС]
Студворк — интернет-сервис помощи студентам
nio,спасибо, но это не подходит,т.к. в процессе работы строчки как раз добавляются(считываются данные определенным образом из модема)
0
 Аватар для Alessandr
20 / 21 / 1
Регистрация: 13.08.2011
Сообщений: 51
17.08.2011, 08:38
iva_a,
Объясните, что значит лишняя строка. Данные заполняются? И после заполнения данных остается еще одна пустая или как?)
0
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
17.08.2011, 10:04  [ТС]
Alessandr, данные заполняются- см. картинку
Миниатюры
BitConverter  
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
17.08.2011, 10:06
Цитата Сообщение от iva_a Посмотреть сообщение
данные заполняются- см. картинку
ну так а какая строка тогда лишняя?
0
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
17.08.2011, 10:12  [ТС]
nio, лишняя со *, на картинке указана красным. И Rows.Counter получается на 1 строку больше. Или я чего не понимаю?
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
17.08.2011, 10:14
Цитата Сообщение от iva_a Посмотреть сообщение
nio, лишняя со *, на картинке указана красным. И Rows.Counter получается на 1 строку больше. Или я чего не понимаю?
Ну так я тебе уже показал, как от нее избавится
Цитата Сообщение от nio Посмотреть сообщение
dataGridView1.AllowUserToAddRows = false;
Что тебя не устраивает?
0
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
17.08.2011, 10:24  [ТС]
nioЕше раз, в процессе работы строчки добавляются(считываются данные определенным образом из модема) если ставлю
C#
1
dataGridView1.AllowUserToAddRows = false;
,то не могу добавлять строки.
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
17.08.2011, 10:30
Цитата Сообщение от iva_a Посмотреть сообщение
то не могу добавлять строки.
Ты пробовал?
AllowUserToAddRows - в переводе на русский "позволить пользователю добавлять строки". Таким образом убирается только эта пустая строка, а программно строки добавлять можно.
0
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
17.08.2011, 10:34  [ТС]
Да, проверяла, код зависает, в таблицу ничего не записывается
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
17.08.2011, 10:36
Цитата Сообщение от iva_a Посмотреть сообщение
Да, проверяла, код зависает, в таблицу ничего не записывается
покажи как добавляется строка
0
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
17.08.2011, 10:39  [ТС]
Да, и в Debug (view output) получаю еще вот:
ERRThe thread 0x880 has exited with code 0 (0x0).
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
17.08.2011, 10:41
iva_a, а у тебя dgv случайно ни с каким источником не связана?
0
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
17.08.2011, 10:44  [ТС]
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
 public void GoStart()
        {
             try
            {
 
                TestEeprom.WorkSerialCom op = new WorkSerialCom();
                op.OpenCom(comboBox1.Text);
                op.SendToPort("#rd_eeprom\r");
                System.Threading.Thread.Sleep(5000);
                byte[] bufer = new byte[1024];
                List<Eeprom> MyItemsList = new List<Eeprom>();
                int bytes = 0;
                int index = 0;
                int k = 0;
                while (true)
                {
                    index = 0;
                    while (op.com.BytesToRead > 0)
                    {
                        bytes = op.com.BytesToRead;
                        op.com.Read(bufer, index, bytes);
                        index += bytes;
                        System.Threading.Thread.Sleep(100);
                    }
 
 
                    if (index != 0)
                    {
                        if (index >= 6)
                        {
                            var item = new Eeprom(bufer);
 
                            var b = item.CreateRawItem();
                            MyItemsList.Add(item);
                            Debug.WriteLine("ID= " + item.ID);
                            Debug.WriteLine("Lenght= " + item.Lenght);
                            Debug.WriteLine("Data = " + BitConverter.ToString(item.Data));
                            if (k >= dataGridView1.RowCount)
                                break;
                            else
                            {
                                dataGridView1.Rows.Add();
                                dataGridView1.Rows[k].Cells[0].Value = item.ID;
                                dataGridView1.Rows[k].Cells[1].Value = item.Lenght;
                                dataGridView1.Rows[k].Cells[2].Value = BitConverter.ToString(item.Data);
                            }
                            k++;
                        }
 
                        if (index >= 3)
                        {
                            var text = System.Text.Encoding.ASCII.GetString(bufer, 0, index);
                            textBox3.Text = text;
                            if (text.IndexOf("END") != -1)
                            {
                                MessageBox.Show("End!");
 
                                break;
                            }
                        }
 
                        // ParentTester.com.Write("\r");
                        op.SendToPort("\r");
                        System.Threading.Thread.Sleep(100);
                    }
                    //------------------
                   /* if (threadStop.WaitOne(0))
                        break;*/
 
                }
                //--------------
                //clear empty string -don't work
              /*  for (int i = 0; i < dataGridView1.RowCount - 1; i++)
                {
 
                    if (dataGridView1.Rows[i].Cells[0].Value.ToString() == "")
                    {
                        dataGridView1.Rows.RemoveAt(i);
                        i--;
                    }
                }*/
                //-----------------
            }
            catch (Exception x)
            {
                MessageBox.Show(x.ToString());
            }
            finally
            {
              //  op.CloseCom(comboBox1.Text);
            }
           
 
        }
Добавлено через 1 минуту
nio, нет не связана, только код - см. выше
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
17.08.2011, 10:50
не вдавался в подробности всего кода, глянул только добавление строки
попробуй добавлять таким обрзом
C#
1
dataGridView1.Rows.Add(item.ID, item.Lenght, BitConverter.ToString(item.Data));
вместо
C#
1
2
3
4
dataGridView1.Rows.Add();
dataGridView1.Rows[k].Cells[0].Value = item.ID;
dataGridView1.Rows[k].Cells[1].Value = item.Lenght;
dataGridView1.Rows[k].Cells[2].Value = BitConverter.ToString(item.Data);
0
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
17.08.2011, 11:08  [ТС]
nio, сделала, результат тот же, т.е с пустои строкой с *(но кода меньше
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
17.08.2011, 11:12
отключи эту пустую строку и используй
Цитата Сообщение от nio Посмотреть сообщение
dataGridView1.Rows.Add(item.ID, item.Lenght, BitConverter.ToString(item.Data));
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
17.08.2011, 11:21
iva_a, правила запрещают создавать множество вопросов в одной теме. Создавай новую тему
0
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
17.08.2011, 11:27  [ТС]
Сделала, в коде
C#
1
dataGridView1.Rows.Add(item.ID, item.Lenght, BitConverter.ToString(item.Data));
, в свойствах
C#
1
AddUserToAssRows=false
Не помогло Код зависает, таблица не заполняется
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
17.08.2011, 11:29
iva_a, что значит зависает? Отладчиком проходила? Ошибки какие-нить выскакивают?
0
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
17.08.2011, 13:14  [ТС]
Нет, ошибок нет(try стоит) Просто таблица пустая
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.08.2011, 13:14

BitConverter.ToSingle возвращает целое число
Здравствуйте! Передаю в BitCoverter.ToSingle массив из четырех байт byte bytesForBitConverter = new byte { 7, 101, 202, 65 }; ...

BitConverter little-endian -> big-endian
Копирую в массив byte некоторые значения byte msg = new byte; Array.Copy(BitConverter.GetBytes(STX), 0, msg, 0, sizeof(int)); ...

Преобразование пары байт в Int16 (BitConverter.ToInt16)
Отличная функция BitConverter.ToInt16 но она подразумевает, что пара байт будет в следующей последовательности: сначала старший, а затем...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru