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

Есть очень много маленьких текстовых файлов необходимо слить в один файл - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Однонаправленный список. Операции: удалить элемент из заданной позиции, добавить элемент в заданную позицию,проверка на неравенство http://www.cyberforum.ru/cpp-beginners/thread1063336.html
Помогите. Есть одна написанная. Условия: Очередь. Операции: “+” добавить элемент ; “-“ удалить элемент ; bool() проверка «Пуста ли очередь?» В ней все работает, все запускается, не могу...
C++ Как проверить работает ли системный динамик на ноутбуке в студии вставляю код, но не чего не слышно #include <windows.h> int main() { Beep(247, 500); Beep(417, 500); Beep(417, 500); Beep(370, 500); Beep(417, 500); ... http://www.cyberforum.ru/cpp-beginners/thread1063333.html
C++ Архивирование файлов
Всем привет. Цель: сжать и запаролить файл (бинарный). Сейчас используется передача параметров в 7z.exe, запуск 7z производиться с помощью CreateProcess. Хочется избавиться от зависимостей в конечном...
C++ Проект
Всем привет!) Подкиньте идею какой проект можно сделать используя GTK+ и MVS2008.)) p.s. текстовые редакторы и шифрование не подходит( чтобы было очень интересное и простое)
C++ Из первой строчки убрать слова, которые встречаются во второй http://www.cyberforum.ru/cpp-beginners/thread1063309.html
Пользователь вводит с клавиатуры 2 строки. Из первой строчки убрать слова, которые встречаются во второй. Например: 1:user,internet,soft,it 2:computer,test,soft,c++,user 3:internet,it Вот...
C++ Закомпелировать торрент файт с exe Здравствуйте. Может я спрашиваю что то не то или не в том разделе, но мне нужно, сделать файл расширения exe, что при его открытии у пользователя запускался торрент(торрен клиент установленный у... подробнее

Показать сообщение отдельно
Kant
33 / 33 / 9
Регистрация: 15.05.2013
Сообщений: 236
05.01.2014, 04:43  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Когда-то выяснял какими функциями быстрее всего работать с файлами. Получилось, что самые быстрые - это С-функции пстрочного чтения/записи: fgets(), fputs(). Файл нужно открывать в бинарном режиме, это убыстряет работу этих функций (почему - не знаю, но факт). Насколько знаю, работа с динамической памятью - это медленно, поэтому лучше использовать массив на стеке под размер строки (тем более, размер известен).
Написал вот такую штуку. Медленней чем мой код. Посмотри пожалуйста может что то не так сделал.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    FILE * pFileRead = _wfopen ( pathRead.c_str() , L"rb" );
    if(!pFileRead) return;
 
    FILE * pFileWrite = _wfopen ( pathAddWrite.c_str(), L"ab" );
    char buffer[80];
 
    while(!feof(pFileRead)) {
        if(fgets(buffer, 80, pFileRead) != 0)
            fputs(buffer, pFileWrite);
    }
 
    fputs("\0", pFileWrite);
 
    fclose (pFileRead);
    fclose (pFileWrite);
}
Добавлено через 1 минуту
Цитата Сообщение от gazlan Посмотреть сообщение
Потоками, разумеется, лучше не пользоваться. Никаким "построчным" чтением тоже.

Используйте Memory Mapping (WinAPI) - открываете Src файл на чтение и "одним глотком" переписываете в Dst. Если файлы маленькие, то основное время уйдет не на копирование, а на сам поиск/открытие/закрытие. Если необходимо, добавляйте в Dst символ новой строки после каждого записанного файла.
Читал об этом. Но на моем уровне задача неподъемная. Если бы показали маленький пример был бы благодарен!
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru