📄 memmapfilehadle.cpp
字号:
// MemMapFileHadle.cpp:
#include "stdafx.h"
#include "..\ToolSoftForprint.h"
#include "MemMapFileHadle.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMemMapFileHadle::CMemMapFileHadle()
{
}
CMemMapFileHadle::~CMemMapFileHadle()
{
}
BOOL CMemMapFileHadle::MapFile(CString sFileName)
{
char pszPathName[200];
strcpy(pszPathName,sFileName);
hFile = CreateFile(pszPathName, GENERIC_WRITE | GENERIC_READ,
0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
AfxMessageBox("内存映射文件创建失败");
return(FALSE);
}
dwFileSize = GetFileSize(hFile, NULL);
hFileMap = CreateFileMapping(hFile, NULL, PAGE_READWRITE,
0, dwFileSize + 655300*sizeof(WCHAR), NULL);
if (hFileMap == NULL)
{
AfxMessageBox("内存映射文件创建失败");
CloseHandle(hFile);
return(FALSE);
}
lpvFile = MapViewOfFile(hFileMap, FILE_MAP_WRITE, 0, 0, 0);
if (lpvFile == NULL)
{
AfxMessageBox("内存映射文件视图创建失败");
CloseHandle(hFileMap);
CloseHandle(hFile);
return(FALSE);
}
return TRUE;
lpchANSI = (LPSTR) lpvFile;
}
void CMemMapFileHadle::RevFileContent()
{
lpchANSI[dwFileSize / sizeof(CHAR)] = 0;
_strrev(lpchANSI);
lpchANSI = strchr(lpchANSI, '\n');
}
BOOL CMemMapFileHadle::DismapFile()
{
UnmapViewOfFile(lpvFile);
CloseHandle(hFileMap);
SetFilePointer(hFile, dwFileSize, NULL, FILE_BEGIN);
SetEndOfFile(hFile);
CloseHandle(hFile);
return TRUE;
}
BOOL CMemMapFileHadle::SeeExistString(CString sInput)
{
BOOL bOutPut=FALSE;
BOOL bNewLine;
BOOL bIsComment;
int nLength=sInput.GetLength();
if (nLength==0)
AfxMessageBox("查看文件存在字符时传入空格");
while (lpchANSI)
{
if (*lpchANSI=='\n')
{
bNewLine=TRUE;
bIsComment=FALSE;
}
// if (NewLine==TRUE)
//{
// }
lpchANSI++;
}
return bOutPut;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -