首页
社区
课程
招聘
文件操作函数 按照网上的方法做的 但是还是错误
发表于: 2011-7-5 14:46 3957

文件操作函数 按照网上的方法做的 但是还是错误

2011-7-5 14:46
3957
enum
{
	m_enumBeg = 0,
	m_enumCur,
	m_enumEnd
};

BOOL OpenFileWriteLine(CString szStr,CString szFilePath="",int szFileFlag=m_enumEnd);

BOOL CSearchEx::OpenFileWriteLine(CString szStr,CString szFilePath,int szFileFlag)
{
   if (szFilePath.IsEmpty())
   {
	   CFileDialog m_tDlg(TRUE,"*.*","*.*");
	   m_tDlg.DoModal();
	   CString m_tPath=m_tDlg.GetPathName();
		if(m_tPath.IsEmpty())
			return FALSE;
	     m_ofstream.open(m_tPath.GetBuffer(MAX_PATH));
	
   }
   m_ofstream.open(szFilePath.GetBuffer(MAX_PATH));
 if (szFileFlag==m_enumBeg)
  {
	  m_ofstream.seekp(0,ios::beg);
  }
   else if (szFileFlag==m_enumCur)
   {
	   m_ofstream.seekp(0,ios::cur);
   }
   else if (szFileFlag==m_enumEnd)
   {
       m_ofstream.seekp(0,ios::end);
   }
  if(m_ofstream.is_open())
  {
    m_ofstream.write(szStr.LockBuffer(),szStr.GetLength());
	m_ofstream.write("/r/n",2);
   szStr.UnlockBuffer();
	return  TRUE;
  }
    m_ofstream.close();
    return FALSE;
}


CSearchEx m_tSearch;
m_tSearch.OpenFileWriteLine(CString("TEST"));

各位 想要对文件写入一行 怎么这样子弄变成了清除整个文件的内容
求大牛帮忙纠正

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 2177
活跃值: (2045)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
2
是不是文件指针移的不对啊.
2011-7-5 16:55
0
雪    币: 247
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
你是用CFile类来操作的吗?(貌似不是)
如果是的话,这么写试试..
m_ofstream.open(m_tPath.GetBuffer(MAX_PATH),CFile::modeCreate|CFile::modeReadWrite,NULL);

对MFC不熟悉,我用WIN32 API写给你看看.

HANDLE hFile;
char buff[] = {'\r','\n'};
int wCount;
hFile = CreateFile(m_tPath.GetBuffer(MAX_PATH),
                GENERIC_WRITE,FILE_SHARE_WRITE|FILE_SHARE_READ,
                0,OPEN_EXISTING,0,0);//以OPEN_EXISTING共享打开一个文件
if(hFile == INVALID_HANDLE_VALUE)
        return FALSE;

...
SetFilePointer(hFile,0,0,FILE_BEGIN);//这个函数用于移动文件指针,具体参看MSDN
...

if(WriteFile(hFile,buff,strlen(buff),&wCount,0))
{
        CloseHandle(hFile)
        return TRUE;
}else
{
        CloseHandle(hFile)
        return FALSE;
}

DWORD WINAPI SetFilePointer(
__in HANDLE hFile,
__in LONG lDistanceToMove,
__in_out_opt PLONG lpDistanceToMoveHigh,
__in DWORD dwMoveMethod
);
2011-7-6 10:36
0
游客
登录 | 注册 方可回帖
返回
//