Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
cr0n
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 46
#1

Декодирование txt файла - C++

20.11.2014, 15:41. Просмотров 903. Ответов 35
Метки нет (Все метки)

есть txt файл в котором вся информация написана v hex то есть закодирована queted printable кодом.и надо эту информацию прочитать .уже облазил весь интернет но ничего толком не нашел .Помогите пожалуйста ))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2014, 15:41     Декодирование txt файла
Посмотрите здесь:

Кодирование и декодирование двоичного файла - C++
Кодирование и декодирование двоичного файла путем сложения каждого байта по модулю два с заданным пользователем числом. Если можно код! ...

Чтение из txt файла - C++
Есть готовая программа, но она очень геморройная. Нужно ввести 12 оценок каждому ученику, а их там 20. Как сделать так, чтобы оценку читало...

Вывод из txt файла - C++
У меня есть файлы однотипного содержания. например: 12.01.2015 13:11:45 11 Петров С.С. 1222 я вывожу содержимое buf=new...

Фильтрация txt файла - C++
Добрый день. Имеется txt файл, в котором около 100 строк. Необходимо вытащить из файла только те строки где присутствует имя Машина, и...

Чтение из txt файла - C++
есть файл. в файле записано следующие: ---------------------------------------DATABASE---------------------------------------- Date...

Вывод переменной из txt-файла - C++
чтобы записать переменную в .txt, пишу ofstream myfile; myfile.open ("example.txt"); myfile << perem1; myfile.close(); ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-THE_MASTER666-
Заблокирован
20.11.2014, 15:46     Декодирование txt файла #2
Цитата Сообщение от cr0n Посмотреть сообщение
закодирована queted printable
А что имеется ввиду под этой хитрой фразой?
nmcf
5241 / 4561 / 1532
Регистрация: 14.04.2014
Сообщений: 18,146
20.11.2014, 15:46     Декодирование txt файла #3
Нет стандартных средств, надо вручную разбирать.
cr0n
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 46
20.11.2014, 16:04  [ТС]     Декодирование txt файла #4
Добавлено через 39 секунд
Цитата Сообщение от -THE_MASTER666- Посмотреть сообщение
А что имеется ввиду под этой хитрой фразой?
когда например буква или символ записан так =и два hex числа
пример :
латышская буква "ā" пишется как =E2

Добавлено через 1 минуту
Цитата Сообщение от nmcf Посмотреть сообщение
Нет стандартных средств, надо вручную разбирать.
А с чего начать можно ?
nmcf
5241 / 4561 / 1532
Регистрация: 14.04.2014
Сообщений: 18,146
20.11.2014, 16:16     Декодирование txt файла #5
С чтения строки. Потом идёшь по ней посимвольно, встречаешь '=', значит следующие два символа - код и т. д.
cr0n
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 46
20.11.2014, 16:22  [ТС]     Декодирование txt файла #6
и как сделать чтоб он распознал что это за символ?нужно делать какой та список ?
nmcf
5241 / 4561 / 1532
Регистрация: 14.04.2014
Сообщений: 18,146
20.11.2014, 16:25     Декодирование txt файла #7
Ну это же шестнадцатеричный код. Просто преобразуешь его из подстроки в число, помещаешь в char.
cr0n
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 46
20.11.2014, 16:31  [ТС]     Декодирование txt файла #8
Цитата Сообщение от nmcf Посмотреть сообщение
Ну это же шестнадцатеричный код. Просто преобразуешь его из подстроки в число, помещаешь в char.
Можете помочь с написанием кода до этого момента ?а то мои знания в С++ не очень велики
nmcf
5241 / 4561 / 1532
Регистрация: 14.04.2014
Сообщений: 18,146
20.11.2014, 17:00     Декодирование txt файла #9
Как-то так:
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
    int n, i = 0;
    char s[100];
    char rs[100];
    std::istringstream ss;
 
    std::ifstream ifs("d:\\data.txt");
 
    while (!ifs.eof())
    {
        ifs.getline(s, 100);
        ss.str(s);
        ss.clear();
        while (true)
        {
            char c = ss.get();
            if (ss.eof()) break;
            if (c == '=')
            {
                ss.peek();
                if (ss.eof()) break;
                ss >> std::hex >> n;
                rs[i++] = n;
            }
            else rs[i++] = c;
        }
    }
Допиливай.
cr0n
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 46
20.11.2014, 18:10  [ТС]     Декодирование txt файла #10
Можете немного код объяснить а то C++ builder компилятор ругается
nmcf
5241 / 4561 / 1532
Регистрация: 14.04.2014
Сообщений: 18,146
20.11.2014, 18:27     Декодирование txt файла #11
Снова этот Builder. Ты код в main() вставил? Модули подключил?
C++
1
2
3
#include <sstream>
#include <cstdlib>
#include <iostream>
Данные читаются из файла. Замени на свой. Результат в rs.
cr0n
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 46
20.11.2014, 19:18  [ТС]     Декодирование txt файла #12
да подключил кидает вот errori насчёт stl::ifstream
nmcf
5241 / 4561 / 1532
Регистрация: 14.04.2014
Сообщений: 18,146
20.11.2014, 20:54     Декодирование txt файла #13
C++
1
#include <fstream>
cr0n
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 46
20.11.2014, 21:12  [ТС]     Декодирование txt файла #14
да уже и это успел подправить все равно не компилирует даже уже VisualStudio скачал и установил
nmcf
5241 / 4561 / 1532
Регистрация: 14.04.2014
Сообщений: 18,146
20.11.2014, 22:17     Декодирование txt файла #15
Всю программу покажи и в какой строке ошибка.
А файл свой подставил? Какое в нём содержимое? Я несколько последовательностей брал наугад. Может стандарт не на 100% реализован. Возьми пробный короткий файл для начала.
cr0n
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 46
20.11.2014, 23:12  [ТС]     Декодирование txt файла #16
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
#include <stdio.h>
#include <stdlib.h>
#include <fstream.h>
#include <cstdlib.h>
#include <iostream.h>
 
int main()
{
int n, i = 0;
    char s[100];
    char rs[100];
    std::istringstream ss;
 
    std::ifstream ifs("D:\\file.txt");
 
    while (!ifs.eof())
    {
        ifs.getline(s, 100);
        ss.str(s);
        ss.clear();
        while (true)
        {
            char c = ss.get();
            if (ss.eof()) break;
            if (c == '=')
            {
                ss.peek();
                if (ss.eof()) break;
                ss >> std::hex >> n;
                rs[i++] = n;
            }
            else rs[i++] = c;
        }
    }
}
сам файл который был дан преподам
ошибки
nmcf
5241 / 4561 / 1532
Регистрация: 14.04.2014
Сообщений: 18,146
21.11.2014, 00:02     Декодирование txt файла #17
Во-первых путь и имя надо сделать в соответствии с тем, как у тебя файл хранится. Во-вторых надо учесть, что программа всего на 100 символов рассчитана - пример декодирования. У тебя файл огромный, надо куда-то информацию сохранять или ограничить количество считываемых данных.
cr0n
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 46
21.11.2014, 00:09  [ТС]     Декодирование txt файла #18
Цитата Сообщение от nmcf Посмотреть сообщение
Во-первых путь и имя надо сделать в соответствии с тем, как у тебя файл хранится. Во-вторых надо учесть, что программа всего на 100 символов рассчитана - пример декодирования. У тебя файл огромный, надо куда-то информацию сохранять или ограничить количество считываемых данных.
путь к файлу я указал там где он и находится.
а можно этот файл открыть сразу в бинарном виде а потом как то с бинарного уже на человеческий ?
gazlan
3130 / 1905 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
21.11.2014, 00:38     Декодирование txt файла #19
Цитата Сообщение от cr0n Посмотреть сообщение
закодирована queted printable
Программа Штирлиц расшифровывает русские тексты, написанные в различных русских кодировках (Win-1251, KOI-8r, DOS, ISO-8859-5, MAC и др.), в транслитерации, в форматах Quoted Printable, UTF-7, UTF-8, RTF, HTML, закодированные с помощью uuencode, xxencode, base64, binhex, BtoA тексты и файлы, а также тексты, подвергнувшиеся смешанному перекодированию и, в частности, имеющих фрагменты в различных кодировках. Штирлиц способен привести такие тексты к кодировке Windows (1251) для их прочтения и для дальнейшей работы с ними (сохранение, печать, исправления и пр.), а также произвести обратные преобразования. Кодировки и схемы транслитерации можно добавлять и корректировать.

Механизм распознавания кодировки может запускаться автоматически при вставке текста из буфера обмена и при загрузке файла.

Штирлиц. Версия 4.01. Copyright 2001, Всеволод Лукьянин

Данная программа является свободно распространяемым продуктом с рекламной нагрузкой (AdWare).
Сайт давно пропал, поэтому выложу здесь.
Вложения
Тип файла: 7z Shtirlitz.7z (247.7 Кб, 3 просмотров)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2014, 09:26     Декодирование txt файла
Еще ссылки по теме:

База на онове txt файла - C++
Здравствуйте. У меня такая ситуация: Допустим имеется диалог, на котором несколько EditBoxов и ListCtrl. Каждая строка, находящаяся в...

Чтение текста их txt файла - C++
Здравствуйте. Как сделать создание и чтение текста из txt файла? И в чем разница между print и cout? Заранее огромное спасибо!:)

Чтение данных из txt файла - C++
Необходимо считать число из первой строки текстового файла и записать его значение в размерность массива. Из второй строки числа...

Текст из TXT файла в строку - C++
Добрый день. С++ начал учить два дня назад, поэтому прошу не пинать за глупые вопросы. Ситуация следующая: есть строка S (типа...


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

Или воспользуйтесь поиском по форуму:
nmcf
5241 / 4561 / 1532
Регистрация: 14.04.2014
Сообщений: 18,146
21.11.2014, 09:26     Декодирование txt файла #20
Вот преобразование первых 10000 символов. Только это не читается. Какой там язык и какая кодировка?
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
int main()
{
    int n, i = 0;
    char s[100];
    char rs[10000];
    std::istringstream ss;
 
    std::ifstream ifs("d:\\file.txt");
 
    while (!ifs.eof() && i < 10000)
    {
        ifs.getline(s, 100);
        ss.str(s);
        ss.clear();
        while (true)
        {
            char c = ss.get();
            if (ss.eof()) break;
            if (c == '=')
            {
                ss.peek();
                if (ss.eof()) break;
                ss >> std::hex >> n;
                rs[i++] = n;
            }
            else rs[i++] = c;
            if (i == 10000) break;
        }
    }
 
    std::ofstream ofs("d:\\file_r.txt", std::ofstream::binary);
    ofs.write(rs, i);
 
 
    system("pause");
    return 0;
}
Yandex
Объявления
21.11.2014, 09:26     Декодирование txt файла
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru