用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心编程技巧Delphi

最近经常见到有人问长英文不自动换行的问题,里面是我写的一个函数,供大家参考

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-03-16 20:18:39
一段没有空格的长英文,系统会认为它是一个单词,为了保持单词的完整性不会自动换行。其实这种情况不处理也可以,因为在实际应用中除了测试或有人捣乱不会出现这种情况,不过为了以防万一吧,我几个月前写了下面这个函数,只是一种权宜之计,为了对付恶意破坏者。
  ''-------------------------------------------------
''
''  function name: autowrap
''
''
''  description : 解决长英文不自动换行的问题
''
''  parameters :  a_strSourceString :要转换的源字符串
''
''                a_intSize , 每行宽度
''
''  author:       bigeagle
''
''  date :        2000/4/17
''
''  history:      2000/4/17 : version 1.0
''  
''-------------------------------------------------------
   function AutoWrap(a_strSourceString , a_intSize)
   
       dim l_strDestString
       
       ''如果内容中有回车则退出
       ''if instr(a_strSourceString , chr(13) + chr(10) ) <> 0 then
       ''   AutoWrap = replace(a_strSourceString , chr(13) + chr(10) , "<br>")
       ''   exit function
       ''end if
          
       ''check if valid parameters
       call assert(vartype(a_strSourceString) = 8 , "AutoWrap" , "a_strSourceString must be a string")
       call assert(vartype(a_intSize) = 2 , "AutoWrap" , "a_intSize must be a integer")
       
       
       dim i     
       if a_intSize >= len(a_strSourceString) then
          l_strDestString = a_strSourceString
       else
        ''  l_strDestString = left(a_strSourceString , a_intSize)   
          for i = 1 to len(a_strSourceString) step a_intSize
              if instr( i , mid(a_strSourceString , i , a_intSize) , chr(32) ) = 0 _
                 or instr( i , mid(a_strSourceString , i , a_intSize) , chr(13)+chr(10) )then
                 l_strDestString = l_strDestString + " " +  mid (a_strSourceString , i + 1 , a_intSize)        
              else
                 l_strDestString = l_strDestString + mid(a_strSourceString , i + 1 , a_intSize)                 
              end if   
          next
       end if
       
       call print("[AutoWrap:]return value is : ''" + l_strDestString + "''")
       l_strDestString = replace(l_strDestString , chr(13) + chr(10) , "<br>")
       AutoWrap =  l_strDestString
   end function

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:18,593.75000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号