当前位置: 代码迷 >> PB >> 请问怎么自动生成省略号
  详细解决方案

请问怎么自动生成省略号

热度:52   发布时间:2016-04-29 08:42:08.0
请教如何自动生成省略号
类似于网站的一些标题,如果长度长了后面就显示。。。,请教各位老大如何解决这个问题

------解决方案--------------------
建立这么一个函数,用来取A字符串的前N位长度的子串B,如果N小于A字符串的长度则在后面自动添加省略号...
C/C++ code
//////////////////////////////////////////////////////////////////////////////////    函数:              str_left////    访问:              public////    参数:                as_source(string): 源字符//                        ai_step(integer):  取得字符的长度////    返回值:             string    格式化后的字符串////    说明:                  取指定的字符串左边的ai_step位,如果第ai_step为汉字的前半部分,则返回字符串左边的ai_step - 1位//////////////////////////////////////////////////////////////////////////////////// writer: YYOINGE////    创建时间:2009-06-02////////////////////////////////////////////////////////////////////////////////string ls_target, ls_tmplong ll_pos, ll_num_english, i//源字符长度小于要取的长度,返回原字符if len(as_source) <= ai_step then return as_sourcell_pos = 1ls_tmp = mid(as_source, ll_pos, ai_step)/////找出非中文字符的个数ll_num_english = 0for i = 1 to len(ls_tmp)    if asc(mid(ls_tmp, i, 1)) <= 128 then        ll_num_english ++    end ifnext/////检查中文字符的个数是否为偶数if mod( len(ls_tmp) - ll_num_english, 2 ) <> 0 then    //向前去掉只有一半的汉字    ls_tmp = mid(as_source, ll_pos, ai_step - 1 )end ifif len(ls_tmp) < len(as_source) then    ls_target = ls_tmp + "..."else    ls_target = ls_tmpend if    return ls_target
  相关解决方案