基础数据结构类 CSelectHelp


使用说明

说明



///返回大小
int size();

///从CVector加载
int fromVector(CVector& v,string sField="id");

///生成调试数据,仅仅用于调试
void genDebugData();

///从其它Help复制数据
void copy(CSelectHelp& s);

///取得指定字段的子help  
void copySub(CSelectHelp& s, CVector& v);

///从其它Help复制数据某一行
void copyLine(CSelectHelp& s, int idx);

///从其它Help复制数据结构,Help将会被reset
void copyStruct(CSelectHelp& s);


///用于列值的计算
double sumCol(string sFileld);

///计算某一行的值
double sumRow(int iRow,CVector& v);

///查找最小的数
int findMin(string sFiled, string k = "", string v = "", string sType = "string");

///最找最大值
int findMax(string sFiled,string k="",string v="", string sType = "string");

///排序,skeys 像 param_type_id,parameter_code  ,中间以,间隔
bool orderBy(string skeys,bool bAsc=true);

///交换行位置
void swap(int iRow,int iRowTo);

///合计
bool sum(string skeys);

///进行CSelectHelp的差异化分析 idxPK代表help中唯一键
bool diff(int idxPK,CSelectHelp& helpDiff, CSelectHelp& helpUpdate, CSelectHelp& helpDelete, CSelectHelp& helpAdd);

///进行CSelectHelp的差异化分析 idxPK代表help中唯一键
bool diffFilter(int idxPK, CSelectHelp& helpDiff, CSelectHelp& helpUpdate, CSelectHelp& helpDelete, CSelectHelp& helpAdd,CVector& v);

///是否为相同的help idxPK代表help中唯一键,在vector中的列才是匹配查询的对像
bool diffOnly(int idxPK, CSelectHelp& helpDiff, CSelectHelp& helpUpdate, CSelectHelp& helpDelete, CSelectHelp& helpAdd, CVector& v);

///是否是相同的help
bool equal(CSelectHelp& help);

///将help的值替换,例如0代替为 否等
void replaceValue(string sField, string sOld, string sNewValue);

///取从pos开始,总共rows行结果至 helpOut 
void getRows(CSelectHelp& out, int pos, int length);

///将列拆分成纵向的列
void getCols(CSelectHelp& out, int iOnCols);

///转化为一行,并去掉一些不要的列
string row2StringFilter(int iPos, string  sPlit,CVector& v);

///将某一行的数据转化成字符串,使用sPlitf进行分隔 
string row2String(int iRow, string sPlit);

///在原有help中增加一列,不改变原有数据
void addFieldWithData(string sField, string v);

//将指定行转化为Intent
bool getIntent(int iRow,CIntent& it);

///列转化为符串 不常用
string col2String(string sColName,string sPlit,bool bUnique=false);

///列转化为类似于 '12','34','aaa' 这种字符串
string col2StringPoint(string sColName, string sPlit,string sAddPoint="'", bool bUnique = false);

///合并将help合同进来
void  unionHelp(CSelectHelp& help);

///将字段格式化浮点数的位数
void formatFloat(string sField, int iPre);

///从字符串生成
int fromString(const char* s,const char* sSep, const char* sLineSep, bool bHaveHeader = true);

///从字符串生成
int fromString(const char* src);

///从字符串生成
int fromStringNoField(const char* src, const char* sSep, const char* sLineSep);

///是否存在字段
bool existField(const char* src);

///填充值
void fill(string sFiled, string sV);

///连接字符串
void join(string sFormat, CVector& v, string sDestField);

///删除指定行
bool deleteRow(int iPos);

///根据CKeyVMap删除指定行
bool deleteRowByMap(CKeyVMap& v);

///删除列
bool deleteCols(CVector& v);

///转化成字符串
std::string toString();

///通过key,value数组查找指定值的位置,仅返回第一个找到的行
int searchIndexByMap(CKeyVMap& v);


///通过key,value查找另外的key,value
std::string search(string key, string value, string destKey);

///查找指定key的值的行号
int searchIndex(string key, string value);

///获取指定行的指定列的数据,以字符串方式返回  trim代表是否去掉空格
std::string valueString(int row, std::string key, bool trim = false);


