0 / 0 / 2
Регистрация: 14.09.2014
Сообщений: 123

Произвольная кодировка текста

10.11.2015, 11:09. Показов 2140. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть вот такой вот массив: bool a2[10];
Имеется textEdit, в котором представлена произвольная информация, символы - буквы, цифры...
Мне нужно получить бинарный код, который я запишу в bool a2[10].

Я смотрел примеры, как это вообще делается:
Code
1
2
QTextCodec *koiCodec = codecForName("KOI8-R");
    QByteArray data = koiCodec->fromUnicode(ui->textEdit->toPlainText());
Но ошибка:
C:\Users\engineer\Documents\Qt\sig_gen\m ainwindow.cpp:11: ошибка: 'codecForName' was not declared in this scope
QTextCodec *koiCodec = codecForName("KOI8-R");
Я не нашел ответа, но понял, что мне нужно не совсем так. Есть МКТ-2:
https://ru.wikipedia.org/wiki/%D0%9C%D0%A2%D0%9A-2 Мне нужно кодировать и декодировать символы этим кодом. То есть получить биты в bool и наоборот. Хотя бы получить байты и вернуть строку обратно. Как это проще написать на QT?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.11.2015, 11:09
Ответы с готовыми решениями:

Кодировка текста перестановкой столбцов в массиве, составленном из слов текста
Нужно заполнить двумерный массив с поля (Edit) после некоторых операций вывести массив в поле. Вопрос как заполнить массив с...

Кодировка текста
Доброго времени суток всем! Нужна было програма для перекодирование текста в Word-е... В принципе немного подрудившись написал...

Кодировка текста
Доброго времени суток! У меня следующая ситуация: создал папку в убунте, разшарил. Захожу на нее с винды, создаю и заполняю текстом файл....

22
0 / 0 / 2
Регистрация: 14.09.2014
Сообщений: 123
13.11.2015, 15:04  [ТС]
Студворк — интернет-сервис помощи студентам
Так bool же круче Qstring, вроде. Я сразу про него и думал. Или он хуже?

Добавлено через 19 минут
Сделал так:
C++
1
2
3
4
5
6
7
8
std::vector<bool> toBin(QChar c){
    std::vector<bool> boolArray;
    switch (c.unicode ()) {
    case 'a': {boolArray.push_back(true); boolArray.push_back(true); boolArray.push_back(false); boolArray.push_back(false); boolArray.push_back(false);};
 
    return  boolArray;
    }
}
А можно упростить, и чтобы при этом оптимально работало?

Добавлено через 17 минут
И как можно обрабатывать сразу строку?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
std::vector<bool> toBin(QString str)
{
    std::vector<bool> boolArray;
    for(std::string::size_type i = 0; i < str.size(); ++i){
 
        switch (str[i].unicode ()) {
            case 'a': {boolArray.push_back(true); boolArray.push_back(true); boolArray.push_back(false); boolArray.push_back(false); boolArray.push_back(false);};
            case 'o': {boolArray.push_back(true); boolArray.push_back(true); boolArray.push_back(false); boolArray.push_back(false); boolArray.push_back(false);};
            case 'о': {boolArray.push_back(true); boolArray.push_back(true); boolArray.push_back(false); boolArray.push_back(false); boolArray.push_back(false);};
        }
        return  boolArray;
    }
}
.unicode () раньше прокатывала, а сейчас не получается. Функция возвращает просто пустой массив, приотладке str[0].unicode () не существует, видите ли.
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,349
13.11.2015, 15:07
Цитата Сообщение от lennen;83193 77
в bool a2[10].
В bool a2[10] поместится ровно 2 символа (по 5 бит). Этого достаточно?

Упростить можно, нужно составить таблицу типо:

C++ (Qt)
1
2
3
4
5
6
7
QChar telegraf [32][4]
{
'A', 'А', '-', 0x03,
'B', 'Б', '?', 0X19,
.....
.....
}
и так далее. И кодировать/декодировать уже по этой таблице.
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,349
14.11.2015, 20:54
Цитата Сообщение от lennen Посмотреть сообщение
Так bool же круче Qstring, вроде. Я сразу про него и думал. Или он хуже?
Смотря для чего. Если у тебя учебная программа, то вывести на экран конечно проще строку типо "1100010011". Эту же строку можно записать в файл, затем можно прочитать из файла и расшифровать. ТО есть "передавать телеграммы".

Если задача минимизировать пакет данных для передачи (реальный телеграфный аппарат) то ессно только биты. Но тут есть нюанс. Телеграфный аппарат передаёт биты (по 1 или по 5, я не знаю). Компьютер работает с байтами по 8 бит. И придётся либо хранить в байте 5 бит (бесполезно теряя 3), либо затевать непростые танцы с бубном, упаковывая пятибитовые данные в байты. А они ещё однозначно не упакуются, например в 2 байта (16 бит) можно записать 2 символа по 5 бит = 10, а можно 3х5 = 15. И как угадать, было передано 2 или 3 символа?

В общем никому не нужный геморой, потому что компьютер не телеграфный аппарат. Лови подсказку:

C++ (Qt)
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
QString fn_charToBin(char xx)
{
    QString st;
 
    for(int i = 0; i < 5; i++)
    {
        st += QString::number(xx % 2);
        xx /= 2;
    }
 
return st;
}
 
 
// нажатие кнопки
void Widget::MyPressButton_1()
{
 
    QString str = "11111 ";
    char xx = 0x03;
 
    str += fn_charToBin(xx);
    str += " ";
 
    xx = 0x19;
    str += fn_charToBin(xx);
    str += " ";
 
    xx = 0x0E;
    str += fn_charToBin(xx);
    str += " ";
 
    xx = 0x09;
    str += fn_charToBin(xx);
 
    ui->label_1->setText(str);
 
}
результат работы (с пробелами для наглядности):
Миниатюры
Произвольная кодировка текста  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.11.2015, 20:54

кодировка текста
доброго времени суток, подскажите пожалуйста как решить такую задачку на delphi: &quot;Закодировать и раскодировать текст по следующему...

Кодировка текста
Здравствуйте, не могу решить проблему, после выполнения программы using System; using System.Collections.Generic; using...

Кодировка текста
Доброго времени суток! подскажите, пожалуйста, у меня есть файл с расширением txt но там проблемы с кодировкой текста. могу ли я...

Кодировка текста
У меня вот появилась такая идейка написать кодировщик текста. То есть по такой схеме: английский алфавит нумеруется по порядку начиная от...

Кодировка текста
Проблема заключается в том, что текст на русском языке кодируется некорректно. Если заносить данные из формы, то в БД они появляются...


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

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

Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru