Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232

Байты в строку, а затем припаять к textBlock

28.01.2020, 21:49. Показов 3903. Ответов 44
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер,


Как в событии кнопки преобразовать байты в строку, а затем припаять к textBlock.

Есть такой код,

C#
1
2
3
4
5
6
7
public static string ByteArrayToString(byte[] ba)
{
  StringBuilder hex = new StringBuilder(ba.Length * 2);
  foreach (byte b in ba)
    hex.AppendFormat("{0:x2}", b);
  return hex.ToString();
}
затрудняюсь как с ним обращаться.
Например ten_bytes содержит массив 10 байт.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.01.2020, 21:49
Ответы с готовыми решениями:

байты в строку
как можно перевести 4 байта F1 08 25 12 а строку А1082512 ?

Байты в строку
Люди помогите считать с реестра REG_BINARY в строку memo1 var byt: byte; reg:=TRegistry.Create; ...

Как перевести в строку все байты сразу?
у меня есть не много, не мало 3531 штук байтов такого вида 123,213,34,342,324 , их все надо перевести в строку, сделать это можно вот так:...

44
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
03.02.2020, 21:23
Лучший ответ Сообщение было отмечено кружок-ДДТ как решение

Решение

Студворк — интернет-сервис помощи студентам
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
должно получиться что-то вроде "пробел0003024" или просто "0003024". Или просто "3024" вообще без впереди стоящих нулей.
С каких пор 0x2030303033303234 = 3024 ?

Как вы из этой последовательности байт получаете число 3024 ?
C#
1
            long num = 0x20_30_30_30_33_30_32_34; // 2319406791671165492
Добавлено через 9 минут
кружок-ДДТ, по-моему, понял.
Это у вас ASCII коды и надо получить строку.
C#
1
            string value = string.Concat(bytes.Select(b => (char)b));
Добавлено через 1 минуту
bytes - может быть любой длины. До 1Гб.
1
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
04.02.2020, 08:47  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
кружок-ДДТ, по-моему, понял.
Это у вас ASCII коды и надо получить строку.
Моя вина, для меня это было очевидно, что это ASCII в hex. Вам не сказал эту тонкость.

Склейка Chars работает как надо.


назад к WPF:


Скажите, а почему такая разница?

Полученное "склеенное" value

делаю так:

C#
1
TexBox1.text = value // обновляется моментально.
и через XAML:

C#
1
TextBox1_property_value = value; // обновляется после открыл, закрыл приложение

Сам XAML выглядит так:

XML
1
2
3
4
5
 <TextBlock
                    x:Name="TextBlock1"
                    Grid.Column="0"
                    Margin="2,2,8,2"                 
                    Text="{Binding TextBox1_property_value, UpdateSourceTrigger=PropertyChanged}" />
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
04.02.2020, 09:37
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
Скажите, а почему такая разница?
У TextBox1_property_value должно быть уведомление об изменении значения через INPC.
Посмотрите темы в подписи моего поста.
1
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
04.02.2020, 15:39  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
У TextBox1_property_value должно быть уведомление об изменении значения через INPC.
Посмотрите темы в подписи моего поста.
Интересно, в обратную сторону, в случае TextBlock, никакого INPC не требуется. Чтобы получить данные в свойство.

Посмотрел темы в подписи, и создал новую. InotifyPropertyChanged и TextBlock (для самых маленьких)
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
04.02.2020, 18:05
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
Интересно, в обратную сторону, в случае TextBlock, никакого INPC не требуется. Чтобы получить данные в свойство.
Ещё как требуется!
TextBlock.Text - это просто удобная обёртка над статическим DependencyProperty TextBlock.TextProperty.
А это гораздо хлеще и мощнее чем какой-то простенький INPC.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
04.02.2020, 18:23
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
Склейка Chars работает как надо.
Есть ещё дефолтный метод - сразу что-то в голову не прищёл.
C#
1
string value = ASCIIEncoding.GetString(bytes, 0, 8);
Первый параметр - массив байт,
второй - индекс первого байта,
третий - количество конвертируемых байт.
1
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
16.11.2020, 14:23  [ТС]
Здравствуйте Элд Хасп, рабочим ответом тогда было.

