logandfileandconfigandconverion

来源:互联网 发布:mac返回桌面 编辑:程序博客网 时间:2024/06/13 06:25
#include "StdAfx.h"#include ".\show_service_picture.h"#include show_service_picture::show_service_picture(void){for (int i=0;i<MAX_SERVICE_PICTURE_COUNT;i++){memset(m_picture_path[i],0x0,sizeof(m_picture_path[i]));} m_total_picture_count=0; //总的图片数m_cur_show_picture_number=1; //当前正在显示的图片编号}show_service_picture::~show_service_picture(void){}bool show_service_picture::initiate(TCHAR *path,TCHAR *ImageName,TCHAR *folder_name){try{TCHAR file_path[256];BOOL result=false;intptr_t search_handle = -1;int char_pos=0;struct _wfinddata_t findData;TCHAR xmlName[256];memset(&findData, 0, sizeof(findData));for (int i=0;i= MAX_SERVICE_PICTURE_COUNT)break;}}memset(&findData, 0, sizeof(findData));}while (0==_wfindnext(search_handle, &findData));}if (ImageName){_tcscat(ImageName,L"");}//关闭文件查找_findclose(search_handle);return true;}catch (...){}return false;}bool show_service_picture::initiate_new(TCHAR *path,TCHAR *ImageName,TCHAR *folder_name){try{TCHAR file_path[256];BOOL result=FALSE;int char_pos=0;TCHAR xmlName[256];CFileFind file_find;CString file_name;if ((NULL==path)||(NULL==ImageName)||(NULL==folder_name)){return false;}m_total_picture_count=0; //总的图片数m_cur_show_picture_number=1; //当前正在显示的图片编号//json头_tcscpy(ImageName,L"{\"imagelist\":[");//查找swprintf(file_path,L"%s\\*.*",path);result = file_find.FindFile(file_path);while (result){result = file_find.FindNextFile();if (file_find.IsDirectory()||file_find.IsDots()||file_find.IsSystem()||file_find.IsCompressed()||file_find.IsHidden()||file_find.IsTemporary()){continue;}file_name = file_find.GetFileName();const TCHAR* p = _tcsrchr(file_name.GetBuffer(0), '.');if((p!=NULL)&&(p!=0)){if ((_tcsicmp(p, L".jpg") == 0) || (_tcsicmp(p, L".bmp") == 0)||((_tcsicmp(p, L".png") == 0))){memset(xmlName,0x0,sizeof(xmlName));if (m_total_picture_count>0){_tcscat(ImageName,L",");}swprintf(xmlName,L"\"/%s/%s\"",folder_name,file_name.GetBuffer(0));_tcscat(ImageName,xmlName);m_total_picture_count++;//如果超过最大数就不继续查找文件if(m_total_picture_count >= MAX_SERVICE_PICTURE_COUNT)break;}}}//json尾_tcscat(ImageName,L"]}");//关闭文件查找file_find.Close();return true;}catch (...){}return false;}bool show_service_picture::get_show_picture(SERVICE_PICTRUE_PAGE_OPERATE page_operate,TCHAR *path){try{if(m_total_picture_count<=0){return false;}switch(page_operate){case SERVICE_PICTRUE_PRE_PAGE: //上一页{m_cur_show_picture_number--;if (m_cur_show_picture_number<1 m_cur_show_picture_number="m_total_picture_count;" break="" case="" service_pictrue_next_page:="" m_cur_show_picture_number="" if="" m_cur_show_picture_number="">m_total_picture_count){m_cur_show_picture_number = 1;}}break;case SERVICE_PICTRUE_CUR_PAGE: //当前页default:break;}_tcscpy(path,m_picture_path[m_cur_show_picture_number-1]);return true;}catch (...){}return false;}bool show_service_picture::get_page_info(int &total_page_count, int &show_page_number){total_page_count = m_total_picture_count;show_page_number = m_cur_show_picture_number;return true;}void show_service_picture::set_show_page_number(int page_number){m_cur_show_picture_number = page_number;if (m_cur_show_picture_number>m_total_picture_count){m_cur_show_picture_number = m_total_picture_count;}if (m_cur_show_picture_number<1){m_cur_show_picture_number = 1;}}#include "../stdafx.h"#include "log.h"#include "file.h"#include#include using namespace std;//全局变量TCHAR g_net_log_path[256]; //网络路径TCHAR g_local_log_path[256]; //本地路径void SetLogFilePath(const TCHAR* net_file_path){try{TCHAR szFilePath[256];CTime ctCurTime;CString strLogFileName;memset(g_net_log_path,0x0,sizeof(g_net_log_path));memset(g_local_log_path,0x0,sizeof(g_local_log_path));//get system timectCurTime = CTime::GetCurrentTime();strLogFileName = ctCurTime.Format(L"%Y-%m-%d");//本地文件路径//work dirGetModuleFileName(NULL,szFilePath,sizeof(szFilePath));(wcsrchr(szFilePath,'\\'))[1] ='\0'; //write log to log directorywcscat(szFilePath,L"log\\");if (!PathFileExists(szFilePath)){SuperMkDir(szFilePath);}//log file pathswprintf(g_local_log_path,L"%stool_%s.txt",szFilePath,strLogFileName.GetBuffer(0));}catch (...){}return;}//获取父目录路径CString GetParentDir(CString Path){if (!Path.IsEmpty()){Path.Replace('/','\\');return Path.Left(Path.ReverseFind('\\'));}return NULL;} //目录是否存在BOOL FolderExists(CString Directory){DWORD dwFolderAttr; dwFolderAttr = GetFileAttributes(Directory); return (dwFolderAttr != (DWORD)(-1)) && (dwFolderAttr & FILE_ATTRIBUTE_DIRECTORY); }//创建目录,可以多层创建;创建成功或者已存在,返回true; 否则返回falseBOOL SuperMkDir(CString Path){if (Path.IsEmpty()){return false;}int len=Path.GetLength();if ( len <2 ){//如果字符串长度小于2,则不是有效的路径格式。return false; }Path.Replace('/','\\');if('\\'==Path[len-1]){Path = Path.Left(len-1);len=Path.GetLength();}// 删除末尾的"\"if ( len <=0 ) {return false;}if (len <=3) //如果长度<=3,那么必定是根目录格式{if (FolderExists(Path))return true;//如果根目录存在,返回true;else return false; //如果不存在,根目录是无法创建的,返回失败;}if (FolderExists(Path))return true;//如果目录存在,返回true;// 分开父目录和本身目录名称CString Parent;Parent=GetParentDir(Path);if(Parent.GetLength()<=0)return false; //目录名称错误BOOL Ret=SuperMkDir(Parent); //递归创建父目录if(Ret) // 父目录存在,直接创建目录{SECURITY_ATTRIBUTES sa;sa.nLength=sizeof(SECURITY_ATTRIBUTES);sa.lpSecurityDescriptor=NULL;sa.bInheritHandle=0;Ret=(CreateDirectory(Path,&sa)==TRUE);return Ret;}elsereturn false;}void WriteLog(const TCHAR* logtext){TCHAR szLog[10240];CTime ctCurTime;file log_file;std::wstring strLogTime;DWORD buffer_size=0;DWORD write_buffer_size=0;bool result = false;try{memset(szLog,0x0,sizeof(szLog));//get system timectCurTime = CTime::GetCurrentTime();strLogTime = ctCurTime.Format(L"%Y-%m-%d %H:%M:%S");//log textswprintf(szLog,L" %s\r\n",logtext);//输出本地日志result = log_file.file_exist(g_local_log_path);if (result){//存在result = log_file.open_file(g_local_log_path,FILE_APPEND);}else{//不存在result = log_file.open_file(g_local_log_path,FILE_WRITE);//写入unicode的字符DWORD unicode_flag = 0xFEFF;log_file.write_file(&unicode_flag,2,&write_buffer_size);//指针移到到最后log_file.seek_file(0,FILE_END);}if(result){buffer_size = (DWORD)(2*wcslen(strLogTime.c_str()));log_file.write_file((LPVOID)strLogTime.c_str(),buffer_size,&write_buffer_size);buffer_size = (DWORD)(2*wcslen(szLog));log_file.write_file(szLog,buffer_size,&write_buffer_size);log_file.close_file();}//写网络日志/////mzyif (0!=_tcscmp(g_net_log_path,L"")){result = log_file.file_exist(g_net_log_path);if (result){result = log_file.open_file(g_net_log_path, FILE_APPEND);}else{result = log_file.open_file(g_net_log_path, FILE_WRITE);if (result){DWORD unicode_flag = 0xFEFF;log_file.write_file(&unicode_flag,2,&write_buffer_size);//指针移到到最后log_file.seek_file(0,FILE_END);}else{//可能不存在这个目录,清空内容,以后不再写这个memset(g_net_log_path, 0, sizeof(g_net_log_path));}}if (result){buffer_size = (DWORD)(2*wcslen(strLogTime.c_str()));log_file.write_file((LPVOID)strLogTime.c_str(),buffer_size,&write_buffer_size);buffer_size = (DWORD)(2*wcslen(szLog));log_file.write_file(szLog,buffer_size,&write_buffer_size);log_file.close_file();}}////end mzy}catch(...){}return;}// SkinsManager.cpp: implementation of the SkinsManager class.////////////////////////////////////////////////////////////////////////#include "../stdafx.h"#include "file.h"#ifdef _DEBUG#undef THIS_FILEstatic char THIS_FILE[]=__FILE__;#define new DEBUG_NEW#endiffile::file(){file_handle = NULL;}file::~file(){}bool file::open_file(const TCHAR* file_path,DWORD dwCreationDisposition){if (FILE_READ==dwCreationDisposition){//读file_handle = CreateFile(file_path,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_DELETE,NULL,OPEN_EXISTING,0,NULL);}else if (FILE_WRITE==dwCreationDisposition){//写file_handle = CreateFile(file_path,GENERIC_WRITE,FILE_SHARE_DELETE,NULL,CREATE_ALWAYS,0,NULL);}else if (FILE_APPEND==dwCreationDisposition){//在末尾追加file_handle = CreateFile(file_path,GENERIC_WRITE,FILE_SHARE_DELETE,NULL,OPEN_ALWAYS,0,NULL);if (INVALID_HANDLE_VALUE!=file_handle){DWORD result = seek_file(0,FILE_END);if (INVALID_SET_FILE_POINTER==result){return false;}else{return true;}}}else{return false;}return (INVALID_HANDLE_VALUE!=file_handle);}bool file::close_file(){return (TRUE==CloseHandle(file_handle));}DWORD file::get_file_size(){return GetFileSize(file_handle,NULL);}DWORD file::get_file_size(const TCHAR* file_path){bool result = open_file(file_path,FILE_READ);if(!result) return 0;DWORD fs = get_file_size();close_file();return fs;}DWORD file::seek_file(DWORD offset,DWORD method){return SetFilePointer(file_handle,offset,NULL,method);}DWORD file::get_file_pointer(){return SetFilePointer(file_handle,0,NULL,FILE_CURRENT);}bool file::read_file(LPVOID buffer,DWORD buf_size,DWORD* read_bytes){DWORD rd;BOOL ret = ReadFile(file_handle,buffer,buf_size,&rd,NULL);if(read_bytes) *read_bytes = rd;return (TRUE==ret);}bool file::write_file(LPVOID buffer,DWORD buf_size,DWORD* write_bytes){DWORD wd;BOOL ret = WriteFile(file_handle,buffer,buf_size,&wd,NULL);if(write_bytes) *write_bytes = wd;return (TRUE==ret);}bool file::file_exist(const TCHAR *file_path){bool result=false;result = open_file(file_path,FILE_READ);if (!result){return false;}result = close_file();return true;}#include "../stdafx.h"#include "config_file.h"config_file_manager::config_file_manager(){init();};config_file_manager::~config_file_manager(){}void config_file_manager::init(){ TCHAR cur_path[MAX_FILE_PATH];memset(cur_path,0x0,sizeof(cur_path));//得到执行文件路劲DWORD len = ::GetModuleFileName(NULL, cur_path, MAX_FILE_PATH);//得到执行文件的文件夹路径(_tcsrchr(cur_path,'\\'))[0] ='\0';//保存路径m_exec_file_dir.assign(cur_path);//得到配置文件路径init(L"Configure.ini");}void config_file_manager::init(LPCTSTR lpFile){memset(m_config_file_path,0x0,sizeof(m_config_file_path));swprintf(m_config_file_path,L"%s\\%s",m_exec_file_dir.c_str(),lpFile);}std::wstring config_file_manager::get_exec_file_path(){return m_exec_file_dir;}int config_file_manager::read_integer(LPCTSTR szSection, LPCTSTR szKey, int iDefaultValue){ int result = GetPrivateProfileInt(szSection, szKey, iDefaultValue, m_config_file_path); return result;}float config_file_manager::read_float(LPCTSTR szSection,LPCTSTR szKey,float fDefaultValue){TCHAR result[MAX_FILE_PATH];TCHAR default_value[MAX_FILE_PATH];float ret=0.0;memset(result,0x0,sizeof(result));memset(default_value,0x0,sizeof(default_value));swprintf(default_value,L"%f",fDefaultValue);GetPrivateProfileString(szSection, szKey, default_value, result, MAX_FILE_PATH, m_config_file_path);swscanf(result,L"%f",&ret);return ret;}bool config_file_manager::read_boolean(LPCTSTR szSection, LPCTSTR szKey, bool bolDefaultValue){ TCHAR result[MAX_FILE_PATH];std::wstring szDefault(bolDefaultValue ?L"true" : L"false"); memset(result,0x0,sizeof(result));GetPrivateProfileString(szSection, szKey, szDefault.c_str(), result, MAX_FILE_PATH, m_config_file_path); bool bResult = (wcscmp(result, L"True") == 0 || wcscmp(result, L"true") == 0) ? true : false;return bResult;}std::wstring config_file_manager::read_string(LPCTSTR szSection, LPCTSTR szKey, LPCTSTR szDefaultValue){ TCHAR result[MAX_FILE_PATH];std::wstring result_string;memset(result,0x0,sizeof(result));GetPrivateProfileString(szSection, szKey, szDefaultValue, result, MAX_FILE_PATH, m_config_file_path); result_string.assign(result);return result_string;}void config_file_manager::write_integer(LPCTSTR szSection, LPCTSTR szKey, int iValue){ TCHAR value[MAX_FILE_PATH];memset(value,0x0,sizeof(value));swprintf(value,L"%d",iValue);WritePrivateProfileString(szSection, szKey, value, m_config_file_path); }void config_file_manager::write_float(LPCTSTR szSection, LPCTSTR szKey, float fltValue){ TCHAR value[MAX_FILE_PATH];memset(value,0x0,sizeof(value));swprintf(value,L"%f",fltValue);WritePrivateProfileString(szSection, szKey, value, m_config_file_path); }void config_file_manager::write_boolean(LPCTSTR szSection, LPCTSTR szKey, bool bolValue){ TCHAR value[MAX_FILE_PATH];memset(value,0x0,sizeof(value));swprintf(value,L"%s", bolValue ? L"true" : L"false");WritePrivateProfileString(szSection, szKey, value, m_config_file_path); }void config_file_manager::write_string(LPCTSTR szSection, LPCTSTR szKey, LPCTSTR szValue){ WritePrivateProfileString(szSection, szKey, szValue, m_config_file_path);}#include "stdafx.h"#include "StringCodeConversion.h"#include string_conversion::string_conversion(){}string_conversion::~string_conversion(){}int string_conversion::get_byte_size_of_multibyte(const TCHAR *widechar_string){try{int byte_size=0; byte_size = WideCharToMultiByte(CP_ACP,0,widechar_string,-1,NULL,0,NULL,NULL);return byte_size;}catch (...){}return -1;}int string_conversion::get_byte_size_of_utf8(const TCHAR *widechar_string){try{int byte_size=0;byte_size = WideCharToMultiByte(CP_UTF8,0,widechar_string,-1,NULL,0,NULL,NULL);return byte_size;}catch (...){}return -1;}int string_conversion::get_byte_size_of_widechar(const char *multibyte_string){try{int byte_size = 0;byte_size = MultiByteToWideChar(CP_ACP,0,multibyte_string,-1,NULL,0);return byte_size;}catch (...){}return -1;}int string_conversion::get_byte_size_of_widechar_utf8(const char *multibyte_string){try{int byte_size = 0;byte_size = MultiByteToWideChar(CP_UTF8,0,multibyte_string,-1,NULL,0);return byte_size;}catch (...){}return -1;}bool string_conversion::multibyte_to_widechar(const char *multibyte_string,TCHAR *widechar_string,int widechar_size){try{int result = 0; result = MultiByteToWideChar(CP_ACP,0,multibyte_string,-1,widechar_string,widechar_size);if (0!=result){return true;}return false;}catch (...){}return false;}bool string_conversion::utf8_to_widechar(const char *multibyte_string,TCHAR *widechar_string,int widechar_size){try{int result = 0;result = MultiByteToWideChar(CP_UTF8,0,multibyte_string,-1,widechar_string,widechar_size);if (0!=result){return true;}return false;}catch (...){}return false;}bool string_conversion::widechar_to_multibyte(const TCHAR *widechar_string,char *multibyte_string,int multibyte_size){try{int result = 0;result = WideCharToMultiByte(CP_ACP,0,widechar_string,-1,multibyte_string,multibyte_size,NULL,NULL);if (0!=result){return true;}return false;}catch (...){}return false;}bool string_conversion::widechar_to_utf8(const TCHAR *widechar_string,char *multibyte_string,int multibyte_size){try{int result = 0;result = WideCharToMultiByte(CP_UTF8,0,widechar_string,-1,multibyte_string,multibyte_size,NULL,NULL);if (0!=result){return true;}return false;}catch (...){}return false;}
0 0
原创粉丝点击