您的位置:首页 > 移动开发 > 微信开发

Copy小程序

2015-12-18 13:36 471 查看
#include <iostream>
#include <string>
#include <cstdio>
#include <windows.h>
#include <fstream>

using namespace std;

class zhuan_huan{     				//转换类  将不同类型的值相互转换

public:
string shu_str(int shu_zi)    //int类型转换成string类型
{
char t[256];
sprintf(t, "%d", shu_zi);
return t;
}

char* str_cha(string zi_fu)    //string类型转换成char类型
{
char *dst = new char[255];
int i;
for(i=0;i<=zi_fu.length();i++)
{
dst[i]=zi_fu[i];
}
dst[i] = '\0';
return dst;
}

LPCSTR str_lpc(string b)   //string类型转换成 LPCSTR类型
{
LPCSTR destination = b.c_str();
return destination;
}
};

class time{						//时间类    将系统时间存储到类中  并以不同的格式以及形式输出
public:
int nian;
int yue;
int ri;
int shi;
int fen;
int miao;
int hao;
int zhou;				//周   int  1~7

void xie_time()			//将时间写入类的变量中
{
SYSTEMTIME sys;
GetLocalTime( &sys ); 		//sys.wYear,sys.wMonth,sys.wDay,sys.wHour,sys.wMinute, sys.wSecond,sys.wMilliseconds,sys.wDayOfWeek
nian = sys.wYear;
yue =sys.wMonth;
ri=sys.wDay;
shi=sys.wHour;
fen=sys.wMinute;
miao= sys.wSecond;
hao =sys.wMilliseconds;
zhou=sys.wDayOfWeek;
}

int inyr()     //yyyymmdd  返回int格式的年月日
{
int time=(nian*10000+yue*100+ri);
return time;
}

string snyr()    //yyyymmdd  返回string格式的年月日
{
int time=(nian*10000+yue*100+ri);
zhuan_huan a;
string stime=a.shu_str(time);
return stime;
}

string sfm()     //返回 string格式的  XX时XX分XX秒
{
zhuan_huan a;
string sfm=(a.shu_str(shi)+"时"+a.shu_str(fen)+"分"+a.shu_str(miao)+"秒");     //24小时制的  时 分 秒
return sfm;
}
};

class kao_bei{      //拷贝命令类  将拷贝命令合成位完整的执行命令  保存为string字符的形式  以变量he来存储
string kao_min_lin;     //命令类型
string yuan;           //源文件路径
string mu_biao;			//目标文件路径
string ri_zhi;			//日志文件路径
string shi_jian;		//时间值    YYYYMMDD
string ge_shi;			//.log  将执行结果保存到log  文件中

public:
string he;
void fu_zhi(string y,string time)			//需要输入的变量  原路径,目标路径,时间(YYYYMMDD)
{
kao_min_lin="xcopy /d /y ";     //需要执行的命令可以更换
yuan=y;
//		mu_biao=m;
ri_zhi=" >>D:\\zzx\\log\\";     //log日志文件保存的路径   一般不变在D:\zzx\log\中
shi_jian=time;
ge_shi=".log"; 					//日志文件格式
he=kao_min_lin+yuan+ri_zhi+shi_jian+ge_shi;  	  //合成所有命令
}
};

class pei_zhi{

public:
int duqucanshu()
{
LPTSTR lpPath = new char[MAX_PATH];
LPTSTR LiMingSex = new char[6];
int num;
strcpy(lpPath, "D:\\zzx\\peizhi.ini");
GetPrivateProfileString("lujinshu", "num", "", LiMingSex, 8, lpPath);
num=GetPrivateProfileInt("lujinshu", "num", 0, lpPath);
delete [] lpPath;
return num;
}

string duqulujin(const char *strSectionName,const char *strKeyName,const char *strFileName)   //读取路径 以string字符形式返回 ("主节点名字","子节点名称","文件路径")  如果失败返回 “oxfalse”
{
string reValue;
//  reValue = *fileName;
//  return reValue;
reValue = "oxfalse";
ifstream Readfile;
Readfile.open(strFileName);
if(!Readfile.is_open())//打不开文件  返回0
{
Readfile.close();
return reValue;
}
string strSection="[";
strSection+=strSectionName;
strSection+="]";
string strKey=strKeyName;
strKey+="=";
while(!Readfile.eof())
{
string line;
getline(Readfile,line); //读取第一行数据
if(line.find(strSection) == 0) //找到section
{
getline(Readfile,line);
while(line.find(strKey) != 0 && line.find("[") != 0 && !Readfile.eof())
{
getline(Readfile,line);
}
if(line.find(strKey) == 0)
{
reValue = line.substr(line.find("=")+1);
if(reValue.find("#") != string::npos)    //如果查找到"#" 就去掉包括“#”号后面的字符串
{
reValue = reValue.substr(0,reValue.find("#"));
}
int lv = reValue.find_last_not_of(' ');//查找最后一位不为空格字符的index
reValue=reValue.substr(0,lv);//去掉字符串后面的空格
Readfile.close();
return reValue;
}
}
}
Readfile.close();
return reValue;
}
private:
string *fileName;
};

void chuangjian(string nyr)  //创建年月日的log日志文件
{
zhuan_huan aa;   //创建转换类
string mulu="D:\\zzx\\log\\"+nyr+".log";   //合成文件路径以及文件名
ofstream fout(aa.str_cha(mulu));	  //创建文件
fout.close();   //关闭文件
}

void xierizhi(string nyr)      //将时间写入日志中
{
zhuan_huan aa;    //创建转换类
string mulu="time /t >>D:\\zzx\\log\\"+nyr+".log ";   //合成写入时间以及要写入的文件路径
system(aa.str_cha(mulu));   //转换成char变量执行,输出XX:XX时间 到当日log中
}

int main()
{
int day=0,day_qian;			//初始化两个时间变量
for(;;)						//无限循环
{
pei_zhi canshu;
int num1=canshu.duqucanshu();
int num2=num1;
string yuan[100];	//源路and目标路径
for(int i=0;num1>0;i++,num1--)
{
zhuan_huan lszh;
string ls="lujin"+lszh.shu_str(i+1);
yuan[i]=canshu.duqulujin("lujin",lszh.str_cha(ls),"D:\\zzx\\peizhi.ini");
}
for(int j=180;j>0;j--)			//循环180次  每次一秒  共3分钟
{
cout<<"程序将于"<<j<<"后进行下一次拷贝,请勿关闭程序!"<<endl;		//提示多少秒后执行操作
cout<<"程序如果不走秒数动,请重启程序!"<<endl;		//如果秒数字不走动表示程序卡死
Sleep(1000);		//  休眠1000毫秒
system("cls");		//  清屏
}
time sfm;     //创建时间类
sfm.xie_time();   //初始化时间
day_qian=day;
day=sfm.ri;
if(day!=day_qian)		     //创建当日文件的log文件    未完成
{
chuangjian(sfm.snyr());
}
xierizhi(sfm.snyr());  //输出执行命令时间
for(int i=0;num2>0;i++,num2--)      //i=7时结束循环则执行7次操作
{
zhuan_huan zhzz;   // 新建转换类
string shijian=sfm.sfm();     //小时-分钟-秒
string sj=sfm.snyr();		//string格式的  YYYYMMDD  日期
kao_bei kb;    // 新建一个拷贝类
kb.fu_zhi(yuan[i],sj);  //将源目标和时间结合成一个string命令
system(zhzz.str_cha(kb.he));    //执行命令
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: