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

Максимально эфективное бинарное чтение из файла под Windows - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Заполнение матрицы по правилу http://www.cyberforum.ru/cpp-beginners/thread731192.html
Привет, делаю лабораторную, нужно заполнить матрицу по заданному правилу: 19 20 21 22 23 24 18 17 16 15 14 13 7 8 9 10 11 12 6 5 4 3 2 1 Размер матрицы ввожу сама, вот мой код: #include <iostream>
C++ Переписать в другой файл все положительные элементы первого файла, стоящие на четных местах Люди добрые, помогите пожалуйста: необходимо создать файл, состоящий из целых чисел. Переписать в другой файл все положительные элементы первого файла, стоящие на четных местах. Оба файла вывести в консоль. Собственно, вопрос знатокам: как произвести запись массива в файл и его дальнейшее считывание? Заранее спасибо за помощь :D http://www.cyberforum.ru/cpp-beginners/thread731189.html
Метод Касательных C++
Задание: Решение нелинейных алгебраических уравнений методом касательных. Помогите найти ошибку в коде программы : #include <math.h> #include <conio.h> #include <stdio.h> float fx(float); float fx1(float); void main() { clrscr();
строки (напечатать все слова,которые совпадают с начальным отрезком латинского алфавита C++
строки (напечатать все слова,которые совпадают с начальным отрезком латинского алфавита) Ребята,нужна помощь!!) Дана строка,которая состоит из слов, разделенных пробелами. Нужно напечатать все слова,которые совпадают с начальным отрезком латинского алфавита (a, ab, abc,abcd … и т. д)
C++ запись строки в файл http://www.cyberforum.ru/cpp-beginners/thread731157.html
Помогите, пожалуйста, программа должна записывать строку в файл, но только с помощью gets() и puts() #include <iostream> #include <cstdio> using namespace std; int main() { FILE * ptrFile = fopen("text.txt", "w"); if (ptrFile != NULL) {
C++ Быстродействие процессора? Ребят заинтересовал вопрос по архитектуре процессора. Что мешает повысить быстродействие процессора за счет увеличения количества конвейеров? подробнее

Показать сообщение отдельно
WhiteP
606 / 204 / 23
Регистрация: 20.11.2012
Сообщений: 426
17.12.2012, 14:45     Максимально эфективное бинарное чтение из файла под Windows
C++
1
_ASSERT(WriteFile(outputData,pBuf,readed-(readed%8),&writed,0)==0);//отрабатывает без ошибок, но нифига не пишеет!
Если размер файла меньше 512 байт, например, то писать и не будет. Последний блок также может не записаться и в других случаях, т.к. не все то, что кратно 8 кратно 512.
Тут надо
C
1
2
#define ALIGN_UP(x, align) ((x)+((align)-1))&(~((align)-1))
WriteFile(outputData,pBuf,ALIGN_UP(readed, 512),&writed,0)
Запустил в студии вот такой код. Файл скопировался без проблем.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    
    HANDLE hFile = CreateFileW(L"c:\\input.bin", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_NO_BUFFERING, 0);
 
    HANDLE hOutFile = CreateFileW(L"d:\\out.bin", GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_NO_BUFFERING, 0);
...
while(isOk = ReadFile(hFile, pBuf, BUFSIZE, &readed, 0))
    {
        //std::cout<<"Step "<<step++<<". Readed bytes: "<<readed<<std::endl;
        fSize+=readed;
 
        //WriteFile(hOutFile, pBuf, (ALIGN_UP(readed, 512)),&written, NULL);
        std::cout << written <<"bytes writed."<<std::endl;
 
        if(readed < BUFSIZE)
            break;
    }
 
Текущее время: 14:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru