| 您现在的位置: 秦皇天下 >> 学院 >> 数据库类 >> FoxPro >> 教程正文 |
| Foxpro 更多编程函数 | ||
ALLTRIM() 函数 删除指定字符表达式的前后空格符,并返回删除空格后的字符串。 语法 ALLTRIM( 字符表达式 ) 返值类型 字符型 参数描述 字符表达式 :即为需要删除前后空格的字符串。 说明 这个函数在程序中经常需要用到,比如我们有时需要检查某个数据在表中是否有重复的,我们可能在一个文本框里输入要查询的内容,而该文本框的 controlsource 是一个变量,比如 content,可在文本框的 valid 事件中放入查询语句,如: locate for 型号=content 如果找到就代表有重复值。然而这个命令却不能满足我们查询重复值的要求,因为它不是精确匹配的,也就是说 content 中的内容与型号的前几个字符相等就算查到了,比如型号是“PINTIUM II”,content 的内容是“PINTIUM”,那么就算它们相等了,但其实它们并不是一个型号。为此把命令改为如下形式: locate for 型号= =content 这样“PINTIUM II”与“PINTIUM”就不会认为是相等了,但这样却会有一个问题,即使有重复值可能也查不到,为什么呢?因为我们知道字段中的内容一般都小于字段的长度,不够的部分以空格填满,也就是说型号中的内容往往是: “PINTIUM II ” 如果 content 中的内容是“PINTIUM II”,则在精确匹配的情况下电脑会认为它们不相等,即认为没有重复值,但其实它们是重复的(电脑有时也真笨)。为了解决这个问题就把命令改为: locate for alltrim(型号)= =content 这样上面所说的问题就没有了,即使型号中的内容是“ PINTIUM II ”也不怕(您在往表中录入数据时可能不小心在前面多打了一个空格),alltrim() 函数会把前后的空格都去掉,再与 content 比较,于是会认为它们是重复的。 不过还有个问题可能您疏忽了,假如您在 content 中录入查询内容时不小心在前面或后面多打了空格,即 content 中的内容可能是“ PINTIUM II ”,电脑又会认为它与表中的“PINTIUM II”不同,怎么办呢?改成这样就行了: locate for alltrim(型号)= =alltrim(content) 这样不论是型号还是 content,不论是前面还是后面,也不论是有多少个空格,只要它们的实质内容是一样的,电脑就会认为是重复的,这正好满足了我们的需要,看来电脑在我们的教导下也变得聪明了:) 一个典型的检测重复值的 valid 事件往往是这样:
另外还有两个与这个函数有关的函数,一个是删除字符串后面的空格 TRIM();另一个是删除字符串前面的空格 LTRIM()。 LTRIM() 有个特殊有途,当我们把一个数值转换为字符时,隐含是按8位数转换的,不够8位以空格填满,也就是说 str(5)返回的值是: 5 前面会有7个空格,而这往往是我们不需要的,因此我们可以用 ltrim(str(5)) 来返回我们需要的值: 5 当然聪明的您一定会想到用 alltrim(str(5)) 也是一样的。 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] 下一页 |
||