常用方法类 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);
Copyright © TouchNet 2015 all right reserved,powered by Gitbook最后修订时间: 2022-06-21 09:21:04

results matching ""

    No results matching ""