TC官方合作论坛

标题: 字符串.截取的功能扩展源码 [打印本页]

作者: 贪吃蛇    时间: 2014-2-12 17:37
标题: 字符串.截取的功能扩展源码
本帖最后由 贪吃蛇 于 2014-2-13 20:53 编辑

在TC自带的截取功能基础上,支持参数为字符串的情形。欢迎各位大大提意见。
  1. function strsubEx(str,begin,end)
  2.     //功能:在字符串中截取指定区域内的字符串,如果无法确定区域则返回原字符
  3.     //参数:str,原字符串;begin,整数型时是开始位置,字符型时是开始字符(串);end,整数型时是结束位置,字符型时是结束字符(串)
  4.     //示例:strsubEx("abcdefghijklmn","b",5)的返回值是"cde";strsubEx("abcabc","b","a")的返回值是"c"
  5.    
  6.     posL=0 ,posR=0 //左右边界(范围)
  7.     beginType=type.vartype(begin) ,endType=type.vartype(end)
  8.     select(beginType)
  9.         case "整型":
  10.         posL=begin
  11.         case "字符型":
  12.         posL=str.findstr(str,begin)+str.strleng(begin)
  13.         default:
  14.         traceprint("参数beging类型错误,只能是整数型或字符型,字符串原样返回")
  15.         return str
  16.     endselect
  17.     select(endType)
  18.         case "整型":
  19.         posR=end
  20.         case "字符型":
  21.         posR=str.findstr(str.strsub(str,posL,str.strleng(str)),end)+posL//此句原为posR=str.findstr(str,end),多谢小西指点特改正。
  22.         default:
  23.         traceprint("参数end类型错误,只能是整数型或字符型,字符串原样返回")
  24.         return str
  25.     endselect
  26.     if(posL<0 || posR<0)
  27.         traceprint("参数begin或end没找到,字符串原样返回")
  28.         return str
  29.     endif
  30.     return str.strsub(str,posL,posR)
  31. endfunction
复制代码





作者: 今非    时间: 2014-2-12 17:53
支持一下  多谢分享 哦呵呵
作者: 小西    时间: 2014-2-12 18:32
看来本意 是想在原来用 位置 定位的基础上增加一个以 字符串 定位来截取所需.
想法不错,值得表扬鼓励.
但是似乎有某方面没有考虑周全.
如果
str="abcabc"
begin="b"
end="a"
结果会如何?

作者: 贪吃蛇    时间: 2014-2-12 18:58
小西 发表于 2014-2-12 18:32
看来本意 是想在原来用 位置 定位的基础上增加一个以 字符串 定位来截取所需.
想法不错,值得表扬鼓励.
但是 ...

题意是要找b和a之间的c,执行结果却是空,明白了,谢谢指点。
现将第21行的posR=str.findstr(str,end)改为posR=str.findstr(str.strsub(str,posL,str.strleng(str)),end)+posL,使end参数只从begin的右边开始找,就能正确找到c了
作者: 玖天_Teemo    时间: 2014-2-12 20:03
顶一下。。貌似很强大
作者: rainshine    时间: 2014-2-12 22:06
贪吃蛇 发表于 2014-2-12 18:58
题意是要找b和a之间的c,执行结果却是空,明白了,谢谢指点。
现将第21行的posR=str.findstr(str,end)改 ...

挺不错的,支持一下 你可以看看我的字符串增强库。www.c2014.cc,功能比你这个多不少,需要源码或者帮助可以找我,愿意帮你。你这个截取增加了个mid,我也实现了。~加油 希望你越做越好!
作者: 贪吃蛇    时间: 2014-2-12 22:12
rainshine 发表于 2014-2-12 22:06
挺不错的,支持一下 你可以看看我的字符串增强库。www.c2014.cc,功能比你这个多不少,需要源码或者帮助 ...

谢谢,你的帖子我看了蛮多,学到不少,已经加群,有不会的还要请教你了
作者: rainshine    时间: 2014-2-13 12:04
贪吃蛇 发表于 2014-2-12 22:12
谢谢,你的帖子我看了蛮多,学到不少,已经加群,有不会的还要请教你了 ...

哦?你的qq是多少?




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1