【问题标题】:how to remove non character letter from name field using visual foxpro如何使用visual foxpro从名称字段中删除非字符字母
【发布时间】:2013-02-27 04:17:29
【问题描述】:

我有一段时间没有使用 Visual FoxPro。今天,我的前同事问我如何从名称字段中删除非字符,即只允许 a-z 和 A-Z。我记得我使用了一个名为 strstran 的函数来执行此操作。我需要定义一个包含 a-z 和 A-Z 的变量。但我现在不记得了。有人知道如何处理这个问题。提前致谢。

【问题讨论】:

    标签: visual-foxpro


    【解决方案1】:

    使用 CHRTRAN() 函数。

    FUNCTION GetAlphaCharacters
        LPARAMETERS tcExpressionSearched
    
        LOCAL lcAllowedCharacters
        m.lcAllowedCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
    
        RETURN CHRTRAN(m.tcExpressionSearched, CHRTRAN(m.tcExpressionSearched, m.lcAllowedCharacters, ""), "")
    ENDFUNC
    

    【讨论】:

      【解决方案2】:

      另一种选择是使用 ISALPHA()。这只会查看字符串中最左边的位置,但不区分大小写。

      ***This should work, but I haven't tested it.
      myresults = ""
      myvar = "MyText12"
      FOR(i = 1 TO LEN(myvar))
         IF ISALPHA( SUBSTR(myvar, i, 1) )
           myresults = myresults +  SUBSTR(myvar, i, 1)
         ENDIF
      ENDFOR
      RETURN myresults
      

      【讨论】:

        【解决方案3】:

        我知道我参加聚会有点晚了,但这是我编写的一个函数,用于从字符串中清除所有不可打印的 ASCII 字符。

            CLEAR
        
            * Contains ASCII characters 1 (SOH) and 2 (STX)
            cTest = "Garbage Data   "    
        
            ? cTest
            cTest = RemoveNonPrintableCharacters(cTest)
            ? cTest
        
        
            FUNCTION RemoveNonPrintableCharacters
                LPARAMETERS tcExpressionSearched
        
                cCleanExpression = tcExpressionSearched
        
                * Cleans out the first 32 ASCII characters, which are not printable
                FOR decCount = 0 TO 31
                    cCleanExpression = CHRTRAN(m.cCleanExpression, CHR(decCount), "")    
                ENDFOR  
        
                * Also cleans out the non-printable DEL character (ASCII 127)
                cCleanExpression = CHRTRAN(m.cCleanExpression, CHR(127), "")
        
                * Return the clean string
                RETURN cCleanExpression
            ENDFUNC
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-29
          • 2017-03-14
          相关资源
          最近更新 更多