常用方法类 cutil
使用说明
说明
//将int转成16进制字符串 ,iBytes表示字节点
static string dec2Hex(int iValue, int iBytes);
///使用C++的输出函数
static void print(string sMsg);
//设置日志类型 file,full,console,null
static void setLogType(const string& sType);
//没有回车的输出
static void printNoReturn(const string& sMsg);
///返回大于或者等于指定表达式的最小整数
static int ceil(string v);
///取不大于x的最大整数
static int floor(string v);
///是否是Linux系统
static bool isLinux();
///把 svg文件打包到db
static int packageSvg(string sDir, string sFile);
///发电子邮件
static bool sendEmail(string sStmpServer, string sEmailAddress, string sPass, string sAddressList,
string sSubject, string sCont, string sFiles = "", int iPort = 25);
///是否是utf8文件
static bool isUTF8File(string sFileName);
///将gbk转成utf-8
static string a2u(string src);
///将utf-8转成gbk
static string u2a(string src);
///字符串编码转换(使用了boost 的locale ,终端上不能使用)
static string encode(string sCharSet, string sDestCharSet, string src);
///通用编码转换,仅针对windows有效 [[UTF-8,GBK,BIG5等]]
static string convertCode(string sSrc, string sFromCode, string sToCode);
///获取目录的上一级目录 [[例如 d:/aaa/bbb/cc/ac.txt 的上一级是 d:/aaa/bbb ]]
static string getParentDirFileDir(string sDir,string sRoot="");
///分析并查找是否存在值,sPackage为16进制的字符串,iValue是要查找的值
static string parsePackage(string sPackage, unsigned int iValue);
///格式化时间串 支持的格式:1.yyyy-mm-dd hh:mm:ss 2.yy-mm 3.yy-mm-dd 4.yyyy-mm-dd 5.yyyy-mm-dd hh 6.yyyy-mm-dd hh:mm 7.yyyy-mm-dd hh:mm:ss 8.yymm
///9.yymmdd 10.yyyymm 11.yyyymmdd 12.yyyy 13.hh:mm:ss 14.mm-dd hh:mm:ss 15.mm-dd hh:mm 16.dd hh:mm 17.hh:mm
static string formatTime(string sSrc, string sFormat);
///类型为 8,16,modbus,xmodem,ccit1,ccit2,kermit,sick,dnp,32 10种类型crc方式
static string crc(string sStr, string sType = "16");
///上面的别名
static string crcHex(char *sTtr, int iBytes, string sType = "16");
///判断是否是查询语句
static bool isSelect(string sSQL);
///判断是否是更新语句
static bool isUpdate(string sSQL);
///判断是否是删除语句
static bool isDelete(string sSQL);
///获取ftp文件
static bool ftpGet(string sAddr, int iPort, string sFilePath, string sLocalPath, string sUser = "", string sPass = "");
///获取ftp的内容(是字符串形式)
static string ftpGetString(string sAddr,int iPort, string sFilePath,string sUser = "", string sPass = "");
///获取网页内容
static bool httpGet(string sAddr, CTNString& buffer);
///使用post方式获取网页内容
static bool httpPost(string sAddr, CTNString& buffer, string sParam);
///使用http post带参数方式获取网页内容
static bool httpPostWithHead(string sAddr, CTNString& buffer, string sParam,CParamString& v);
///设置系统时间 会真实修改系统的时间
static bool setSysTime(string sTime);
///压缩字符串
static string encodeSrc(string sSrc);
///解压字符串
static string decodeSrc(string sSrc);
///返回值为 0x01的字符串
static string sp01();
///返回值为 0x02的字符串
static string sp02();
///返回值为 0x03的字符串
static string sp03();
///返回值为 0x04的字符串
static string sp04();
///返回值为 0x05的字符串
static string sp05();
///返回值为 0x06的字符串
static string sp06();
///第一个字符大写
static std::string upperFirst(string src);
///第一个字符小写
static std::string lowFirst(string src);
///返回匈牙利命令方法
static string getHungary(string sSrc, bool bFirstSmall = false);
///将以秒为单位的时间,转化为便于识别的时间格式,int iType=0代表显示全部,1代表显示到分,2代表显示到小时,3代表仅显示天,9代表智能化
static string formatLookTime(unsigned int iSeconds,int iDisplayType=9);
///获取文件的扩展名
static string getFileExt(string sFilePath);
///获取文件的最后修改时间
static string getFileTime(string sFile);
///时间转化为字符串
static string time2String(unsigned int iTime);
///字符串转化为time_t
static unsigned int string2Time(string sDate);
///获取随机数
static std::string getRandNumber(int len);
///返回指定长度的随机字符串
static std::string getRandString(int len);
////返回随机字符串
static std::string getRandID();
///返回指定范围随机数
static int rand(int fMin, int fMax);
//获取系统的毫秒值
static unsigned long getTickCount();
///从Base 64转化成字符串 已禁用,仅为兼容存在
static string fromBase64(string str);
///从字符串转成Base 64 已禁用,仅为兼容存在
static string toBase64(string str);
//新版本Base64 从Base 64转化成字符串
static string fromBase64_v2(string str);
///新版本Base64 从字符串转成Base 64
static string toBase64_v2(string str);
///查找子串是否存在 true代表存在
static bool strstr(string sSrc, string sFind);
///创建进程
static bool createProc(string sCmd);
///外部打开文件
static bool shellExec(string sFile);
///计算字符串MD5并返回
static string toMD5(string sMsg);
///获取文件CRC校验和
static string getFileCRC(string sFile);
///获取字符串的CRC
static string getCRC(string sContent);
///获取字符串的CRC 64位版本
static string getCRC64(string sContent);
///十六进制字符串转化为整数
static unsigned int hex2int(string hex);
///十六进制字符串转化为浮点数
static double hex2Double(string v);
///32位16进制作数 转化为浮点数
static float bit32hex2float(string hex);
///字符串传成小写
static std::string lower(string src);
///字符串转成大写
static std::string upper(string src);
///获取子串
static std::string substr(string src,int iStart,int iLen);
///去掉右边的指定字符
static std::string trim_right(string s,string t = " \t");
///去掉左边的指定字符
static std::string trim_left(string s, string t = " \t");
///去掉两边的指定字符
static std::string trim(string s, string t = " \t");
///替换字符串
static std::string replace_all(string str,string old_value,
string new_value);
///字符串分隔
static int splitString(string src, CVector& vs,string tok);
///以指定 sub中的间隔符进行字符串分隔
static int splitStringBySub(string src, CVector& vs,string sub);
///转换成数字
static double toNumber(string sValue);
///获取唯一编码 sType1 device_id
static string getBusiUniqueID(string sType1, string sDeviceID);
///获取本地的唯一码,没有时间
static string getLocalUniqueID(string sType1);
///snappy 压缩库
static string snappyCompress(string src);
///snappy 解压库
static string snappyUnCompress(string src);
///将浮点数的字符串转为了指定精度的字符串
static string sfToString(string src,int iPre);
///获取当前年
static int year();
///获取当前月
static int month();
///获取当前日
static int day();
///获取当前小时
static int hour();
///获取当前分钟
static int minute();
///获取当前秒
static int second();
///获取当前毫秒
static unsigned int mSecond(); //毫秒
///以秒记的系统时间
static unsigned int mtime();
///获取与当前系统时间的前或者后几天的时间值,以格式 2015-01-02 00:00:00 返回 如果idx>0 代表是后几天, 如果idx<0 代表是前几天
static string getPreDay(int idx);
///获取是星期几
static int week(string sDate);
///将字符串分解成整数 格式形如"20060910121221 或 2006-09-10 12:12:21 " 字符串
static bool parseDate(string sTime, CEDateTime &dt);
///获取14字符格式 2015-02-09 12:12:12
static std::string getSys14Time();
///获取本地IP地址
static string getLocalIP();
///获取时间的当日结束时间 string.sub(sTime, 1, 10).. ' 23:59:59';
static string getCurDateTodayEnd(string sTime);
///获取时间的当日开始时间 string.sub(sTime, 1, 10).. ' 00:00:00';
static string getCurDateTodayBegin(string sTime);
///获取14字符格式 20150209121212
static std::string getSys14Time2();
///获取编译时间 时间格式2015-08-08 12:01:01
static std::string getBuildTime();
///获取8字符格式 2015-02-09
static std::string getSys8Time();
///获取8字符格式 20150209
static std::string getSys8TimeCopy();
///如果sTime为空,则代表是当前系统时间的上一个月
static std::string getPreMonth(string sTime);
///如果sTime为空,则代表是当前系统时间的下一个月
static std::string getNextMonth(string sTime);
///获取今天开始的零点的14位字符串
static std::string getTodayStart();
///获取今天结束的零点的14位字符串
static std::string getTodayEnd();
///从路径中获取文件名
static std::string getFileNameFromDir(string dir);
///从含文件名的目录中获取目录
static std::string getDirFromFileDir(string dirFle);
///获取文件的名,不含扩展名
static string getFileName(string sFile);
///根据文件相对于exe目录获取全文件目录
static string getFullFilePath(string sFile);
///执行系统命令
static string execCmd(string sCmd, int iMaxLine = 400);
///获取全局路径
static std::string getExePath();
///读取指定的文件所有文本内容至字符串中
static std::string readFileAsString(char *file,int maxLine = 8000);
///获取文件大小
static int fileSize(string file);
///文件是否存在
static bool isFileExist(const char* file);
///计算两个时间的时间差值,以秒为单位
static int getDateDiff(string sFrom,string sTo);
///计算下一个时间点,按秒为单位
static string getNextDate(string sFrom, unsigned int fSec);
///计算下一个时间点,按秒为单位
static string getPreDate(string sFrom, unsigned int fSec);
///是否是闰年
static bool isLeapYear(int iYear);
///取得某个月份的天数
static int daysPerMonth(int iYear, int iMonth);
///按当前时间下idx个月,如果idx>0则代表后idx月,以后建议统一使用下列两个函数
static CEDateTime nextMonth(int year, int month, int idx);
///按当前时间下idx个日,如果idx>0则代表后idx日
static CEDateTime nextDay(int year, int month, int day, int idx);
///按当前时间下idx个小时,如果idx>0则代表后idx小时
static CEDateTime nextHour(int year, int month, int day, int hour);
///写一个文件,会覆盖原有数据
static bool writeFile(string sFile,string sContent);
///系统等待指定毫秒
static void sleep(int millSec);
////创建目录
static bool mkdir(string sDir);
///与日志
static void debug(string sMsg);
///统一的数据转换函数
static double convert(string strProtocal, int eDataType, int eValueType, bool bByteOrder = false);
///将十六进制串取其中几个字节并转化为整数
static int subhex(string str, int iStart, int iNum);
///转化为整数 00FF => 256
static int hex2Int( string v);
///这符串转化为整数 "123" ==> 123
static int asc2Int(string v);
///整数转化为二进制字符串 15 == > 1111
static string int2bin(int v, unsigned int iMaxCount = 32);
///取整数的其中几位
static unsigned long getBit(int iV, int iStart, int iNum, int iBitCount = 16);
/// 2进制字符串转化为整数 1111 ==> 15
static unsigned long binstr2Int(string v);
///将CKeyVMap转化为help
static void keyMapToHelp(CKeyVMap& v,CSelectHelp& help);