10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232

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

28.01.2020, 21:49. Показов 3925. Ответов 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
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 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
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 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
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
04.02.2020, 18:05
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
Интересно, в обратную сторону, в случае TextBlock, никакого INPC не требуется. Чтобы получить данные в свойство.
Ещё как требуется!
TextBlock.Text - это просто удобная обёртка над статическим DependencyProperty TextBlock.TextProperty.
А это гораздо хлеще и мощнее чем какой-то простенький INPC.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 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
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 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
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 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
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 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
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 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
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 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
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 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
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru