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

Найти UTF-16 строку в бинарном файле - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перегрузка оператора << http://www.cyberforum.ru/cpp-beginners/thread1216582.html
Как вот в таком классе перегрузить оператор <<? #ifndef MATRIXX_H #define MATRIXX_H #include <iostream> using namespace std; template<typename T>
C++ Написать шаблонную функцию, принимающую три параметра и возвращающую их среднее арифметическое как float Функция f6, которая принимает три аргумента определенного типа (int, double или/ char) и возвращает среднее арифметическое типа float. Используйте шаблон функции. Функция main вызывает f6 трижды – для int, double и char, а затем выводит результат работы соответствующих функций. http://www.cyberforum.ru/cpp-beginners/thread1216571.html
Создание консоли из приложения C++
Необходимо создать консоль из приложения. Используем CreateConsole с параметром DETACHED_PROCESS. По идее должна распределяться консоль внутри второго потока, но этого не происходит. AlloocConsole возвращает false. Вопрос в чем может быть дело? Первый поток: #include <windows.h> #include <iostream> int main() { char lpszAppName = "C:\\temp2.exe"; STARTUPINFO si; ...
Определить индексы максимального и минимального элементов массива C++
написать программу которая определяет индексы максимального и минимального элементов одномерного массива натуральных чисел размером N. Генерацию N случайных натуральных чисел определение индексов максимального и минимального элементов массива оформить в виде отдельных функций. ребят помощь нужна срочная так как сижу на экзамене :) язык C++
C++ Создать и напечатать бинарное дерево целых чисел. Удалить узлы, содержащие четные числа http://www.cyberforum.ru/cpp-beginners/thread1216525.html
Помогите пожалуйста с этой задачкой. Не шарю я деревья.
C++ Найти максимальный и минимальный элементы матрицы и поменять их местами Помогите пожалуйста нужно создать программу в с++ которая вычисляет определитель квадратной матрицы второго порядка и третьего порядка. Найти максимальный и минимальный элементы, поменять их местами. подробнее

Показать сообщение отдельно
caldwell
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 17

Найти UTF-16 строку в бинарном файле - C++

25.06.2014, 11:38. Просмотров 437. Ответов 13
Метки (Все метки)

Здравствуйте,

Есть вот такая процедура для поиска и замены строк в бинарном файле. Применяю ее на обычном PE-файле. Проблема в том, что строки она не находит, хотя аналогичный вариант с narrow char работает прекрасно.

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
void scrambleWide(const char *filename, const char key) 
{
    std::wfstream ifs(filename, ios::binary|ios::out|ios::in);
    if(!ifs.is_open())
    {
        printf("Unable to open file in wide mode...\n");
        return;
    }
 
    ifs.imbue(std::locale(ifs.getloc(), new std::codecvt_utf8<wchar_t>));
 
    std::wstring str((std::istreambuf_iterator<wchar_t>(ifs)), std::istreambuf_iterator<wchar_t>());
 
    std::wsmatch matches;
    std::wregex rgx (L"(START_MARK)(.*?)(END_MARK)");
    std::wstring fullMatch, stringMatch;
    size_t appendSize;
 
    while (std::regex_search (str,matches,rgx)) {
        printf("Found match: %s at position: %d...", matches[2].str().c_str(), matches.position(2));
 
        fullMatch = matches[0].str(); 
        stringMatch = matches[2].str();
        appendSize = fullMatch.size() - stringMatch.size(); 
 
        stringMatch.append(appendSize, L'\0');
 
        ifs.seekp(matches.position(0));
        ifs.write(stringMatch.c_str(), stringMatch.size());
 
        printf("replaced\n");
 
        str = matches.suffix().str();
    }
    ifs.close();
}
Как ее переделать для поддержки widechar? Я думаю проблемы с локалью, но какую поставить не могу понять.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru