Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.05;
Скачать: CL | DM;

Вниз

Файлы в оперативной памяти   Найти похожие ветки 

 
Alfred ©   (2002-11-26 10:52) [0]

Подскажите, пожалуйста, что делать, если надо создать файл в оперативной памяти, заполнить его данными, работать с ним как с обычным файлом, обращаться к нему, в том числе, с помощью функции LoadFromFile


 
MBo ©   (2002-11-26 11:11) [1]

Как я понял, нужно CreateFileMapping с 0xFFFFFFFF


 
Alfred ©   (2002-11-26 13:00) [2]

МВо, Спасибо!
Смотрел help - понять трудно
([Error] Unit1.pas(30): Not enough actual parameters)
В виде исключения, нельзя ли
самый минимальный пример


 
Romkin ©   (2002-11-26 13:06) [3]

http://delphi.mastak.ru/cgi-bin/faq.pl?look=1&id=988619824&n=15
Там ищи пример CreateFileMapping, только рекомендую вместо $FFFFFFFF написать INVALID_HANDLE_VALUE - как раз то же значение, и совместимость сохраняется


 
MBo ©   (2002-11-26 13:06) [4]

HMap:=CreateFileMapping(Dword(-1),nil,PAGE_READWRITE,0,NeededSize,pchar(NeededName));


 
Alfred ©   (2002-11-26 15:45) [5]

Ребята, спасибо за ответы!
Написал код:
procedure TForm1.SpeedButton1Click(Sender: TObject);
Const
MemFileSize = 1024;
MemFileName = "T.t";
var
MemHnd : HWND;
bl: Boolean;
buf, buf1: Shortint;
i: Integer;
q, g: Cardinal;
begin
MemHnd := CreateFileMapping(INVALID_HANDLE_VALUE,
nil,PAGE_READWRITE,0,MemFileSize,MemFileName);

bl := false;
OpenFileMapping(FILE_MAP_WRITE,false,MemFileName);
for i := 1 to 10 do
begin
Buf := i;
WriteFile(MemHnd,Buf,1,q,nil);
end;
CloseHandle(MemHnd);
OpenFileMapping(FILE_MAP_READ,bl,MemFileName);
for i := 1 to 10 do
begin
ReadFile(MemHnd,Buf1,1,g,nil);
ShowMessage(IntToStr(buf1));
end;

CloseHandle(MemHnd);
MemHnd := NULL;

end;

При компиляции выдает:
[Hint] Unit1.pas(56): Value assigned to "MemHnd" never used
В файле, если он создался, похоже ничего нет.
В конце работы выдает: " ... "External excrption C0000008"
Может быть подскажете, что не так сделал?
И можно ли такой файл читать функцией LoadFromFile?



Страницы: 1 вся ветка

Текущий архив: 2002.12.05;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
4-14862
DarkGreen
2002-10-24 08:01
2002.12.05
Fonts и его размеры


3-14390
Fbist
2002-11-15 13:21
2002.12.05
Привет всем мастерам!


3-14418
Step[B.M.]
2002-11-16 17:55
2002.12.05
Как в Firebird поменять пароль SYSDBA ???


3-14395
Skolotovich
2002-11-15 14:30
2002.12.05
Ошибка при работе с Query.GotoBookmark


8-14699
Groove
2002-06-19 15:37
2002.12.05
mediaplayer & tarckbar