类似于网站的一些标题,如果长度长了后面就显示。。。,请教各位老大如何解决这个问题
------解决方案--------------------
建立这么一个函数,用来取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