資源簡介
c++常用的工具類源碼
包括:文件處理,編碼處理,字符串處理,網(wǎng)絡(luò)爬蟲,網(wǎng)頁數(shù)據(jù)的抓取 ,可根據(jù)數(shù)組規(guī)則抓取指定網(wǎng)頁的內(nèi)容(有一個例子)等等

代碼片段和文件信息
#include?“StdAfx.h“
#include?“FileUtil.h“
#include?
#include?
#include?
#include?
#include??
#include?????
#include?
#include?
using?namespace?std;?
#pragma?warning(disable:4996)
#ifdef?_DEBUG?
#define?new?DEBUG_NEW
#endif
FileUtil::FileUtil(void)
{
}
FileUtil::~FileUtil(void)
{
}
/*
?*?創(chuàng)建路徑(僅單級路徑)?
?*?參數(shù)一:路徑
?*?返回:true創(chuàng)建成功(路徑存在)/false創(chuàng)建失敗
?*/
BOOL?FileUtil::createDir(CString?path){
ifstream?file;
file.open(path);
if?(!file.is_open())?{//校驗本地路徑是否存在
???//目錄不存在
//本地創(chuàng)建路徑
if(CreateDirectory(path?NULL)){
return?true;
}else{
return?false;
}
}
return?false;
}
/*
?*?校驗路徑是否存在?
?*?參數(shù)一:路徑
?*?返回:true存在/false不存在
?*/
BOOL?FileUtil::checkDir(CString?path){
ifstream?file;
file.open(path);
if?(!file.is_open())?{//校驗本地路徑是否存在
???//目錄不存在
return?false;
}
return?true;
}
/*
?*?校驗文件是否存在?
?*?參數(shù)一:路徑
?*?返回:true存在/false不存在
?*/
BOOL?FileUtil::checkDoc(CString?docPath){
if(““?!=?docPath){
if(::GetFileAttributes((char*)(LPCSTR)(CStringA)docPath)==-1){
return?false;
}else{
return?true;
}
}else{
return?false;
}
}
/*
?*?獲得文件內(nèi)容
?*?參數(shù)一:路徑
?*?返回:文件內(nèi)容
?*/
char*?FileUtil::finFileData(CString?filePath){
if(FileUtil::checkDoc(filePath)==false){
return?““;
}
CFile?file((char*)(LPCSTR)(CStringA)filePathCFile::modeRead);
char?*pBuf;
DWORD?dwFileLen;???//定義存儲文件長度的變量
dwFileLen=file.GetLength();
pBuf=new?char[dwFileLen+1];
pBuf[dwFileLen]=0;??//把最后一位一0結(jié)尾?表示文件結(jié)束
file.Read(pBufdwFileLen);
file.Close();
return?pBuf;
}
/*
?*?寫入文件內(nèi)容?不存在則創(chuàng)建??覆蓋寫入
?*?參數(shù)一:文件路徑
?*?參數(shù)二:文件內(nèi)容
?*?返回:true成功/false失敗
?*/
BOOL?FileUtil::saveFileData(CString?filePathchar*?fileData){
ofstream?outfile(filePathios::out);//ios::app表示在原文件末尾追加
outfile.write(fileDatastrlen(fileData)?);
outfile.close();
return?true;
}
/*
*?寫入文件內(nèi)容?不存在則創(chuàng)建??覆蓋寫入
*?參數(shù)一:文件路徑
*?參數(shù)二:文件內(nèi)容
*?返回:true成功/false失敗
*/
BOOL?FileUtil::saveFileDataZJ(CString?filePath?char*?fileData){
ofstream?outfile(filePath?ios::app);//ios::app表示在原文件末尾追加
outfile.write(fileData?strlen(fileData));
outfile.close();
return?true;
}
/**
?*?說明:UTF8轉(zhuǎn)化為GBK格式
?*?參數(shù):utf8字符格式的字符串
?*?返回:
?*/
void?FileUtil::ConvertUtf8ToGBK(CString?&strUtf8)
{
????int?len=MultiByteToWideChar(CP_UTF8?0?(LPCTSTR)strUtf8?-1?NULL0);
????wchar_t?*?wszGBK?=?new?wchar_t[len];
????memset(wszGBK0len);
????MultiByteToWideChar(CP_UTF8?0?(LPCTSTR)strUtf8?-1?wszGBK?len);?
????len?=?WideCharToMultiByte(CP_ACP?0?wszGBK?-1?NULL?0?NULL?NULL);
????char?*szGBK=new?char[len?+?1];
????memset(szGBK?0?len?+?1);
????WideCharToMultiByte?(CP_ACP?0?wszGBK?-1?szGBK?len?NULLNULL);
????strUtf8?=?szGBK;
????delete[]?szGBK;
????delete[]?wszGBK;
}
/**
?*?說明:GBK轉(zhuǎn)化為UTF8格式
?*?參數(shù):GBK字符格式的字符串
?*?返回:
?*/
void?FileUtil::ConvertGBKToUtf8(CString?&strGBK)
{
????int?len=MultiByteToWideChar(CP_ACP?0?(LPCTSTR)strGBK?-1
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????23072??2017-09-20?11:16??FileUtil.cpp
?????文件????????7916??2017-09-20?11:26??FileUtil.h
評論
共有 條評論