///获取指定行的指定列的数据,以字符串方式返回 trim代表是否去掉空格
std::string valueStringByCol(int row, int col, bool trim = false);

///获取指定行的指定列的数据,以整数方式返回  def为没有找到则使用-999代替
int valueInt(int row, int col, int def = -999);

///获取指定行的指定列的数据,以浮点数方式返回
double valuedouble(int row, int col, double def = -999.0);


///获取指定行的指定列的数据,以浮点数方式返回
double valuedouble(int row, string key, double def = -999.0);

///重新初始化,清空所有数据    
void reset();

///清空值,但是不清空结构
void resetValue();

///修改字段的别名
bool setFieldInfo(string field, string name, string alias = "");

///显示当前表查询表结构的信息
void dumpSelectStruct();

///在指定行前插入多行
bool addRowByHelp(int iPos, CSelectHelp &help);

///在指定行前插入多行
bool addRow(int iPos, CVector& line, int iNum );

///增加key,value会自动增加列,仅对有一行的数据有效
void addkv(string k, string v);

///采用二分查找,返回找到的第一个位置
int lookup(const char* field, const char* value);

///将数据按指定字段排序,快速度查找,需要先使用CSortHelp进行排序 采用sortV2已排序方式,采用二分查找,可以大大提高效率,可返回多条记录
int lookup(const char* field, const char* value, CSelectHelp& help);

///查询指定的help,前且查找value开始的字符串,将结果以help返回
int  lookupLike(string field, string value, CSelectHelp& help,int iMaxCount=30);

///条件  it中可以存放多个查询的key,value
int like(CIntent& it, CSelectHelp& help,int iMaxCount=1000);

///显示当前列表中的数据    
void dump(const char* sep = "\t");

///显示当前列表中的数据,并打印标题
void dumpEx(const char* title = "");

///获取行保存到line,脚本中使用下面的
bool getLine(int iRowIndex,table_line& line);

///获取行转入Vector
bool getLineVect(int iRowIndex, CVector& v);

///增加table_line
bool addValue(table_line& value);

///增加Vector
bool addVectorValue(CVector& value);

///根据Vector更新行
bool updateRowByVect(CKeyVMap&v, CVector& value);

///获取不唯一行,以Vector返回,代表的行号列表
int getNotUnique(CVector& v,CVector& vLines);

///增加字段名
void addField(string value, string alias = "");

///在指定索引位置后面增加字段 iPos从0开始计数
bool addFieldByPos(string sField, int iPos, string alias = "");

///修改列名
bool setFieldByCol(int col, string newName);

///获取字段的别名
std::string getAlias(string field);

///用于更新help内容  row行号,col字段列序号
bool setValueStringByCol(int row, int col,string value);


///用于更新help内容 指定行row和指定字段key的值
bool setValueString(int row, std::string key, std::string value);

///设置分隔符
void setSplit(char sep, char lineSep);

///将CSelectHelp进行排序 排序可以按string,float,int三种方式进行排序  ,本函数已禁用,仅兼容存在
bool sort(const char* field, const char* type = "string", bool bAsc = true);

///请使用这个函数,功能同上
bool sortV2(const char* field,const char* type = "string",bool bAsc = true,bool bUnique=true);

///保存到文件
bool toFile(string file);

///从文件加载
bool fromFile(string file);

///valueStringByCol的别名
std::string    vsi(int row, int col);

///valueString的别名
std::string vs(int row,string field);

///获取指定行列的整数值
long vii(int row, int col);

///获取指定列和字段的整数值
long vi(int row,string field);

///获取指定行列的浮点数值
double vfi(int row, int col);

///获取指定行和字段的浮点数值
double vf(int row, string field);

///获取列数
int    cols();

///获取行数
int    rows();

///获取字段名
std::string getColName(int col);

///获取字段的索引号
int getIndexByName(std::string key);


///格式化时间格式 支持的格式: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
void formatTime(string sField, string sFormat);

///格式化值对应  将CIntent中的对应的sField的值进行代替
void formatValues(string sField, CIntent& it);
Copyright © TouchNet 2015 all right reserved,powered by Gitbook最后修订时间: 2022-06-21 09:21:04

results matching ""

    No results matching ""