0 / 0 / 1
Регистрация: 02.11.2016
Сообщений: 62
1

Перевести Hex код в читабельный вид

13.08.2018, 17:24. Показов 2120. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть задача перевести Hex код(код черновиковый) в читабельный вид. Есть 2 варианта преобразования hex оба что-то выводят(вопрос не в этом). После вывода значений выводятся 4 первых символа(скрины во вложении), как вывести преобразованное значение hexa?


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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SQLite;
 
namespace WindowsFormsApp4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            LoadSQLite();
        }
 
        private void LoadSQLite()
        {
            string ConSQLite = @"файл БД";
            SQLiteConnection connection =
            new SQLiteConnection(string.Format("Data Source={0};", ConSQLite));
            connection.Open();
            SQLiteDataAdapter adapter =
              new SQLiteDataAdapter("SELECT uid,mid,DATETIME(date, 'unixepoch', 'localtime')  AS [Date] FROM messages WHERE uid =  245996388 and mid = 121", connection);
            DataTable dt = new DataTable();
 
            adapter.Fill(dt);
 
            dataGridView1.DataSource = dt;
 
            SQLiteCommand com = 
                new SQLiteCommand("SELECT hex(data) FROM messages WHERE uid =  245996388 and mid = 121", connection);
            object result = com.ExecuteScalar();
            string hex = Convert.ToString(result);
            textBox1.Text = hex;//11DCDD900001000079000000649BA90E6...
 
            String hexs;
            String hexc;
 
            HexStringToString(hex,out hexs);
            FromHexString(hex, out hexc);
 
            textBox2.Text = hexs;
 
            MessageBox.Show(hexc, "hexc");
            MessageBox.Show(hexs, "hexs");
 
        }
 
        string HexStringToString(string hex, out string hexs)
        {
            string stringValue = "";
            for (int i = 0; i < hex.Length / 2; i++)
            {
                string hexChar = hex.Substring(i * 2, 2);
                int hexValue = Convert.ToInt32(hexChar, 16);
                stringValue += Char.ConvertFromUtf32(hexValue);
            }
 
            hexs = stringValue;
 
            return hexs;
        }
        public static string FromHexString(string hex, out string hexc)
        {
            var bytes = new byte[hex.Length / 2];
            for (var i = 0; i < bytes.Length; i++)
            {
                bytes[i] = Convert.ToByte(hex.Substring(i * 2, 2), 16);
            }
 
            hexc = Encoding.Unicode.GetString(bytes);
 
            return hexc; 
        }
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            
        }
 
        public void textBox2_TextChanged(object sender, EventArgs e)
        {
 
        }
    }
}
Изображения
  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.08.2018, 17:24
Ответы с готовыми решениями:

Перевести хранимый hash в читабельный вид (для переноса бд)
Здравствуйте, такой вопрос. Переношу базу с ASP.NET(MSSQL) на PHP(MySQL) движок один. Хэширование...

NixTime перевести в читабельный вид
Как перевести на JS nix время 1402833977 в такой вид день-месяц-год На PHP знаю. echo date...

Как перевести строку в читабельный вид?
Собственно из названия темы. Есть строка символов (к примеру такая: 0430002004370430043904340438)...

Вывод из MySQL в читабельный вид
Занимаюсь вынужденно php около месяца, не пинайте сильно. Встала задача - сделать форму для ввода...

5
911 / 815 / 333
Регистрация: 03.02.2015
Сообщений: 5,265
Записей в блоге: 9
13.08.2018, 17:39 2
C#
1
2
3
4
var v = 0xff;
var s = $"{v:X2}";
 
Console.WriteLine(s);
0
0 / 0 / 1
Регистрация: 02.11.2016
Сообщений: 62
13.08.2018, 17:52  [ТС] 3
Может я что-то не понял... но, вот результат:
Миниатюры
Перевести Hex код в читабельный вид  
0
911 / 815 / 333
Регистрация: 03.02.2015
Сообщений: 5,265
Записей в блоге: 9
13.08.2018, 17:56 4
Unison1, а что Вы делаете?
0
0 / 0 / 1
Регистрация: 02.11.2016
Сообщений: 62
13.08.2018, 17:58  [ТС] 5
hex = 11DCDD900001000079000000649BA90E6DBCB19D649BA90E7BBCEE591BD0B4D0B02C20D0B1D0B5D0 B720D0BFD180D0BED0B1D0BBD0B5D0BC00000000

C#
1
2
var h = $"{hex:X2}";
            MessageBox.Show(h, "h");
0
0 / 0 / 1
Регистрация: 02.11.2016
Сообщений: 62
14.08.2018, 11:30  [ТС] 6
Sanya_sa, У меня есть hex = 11DCDD900001000079000000649BA90E6DBCB19D649BA90E7BBCEE591BD0B4D0B02C20D0B1D0B5D0 B720D0BFD180D0BED0B1D0BBD0B5D0BC00000000
C#
1
2
var h = $"{hex:X2}";
            MessageBox.Show(h, "h");
Добавлено через 2 часа 22 минуты
Sanya_sa, У меня получилось намного проще:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
string HexStringToString(string hex, out string hexs)
        {
 
            var raw = new byte[hex.Length / 2];
            for (int i = 0, j = 0; i < hex.Length; i += 2, j++)
                raw[j] = Convert.ToByte(hex.Substring(i, 2), 16);
            hexs = Encoding.GetEncoding(1251).GetString(raw);
 
            /*string stringValue = "";
            for (int i = 0; i < hex.Length / 2; i++)
            {
                string hexChar = hex.Substring(i * 2, 2);
                int hexValue = Convert.ToInt32(hexChar, 16);
                stringValue += Char.ConvertFromUtf32(hexValue);
            }
 
            hexs = stringValue;
            */
            return hexs;
        }
Получаю значение hexs, потом:
C#
1
2
3
4
5
6
7
8
string text = hexs;
Encoding utf8 = Encoding.GetEncoding("UTF-8");
            Encoding win1251 = Encoding.GetEncoding("Windows-1251");
 
            byte[] utf8Bytes = win1251.GetBytes(text);
string t = utf8.GetString(utf8Bytes);//норм
 
            MessageBox.Show(t, "utf8Bytes");
Значение t = "�ݐyd��m���d��{��Y да, без проблем" Но, выводиться в MessageBox только "�ݐ". Можете подсказать почему не выводиться всё значение?
0
14.08.2018, 11:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.08.2018, 11:30
Помогаю со студенческими работами здесь

Читабельный вид текстового файла
Пишу менеджер crontab. нужно что бы выводило все данные в нормальном, читабельном виде.. Например в...

преобразование кода в читабельный вид
получаю с нного ресурса данные в таком виде : на данный момент преобразовываю: function...

Конвертация таблицы в MS EXCEL в читабельный вид
Добрый день всем. Помогите создать макрос на конвертацию таблицы в MS EXCEL в читабельный вид....

Перенести базу данных в читабельный вид в SQL
Добрый день. Кто может помочь? не так давно начал работать с 1C (почти чайник). Есть такая...

Прилетают данные UTF-8, как правильно преобразовать в читабельный вид?
Как преобразовать вот это: cout &lt;&lt; buf&lt;&lt;endl; Выдает в UTF-8 кодировке:...

Как перевести ASCII код символа в двоичный вид?
У меня из файла считывается какой-то текст .И нужно чтобы код ASCII символы посимвольно в двоичной...


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

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

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