#include"stdafx.h"
class LogManage
{
private:
CString content;//需要保存的内容
CString FileStr://保存.txt的地址,相关于FilePath
public:
LogManage(){}
~LogManage(){}
BOOL SaveLog();
CString GiveLog();//返回日志文件内容的函数
void WriteLog(CString cont);//将cont的内容,写入FilePath文件夹下
CString FilePath;//(其实不应该存在这样的可访问的成员变量,应该把它放函数里)这里是MFC客户选择的需要保存的文件夹地址或者
//和读取文件的地址
}
//===================================以下是源文件=====================================================
#include"stdafx.h"
#include"LogManage.h"
BOOL LogManage::SaveLog()
{
FILE* file;
if(file = fopen(FileStr.GetBuffer(),"a+"))//FileStr.GetBuffer():是文件绝对地址(带.txt的)字符窜指针,a+:代表在该文件末尾追加写;
{
CString str = " "+content+"\n";//content:是类成员变量,是要写的内容
fwrite(str,strlen(str),1,file);//调用函数写入file指向的txt文件
fclose(file);
return TRUE;
}
return false;
}
//====================
CString LogManage::GiveLog()
{
FILE* file;
char szLog[10240]={0};// 一次性将日志读出后所要存放的局部空间
CString txt="";//以后返回的内容
file = fopen(FilePath.GetBuffe(),"rb");//rb:能读出换行符, 这里传入的FilePath也是到TXT得(类写的有点乱自己看着修改);
if(file==NULL)
{
return txt;
}
else
{
fread(szLog,1,1024,file);
fclose(file);
txt = szLog;
return txt;
}
}
//========================
void LogManage::WriteLog(CString cont)
{
content = cont;
CTime time = CTime::GetCurrentTime();//time得到当前时间
CString Tim = time.Format("%Y-%m-%d");//设置字符窜格式
FileStr.Format("%s%s.txt",FilePath,Tim);//将要写的文件名,命名为“选定的文件夹地址+时间.txt”
FILE* file;
file = fopen(FileStr.GetBuffer(),"a+");
if( file == NULL)
{
AfxMessageBox("不存在即将保存的日志文件夹,请确认所选文件夹是否存在!");
return ;
}
Tim = time.Format("%H:%M:%S");//将Tim字符窜改为 **时:**分:**秒
CString str=Tim+":\n";
fwrite(str.GetBuffer(),strlen(str),1,file);// 只是写入当前时间
fclose(file);
SaveLog();//将主要内容写入日志
}
//============================简单的类用法举例============
#include"LogManage.h"
............................
LogManage Log;
Log.FilePath = "*********";//***处事绝对文件夹地址
Log.WriteLog(cont);//cont: 是CString形式的,你要写入的内容