Q&A

  • 메모리맵을 이용하여 파일에 쓰기를 하는데 안돼요..
밑의 내용은 텍스트 파일을 읽어서 파일끝에 'bbb'를 붙여서

저장하는 소스인데 파일에 써지지가 않네요..

그런데 다시 매핑한 파일을 보면 내용이 들어가 있는걸루 인식이 되고

참 어디가 문제인지 --+...그럼 열분들의 실력에 부탁드립니다.
---------------------------------------
소스
---------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
    iFileHandle, iMapHandle: integer;
    p: Pointer;
    strFileName: string;
begin
    strFileName := 'D:test.txt';
    //1.파일 핸들 가져오기.
    iFileHandle := CreateFile(pchar(strFileName), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
    iMapHandle := CreateFileMapping(iFileHandle, nil, PAGE_READWRITE, 0, 0, nil);

    //2. base Pointer 지정
    p := MapViewOfFile(iMapHandle, FILE_MAP_ALL_ACCESS, 0, 0, 0);

    strcat(p, pchar('bbb'));


    //3.읽은 내용 표시
    memo2.lines.add(pchar(p));


    //3.해제.
    //FlushViewOfFile(p, 0);
    UnmapViewOfFile(p);
    CloseHandle(iMapHandle);
    CloseHandle(iFileHandle);

    //4.저장후 바뀐내용 표시
    memo1.Lines.LoadFromFile(strFileName);
end;
---------------------------------------
0  COMMENTS