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

Проекция файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывести на экран элементы с четными индексами http://www.cyberforum.ru/cpp-beginners/thread1050797.html
Условие Дана последовательность целых чисел. Нужно решить задачу двумя способами, сначала используя одномерный массив, а затем двумерный. Вывести на экран элементы с четными индексами ( для двумерного массива сумма индексов должна быть четной) Ребят помогите пожалуйста, мне очень срочно надо ее сдать, времени вообще нету.
C++ Работа с текстовыми файлами Сразу к сути программа работает так: программа находит текстовый файл1 и в нему находит минимальное слово, потом записывает всё в файл2, только без этого слова! Как сделать так что бы во второй файл слова записывало в обратном порядке? Вот программа: #include <iostream> #include <string> #include <fstream> using namespace std; void main() { setlocale (LC_ALL,"Russian"); http://www.cyberforum.ru/cpp-beginners/thread1050794.html
C++ Змейка
Программа которая змейкой заполняет прямоугольную таблицу.которая складывается из М рядов и Н столбцов натуральными числами от 1 до М*Н.Таблица заполняется в порядке возрастания номра столбца при этом непарные столбцы заполняются сверху вниз а парные наоборот М больше 1 а Н меньше 10. например вводим 3 6 получаем 167121318 258111417 349101516
C++ Задача с пирожками не правильно работает
Ввел case а она все равно одно и тоже выводи (пирожков.) Кстати зачем здесь остаток от деления в первом и во-втором случаях ?? #include <iostream> #include <locale.h> using namespace std; int main() { setlocale(LC_ALL,"Russian"); cout << "Введите количество пирожков: "; int n;
C++ Класс описывающий правильную треугольную призму http://www.cyberforum.ru/cpp-beginners/thread1050769.html
С Sharp Класс должен иметь методы,решающие следующие задачи: -расчет площади боковой поверхности правильной треугольной призмы -расчет объема правильной треугольной призмы ___ срочная помощь, иначе отчислят к чертям
C++ Среди чисел от 1 до Н определить то, сумма цифр которого большая Дано число Н, Среди чисел от 1 до Н определить то, сумма цифр которого большая. Если таких не сколько выбрать найменьшее. Н: от 1 до 2013. Например Входные: 58, Выход: 49 подробнее

Показать сообщение отдельно
slavikk07
3 / 3 / 0
Регистрация: 27.02.2013
Сообщений: 62
21.12.2013, 15:28     Проекция файла
Здравствуйте!
Написать две программы. Первая программа создает проекцию файла в памяти и выделяет для нее блок адресов размером 8 MB. Вторая программа подключается к уже существующей проекции, записывает в нее данные, и отключается от проекции. Первая программа читает данные из проекции, выводит их на печать, закрывает проекцию.
Программы сделал!

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
38
39
40
41
42
43
#include <stdio.h>
#include <process.h>
#include <windows.h>
 
int main(void)
{
  HANDLE      hMapFile, hFile, event;
  char        *map_data;
  int i;
 
  hFile = CreateFile("Mydata.dat", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ,
                     NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
 
  hMapFile = CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0, 0,   "MapLab8");
  if (hMapFile != NULL && GetLastError() == ERROR_ALREADY_EXISTS) {
    printf("FileMapping handle %p exist!", hMapFile);
    CloseHandle(hMapFile);
    exit(1);
  }
  if(hMapFile == NULL) {
    printf("FileMapping handle not created!");
    exit(1);
  }
 
  event = CreateEvent(NULL, FALSE, FALSE, "MyEvent");
  if (event == NULL){
      printf("CreateEvent Failed!");
      exit(1);
  }
  WaitForSingleObject(event, INFINITE);
 
  map_data = (char *) MapViewOfFile(hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, 8*1024*1024);
  if(map_data == NULL) {
    printf("Can't lock mapzone!");
    exit(1);
  }
  for (i = 0; i < 8*1024*1024; i++) printf("%c", map_data[i]);
  
  UnmapViewOfFile(map_data);
  CloseHandle(hMapFile);
  CloseHandle(hFile); CloseHandle(event);
  return 0;
}
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
#include <stdio.h>
#include <process.h>
#include <windows.h>
 
int main(void)
{
  HANDLE      hMap, event;
  char        *map_data;
  
  hMap = OpenFileMapping (FILE_MAP_ALL_ACCESS, FALSE, "MapLab8");
  if (hMap == NULL){
      printf ("Proection not exist!");
      exit(1);
  }
 
  event = OpenEvent(EVENT_ALL_ACCESS, FALSE, "MyEvent");
  if (event == NULL){
      printf("OpenEvent Failed!");
      exit(1);
  }
 
  map_data = (char*) MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, 8*1024*1024); //сюда нужно написать
  if (map_data == NULL){
     printf("Can't lock mapzone!");
     exit(1);
  }
  strcpy (map_data, "Hie! It's me - slave.c\n");
  
  SetEvent(event);
  UnmapViewOfFile(map_data);
  CloseHandle(hMap); CloseHandle(event);
  return 0;
}
Как начать чтение файла, с 16гб, что нужно написать в место нулей в строчке с функцией MapViewOfFile... Там нужно только написать что нужно вместо нулей и всё)

СПАСИБО!

Добавлено через 1 минуту
Вопрос по теории! Код изменять не нужно.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru