Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2012, 09:51   #1
munthrekosh
Пользователь
 
Аватар для munthrekosh
 
Регистрация: 12.11.2011
Сообщений: 80
По умолчанию FileMapping. Работа с большим количеством страниц

Есть следующий код создания FileMapping:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  ffile:=CreateFile('ffile.txt', GENERIC_ALL, 0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
  hFileMapObj:=CreateFileMapping(ffile,Nil,PAGE_READWRITE,0,1,'MySharedValue');
  If (hFileMapObj=0)
    Then
      ShowMessage('Не могу создать FileMapping!')
    Else
      lpBaseAddress:=MapViewOfFile(hFileMapObj,FILE_MAP_READ,0,0,0);
  If lpBaseAddress=Nil
    Then
      ShowMessage('Не могу подключить FileMapping!');
end;
И код чтения из него:
Код:
procedure TForm1.ReadClick(Sender: TObject);
var
  L:integer;
  k:pointer;
begin
  If PositionRead.Text='' then PositionRead.Text:='0';
  If (Length(PositionRead.Text)>1)
    then
      while (PositionRead.Text[1]='0')and(Length(PositionRead.Text)>1) do
        PositionRead.Text:=copy(PositionRead.Text,2,Length(PositionRead.Text)-1);
 
  MemoriesEditPlane.clear;
  L:=Integer(lpBaseAddress);
  L:=L+StrToInt(PositionRead.Text);
  k:=Pointer(L);
  MemoriesEditPlane.text:=PChar(k);
end;
(на всякий случай приложу сам проект)

Читать он у меня умеет только с одной страницы в 4 Кб. Как можно реализовать чтение с большего числа страниц?
Вложения
Тип файла: rar PROGA 01.rar (203.8 Кб, 13 просмотров)
Ш.Р.Ю.-программист! йопта!!!
munthrekosh вне форума Ответить с цитированием
Старый 25.05.2012, 22:26   #2
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

А ты понимаешь, что это за волшебные цифирьки?

Цитата:
hFileMapObj:=CreateFileMapping(ffil e,Nil,PAGE_READWRITE,0,1,'MySharedValue')
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с большим количеством текста в String иTextbox Дмитрий999 Visual C++ 0 20.02.2012 20:07
Сводная таблица с большим количеством строк s8259 Microsoft Office Excel 1 03.04.2011 00:28
Метод для управления большим количеством данных eda Microsoft Office Excel 0 13.07.2009 10:50
ГСЧ с большим количеством нулей Frog25 Общие вопросы C/C++ 6 26.06.2008 18:22