VC下写入txt的一点总结&&如何获得当前应用程序的目录&&获得系统日期时间


这个问题,就在前几个月还用过一次的,可能是囫囵吞枣的原因吧,今天写代码还是得上网查才能release,今天还是总结一下贴在这吧,以后网上查也快些。。。

1.

void CWriteToTxtDlg::OnBtnWriteToTxt() 
{
// TODO: Add your control notification handler code here
SYSTEMTIME sys;
GetLocalTime( &sys );
CString strCurrentTime,strFileName,strFilePath,strWriteTemp;
//获得系统日期时间
GetLocalTime( &sys );
strCurrentTime.Format(_T("%d/%d/%d %d:%d:%d:%d "),sys.wYear,sys.wMonth,sys.wDay,
sys.wHour,sys.wMinute,sys.wSecond,sys.wMilliseconds);
strFileName.Format(_T("%d-%d-%d"),sys.wYear,sys.wMonth,sys.wDay);
strFileName += ".txt";
//获得应用程序目录路径
GetModuleFileName(NULL,strFilePath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
strFilePath.ReleaseBuffer();
int pos=strFilePath.ReverseFind('\\');
strFilePath=strFilePath.Left(pos);
strFilePath+="\\";
strFilePath += strFileName;
strWriteTemp.Format(_T("%s"),_T("中文测试writetotxtTest...\r\n"));
//追加方式写入txt
CStdioFile myFile;
myFile.Open(strFilePath,CFile::modeCreate|CFile::modeReadWrite|CFile::modeNoTruncate);
myFile.SeekToEnd();
myFile.WriteString(strWriteTemp);
}
CFile::modeCreate//如果不存在则生成
CFile::modeNoTruncate加了之后myFile.SeekToEnd();才有用

2.

void CWriteToTxtDlg::OnBtnWriteToTxt() 
{
// TODO: Add your control notification handler code here
SYSTEMTIME sys;
GetLocalTime( &sys );
CString strCurrentTime,strFileName,strFilePath,strWriteTemp;
//获得系统日期时间
GetLocalTime( &sys );
strCurrentTime.Format(_T("%d/%d/%d %d:%d:%d:%d "),sys.wYear,sys.wMonth,sys.wDay,
sys.wHour,sys.wMinute,sys.wSecond,sys.wMilliseconds);
strFileName.Format(_T("%d-%d-%d"),sys.wYear,sys.wMonth,sys.wDay);
strFileName += ".txt";
//获得应用程序目录路径
GetModuleFileName(NULL,strFilePath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
strFilePath.ReleaseBuffer();
int pos=strFilePath.ReverseFind('\\');
strFilePath=strFilePath.Left(pos);
strFilePath+="\\";
//追加方式写入txt
strFilePath += strFileName;
FILE* fpRecord= fopen(strFilePath, "a+");
strWriteTemp.Format(_T("%s"),_T("中文测试writetotxtTest...\r\n"));
fputs(strWriteTemp,fpRecord);
fclose(fpRecord);
}

3.

void CWriteToTxtDlg::OnBtnWriteToTxt() 
{
// TODO: Add your control notification handler code here
SYSTEMTIME sys;
GetLocalTime( &sys );
CString strCurrentTime,strFileName,strFilePath,strWriteTemp;
//获得系统日期时间
GetLocalTime( &sys );
strCurrentTime.Format(_T("%d/%d/%d %d:%d:%d:%d "),sys.wYear,sys.wMonth,sys.wDay,
sys.wHour,sys.wMinute,sys.wSecond,sys.wMilliseconds);
strFileName.Format(_T("%d-%d-%d"),sys.wYear,sys.wMonth,sys.wDay);
strFileName += ".txt";
//获得应用程序目录路径
GetModuleFileName(NULL,strFilePath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
strFilePath.ReleaseBuffer();
int pos=strFilePath.ReverseFind('\\');
strFilePath=strFilePath.Left(pos);
strFilePath+="\\";
//追加方式写入txt
strFilePath += strFileName;
FILE* fpRecord= _wfopen(strFilePath, L"a+, ccs=UNICODE");
strWriteTemp.Format(_T("%s"),_T("中文测试writetotxtTest...\r\n"));
fputws(strWriteTemp,fpRecord);
fclose(fpRecord);
}

不知道为什么第三种方法在vs2010里面可以release,在vc6.0里却不行,网上说好像是编译设置的问题,暂且不管他了。。。

   
                        
                        
                 
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告