C#
1
Result = string.Concat(comingResult.Select(b => (char)b));
где Result - свойство string типа.


Вопрос, а как сделать для, например, свойства long типа?

спасибо.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
16.11.2020, 14:30
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
Вопрос, а как сделать для например свойства long типа.
Не понял.
Как строку присвоить long свойству?
0
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
16.11.2020, 14:32  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Не понял.
Как строку присвоить long свойству?
Как конвертировать правую часть уравнения в long, чтобы присвоить long свойству?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
16.11.2020, 14:33
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
Как конвертировать правую часть уравнения в long, чтобы присвоить long свойству?
С права же строка.
Значит long.Parse().
0
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
16.11.2020, 14:38  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
С права же строка.
Значит long.Parse().
да вот много чего пробовал и это тоже, ошибка.

В var comingResult я получаю 8 bytes.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
16.11.2020, 15:05
Лучший ответ Сообщение было отмечено кружок-ДДТ как решение

Решение

Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
да вот много чего пробовал и это тоже, ошибка.
В var comingResult я получаю 8 bytes.
C#
1
2
Result = string.Concat(comingResult.Select(b => (char)b));
long num = long.Parse(Result);
Добавлено через 1 минуту
В comingResult у вас по прежнему ASCII коды симвлов?
Или 8 байт типа long?
1
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
16.11.2020, 15:38  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
В comingResult у вас по прежнему ASCII коды симвлов?
Или 8 байт типа long?
не чистый long, а 8 bytes ASCII кодов в var comingResult.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
16.11.2020, 15:50
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
не чистый long, а 8 bytes ASCII кодов в var comingResult.
Тогда как я показал выше.
Сначала в строку, а потом методом long.Parse().

Добавлено через 2 минуты
Но для 8 ASCII - это максимум 8 десятичных знаков.
Для них хватит и int.
0
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
16.11.2020, 17:36  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Для них хватит и int.
Взял long с запасом, т.к. не знаю точно что может ссчитаться long или int.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
16.11.2020, 17:43
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
Взял long с запасом, т.к. не знаю точно что может ссчитаться long или int.
int - 9,5 знаков (десятый не полный).
long - почти 19 знаков.
1
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
16.11.2020, 21:33  [ТС]
Элд Хасп,

WPF.



текущий StringFormat=0\,##0 , показывает 0,009

Перепробовал всяко, не могу получить 0,9 в Тесктблоке.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
16.11.2020, 21:44
кружок-ДДТ, создайте тему и толком опишите, что у вас в этом свойстве.
Какое там значение в действительности.
Формат может только изменить Представление числа, но само число изменить не может.
Если у вас 0.009, то ни каким Форматом вы из него 0.9 не получите.

StringFormat работаете через метод ToString(формат) и выводит тоже самое.
C#
1
2
double num = 0.009;
Console.WriteLine(num.ToString("0,##0")); // Что выведет?
1
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
16.11.2020, 21:46  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Если у вас 0.009, то ни каким Форматом вы из него 0.9 не получите.
подозревал.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
16.11.2020, 21:50
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
подозревал.
Попробуйте вывести процентным форматом.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.11.2020, 21:50

Как строку разбитую на байты перевести в нормальное состояние?
%D1%81%D0%BB%D0%BE%D0%B2%D0%BE рак строку разбитую на байты перевести в нормальное состояние средствами javascript

Написать программу, которая бы считывала из входного файла байты с N1 по N2 и с N3 по N4 и записывала эти байты в выходной файл
Здравствуйте!В убунту на Си нужно написать программу, которая бы считывала из входного файла байты с N1 по N2 и с N3 по N4 и записывала эти...

Декодировать байты (в base64) в просто байты
Добрый день, нужно декодировать байты, которые зашифрованы в base64 в нормальные баты вот код : internal sbyte mSecret; ...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru