Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как загрузить файл в ОП и работать с ним ? С++ / 5 сообщений из 5, страница 1 из 1
19.01.2013, 13:24
    #38116309
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как загрузить файл в ОП и работать с ним ? С++
Я пишу программу для подсчета слов, символов, пробелов.

мне ее надо написать что бы она работала как можно быстрея.

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

В С++ я новичок

#include<iostream.h>
#include<conio.h>
#include<fstream.h>
#include<time.h>


void main()
{
ifstream if_fFile("C:\\text.txt");

clock_t begin = clock();

char ch;
bool bFlags = true;

int nKolWord = 0, nKolSpace = 0, nKolChar = 0;

if(if_fFile.is_open())
while(!if_fFile.eof())
{
if_fFile.get(ch);

if(ch != ' ')
{
nKolChar++;

if(bFlags && ch != '\n')
{
nKolWord++;
bFlags = false;
}
}else
{
nKolSpace++;
bFlags = true;
}
}

if_fFile.close();

cout<<"nKolWord: "<<nKolWord
<<endl
<<"nKolSpace: "<<nKolSpace
<<endl
<<"nKolChar: "<<nKolChar
<<endl;

cout<<"Time: "<<static_cast<float>((clock() - begin) / CLOCKS_PER_SEC);


getch();
}
...
Рейтинг: 0 / 0
19.01.2013, 14:23
    #38116345
vromanov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как загрузить файл в ОП и работать с ним ? С++
gera3323,
Почитайте о Memory Mapped Files.
...
Рейтинг: 0 / 0
19.01.2013, 14:45
    #38116352
m_Sla
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как загрузить файл в ОП и работать с ним ? С++
Считать в память файл можно так:
Код: plaintext
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.
#include <iostream>
#include<fstream>

using namespace std;

int main()
{
    ifstream if_fFile("d:\\text.txt");
    if(!if_fFile.is_open()) return 1;

    // определяем размер файла
    if_fFile.seekg (0, ios::end);
    int length = if_fFile.tellg();
    if_fFile.seekg (0, ios::beg);
    cout<<"length="<<length<<endl;

    // создаем буфер в памяти
    char *buf=new char[length];

    // читаем файл в память
    if_fFile.read(buf,length);

    if_fFile.close();

    // выводим прочитанный файл
    cout.write (buf,length);

    delete[] buf;

    return 0;
}
...
Рейтинг: 0 / 0
19.01.2013, 22:10
    #38116558
Mozok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как загрузить файл в ОП и работать с ним ? С++
gera3323Я пишу программу для подсчета слов, символов, пробелов.

мне ее надо написать что бы она работала как можно быстрея.

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


ИМХО, бессмысленное занятие. Для того, чтобы записать файл в память, нужно его вычитать
хотя бы один раз. Проще сразу во время чтения подсчитать все необходимое.
...
Рейтинг: 0 / 0
20.01.2013, 00:45
    #38116674
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как загрузить файл в ОП и работать с ним ? С++
gera3323, прогружать в память нет смысла. Твоя задача решается
вычитыванием (посимвольно или построчно или поблочно) всего
файла и учётом пробельных, не-пробельных символов, и просто
всех символов. Такая лаконичность в реализации - привествуется.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как загрузить файл в ОП и работать с ним ? С++ / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]