当前位置:编程学习 > Foxpro >>

visual foxpro “%”是什么意思

追问:?3*4%5 结果是2 这个照理结果不是12吗? 4%5=4 然后3乘以4=12啊?不是的,例如 ?3*4%5 结果是2
答案:VFP是由FoxPro发展而来,并且根据“可视化编程”的需要,增加了一些新的操作。它的语句、函数和语法规则与Xbase(如dBASE、FoxBase、FoxPro)语言基本上是兼容的,而且功能更加强大。 

一、数据和数据类型 


1.数据的分类 
数据是计算机程序处理的对象,也是运算产生的结果。 
按数据的类型分类:数值型数据、字符型数据、逻辑型数据等。 
按数据的处理层次分类:常量、变量、函数和表达式。 
2.数据的类型 
数据类型是数据的基本属性。对数据进行操作的时候,只有同类型的数据才能进行操作,若对不同类型的数据进行操作,将被系统判为语法出错。 

(1)字符型(Character):由字母(汉字)、数字、空格等任意ASCII码字符组成。 

字符数据的长度为0~254,每个字符占1个字节。 

(2)货币型(Currency):在使用货币值时,可以使用货币型来代替数值型。 

货币型数据取值的范围是: 

-922337203685477.5807~922337203685477.5807 

小数位数超过4位时,系统将进行四舍五入的处理。每个货币型数据占8个字节。 

(3)日期型(Date):用以保存不带时间的日期值。 

日期型数据的存储格式为“yyyymmdd”其中yyyy为年,占4位,mm为月,占2位,dd为日,占2位。 

日期型数据的表示有多种格式,最常用的格式为mm/dd/yyyy。 

日期型数据取值的范围是:公元0001年1月1日一公元9999年12月31日。 

(4)日期时间型(DateTime):用以保存日期和时间值。日期时间型数据的存储格式为 “yyyymmddhhmmss”其中yyyy为年,占4位,mm为月,占2位,dd为日,占2位,hh为时间中的小时,占2位,mm为时间中的分钟,占2位,ss为时间中的秒,占2位。 
日期时间型数据中可以只包含一个日期或者只包含一个时间值,缺省日期值时,系统自动加上1999年12月31日,省略时间值时,则自动加上午夜零点。 

(5)逻辑型(Logical):用于存储只有两个值的数据。存入的值只有真(.T.)和假(.F.)两种状态,占1个字节。 

(6)数值型(Numeric):用来表示数量,它由数字0~9、一个符号(+或-)和一个小数点(.)组成。数值型数据的长度为1~20,每个数据占8个字节。 
数值型数据取值的范围是: 

-0.9999999999E+19~0.9999999999E+20 

以下数据类型只能被用于数据表中的字段: 

(7)双精度型(Double):用于取代数值型,以便能提供更高的数值精度。双精度型只能用于数据表中字段的定义,它采用固定存储长度的浮点数形式。与数值型不同,双精度型数据的小数点的位置是由输入的数据值来决定的。每个双精度型数据占8个字节。 

(8)浮点型(Float):只能用于数据表中字段的定义,包含此类型是为了提供兼容性,浮点型在功能上与数值型等价。 

(9)通用型(General):用于存储OLE对象,只能用于数据表中字段的定义。该字段包含了对OLE对象的引用,而OLE对象的具体内容可以是一个电子表格、一个字处理器的文本、图片等,是由其他应用软件建立的。 

(10)整型(Integer):用于存储无小数部分的数值,只能用于数据表中字段的定义。在数据表中,整型字段占用4个字节,取值范围是: 

-2147483647~2147483647 

整型以二进制形式存储,不像数值型那样需要转换成ASCII字符存储。 

(11)备注型(Memo);备注型用于字符型数据块的存储,只能用于数据表中字段的定义。在数据表中,备注型字段占用10个字节,并用这10个字节来引用备注的实际内容。实际备注内容的多少只受内存可用空间的限制。 
备注型字段的实际内容变化很大,不能直接将备注内容存在数据表(.DBF)文件中。 
系统将备注内容存放在一个相对独立的文件中,该文件的扩展名为.DBT。 
由于没有备注型的变量,所以对备注型字段的处理,需转换成字符型变量,然后使用字符型函数进行处理。 


二、常量与变量 

在程序的运行过程中,把需要处理的数据存放在内存储器中,称始终保持不变的数据为“常量”,称存放可变数据的存储器单元为“变量”,其中的数据称为变量的值。 

1.常量 

常量是一个命名的数据项,在整个操作过程中其值保持不变。如PI值,即3.1415926535是数值型常量。 VFP定义了如下类型的常量: 

数值型常量,如:20,16,100,1 
字符型常量,用单引号或双引号括起来的字符串,如:"ABCD" 
逻辑型常量,只有两种:.T.和.F. 
日期型常量和日期时间型常量,如:{^1999-04-22},{^1999-04-24 10:00am} 
2.变量 
VFP有3种形式的变量: 

内存变量——存放单个数据的内存单元 
数组变量——存放多个数据的内存单元组 
字段变量——存放在数据表中的数据项 
每个变量都有一个名称,叫做变量名,VFP通过相应的变量名来使用变量。变量名的命名规则是: 
(1)以字母、数字及下划线组成,中文VFP可以使用汉字作变量名。 
(2)以字母或下划线开始,中文VFP可以汉字开始。 
(3)长度为1~128个字符,每个汉字占2个字符。 
(4)不能使用VFP的保留字。 
变量的作用域包括定义它的过程以及该过程所调用的子过程范围。 

三、运算符与表达式 

运算是对数据进行加工的过程,描述各种不同运算的符号称为运算符,而参与运算的数据称为操作数。表达式用来表示某个求值规则,它由运算符和配对的圆括号将常量、变量、函数、对象等操作数以合理的形式组合而成。 
表达式可用来执行运算、操作字符或测试数据,每个表达式都产生唯一的值。表达式的类型由运算符的类型决定。在VFP中有5类运算符和表达式: 

算术运算符和算术表达式 
字符串运算符和字符串表达式 
日期运算符和日期表达式 
关系运算符和关系表达式 
逻辑运算符和逻辑表达式 
1.算术运算符与算术表达式 

算术表达式也称数值型表达式,由算术运算符、数值型常量、变量、函数和圆括号组成,其运算结果为一数值。例如:50*2+(70—6)/8的运算结果为108.00。算术表达式的格式为: 

<数值1><算术运算符1><数值2>[<算术运算符2><数值3>…] 

(1)算术运算符。 
VFP提供的算术运算符如表1。1所示。在这6个算术运算符中,除取负“-”是单目运算符外,其他均为双目运算符。它们运算的含义与数学中基本相同。 
表1.1 算术运算符 

运算符 名称 说 明 
+ 加 同数学中的加法 
- 减 同数学中的减法 
* 乘 同数学中的乘法 
/ 除 同数学中的除法 
^或** 乘方 同数学中的乘方,如4^3表示43 
% 求余 12%5表示12除以5所得的余数2 

算术运算符的优先权依次为: 

( ) → ^、** → *、/ → % → +、- 

(2)表达式的书写规则。 
算术表达式与数学中的表达式写法有所区别,在书写表达式时应当特别注意: 

每个符号占1格,所有符号都必须一个一个并排写在同一横线上,不能在右上角或右下角写方次或下标。例如:23要写成2^3,Xl十X2要写成X1+X2。 

原来在数学表达式中省略的内容必须重新写上。例如:2X要写成2*X。 

所有括号都用小括号(),且括号必须配对。例如:3[x+2(y+z)]必须写成3*(x+2*(y+z))。 

要把数学表达式中的有些符号,改成VFP中可以表示的符号。例如:要把2πr改为2*pi*r。 

2.字符串运算符与字符串表达式 
一个字符串表达式由字符串常量、字符串变量、字符串函数和字符串运算符组成。它可以是一个简单的字符串常量,也可以是若干个字符串常量或字符串变量的组合。VFP提供的字符运算符有两个(其运算级别相同),如表1-2所示。 

表1-2 字符运算符 

运算符 名称 说明 
+ 连接 将字符型数据进行连接 

- 空格移位连接 将前一数据尾部的空格移到后面数据的尾部 


字符串表达式的格式为 

<字符串1><字符串运算符1><字符串2> 
[<字符串运算符2><字符串3>…] 
例如: 
"ABCl23"+"666xyz"连接后结果为:"ABCl23666xyz" 
"计算机"+"世界" 连接后结果为:"计算机世界" 
"ABC "-"DEFG" 连接后结果为:"ABCDEFG " 
"ABC "+"DEFG" 连接后结果为:"ABC DEFG " 
字符串表达式的值为字符串。 
在字符串中嵌入引号,只需将字符串用另一种引号括起来即可。例如: 
QM="'" 
S=S+QM+ALLTRIM(THIS.Edit1.Value)+QM+"," 

3.日期时间运算符与日期时间表达式 

日期型表达式由算术运算符“+、-”、算术表达式、日期型常量、日期型变量和函数组成。日期型数据是一种特殊的数值型数据,它们之间只能进行加“+”、减“-”运算。有下面3种情况: 

两个日期型数据可以相减,结果是一个数值型数据(两个日期相差的天数)。例如: 
{^1999/12/19}-{^1999/11/16}结果为数值型数据:33 

一个表示天数的数值型数据可加到日期型数据中,其结果仍然为一日期型数据(向后推算的日期)。例如:{^1999/11/16}+33结果为日期型数据:{^1999/12/19} 

一个表示天数的数值型数据可从日期型数据中减掉它,其结果仍然为一日期型数据(向前推算的日期)。例如:{^1999/12/19}-33 ,结果为日期型数据:{^1999/11/16} 

VFP将无效的日期处理成空日期。 

4.类与对象运算符 
类与对象运算符专门用于实现面向对象的程序设计。有以下两种: 
.——点运算符,确定对象与类的关系,以及属性、事件和方法与其对象的从属关系。 
::——作用域运算符,用于在子类中调用父类的方法。 

5.名表达式 
在VFP中,许多命令和函数需要提供一个名。可在VFP中使用的名有: 

表/.DBF文件名 、 表/.DBF别名 、 表/.DBF字段名 、 索引文件名、文件名、 内存变量和数组名、窗口名、 菜单名、表单名、 对象名、 属性名、 … 

在VFP中定义一个名时,需要遵循以下原则: 

名中只能使用字母或下划线开始。 

名中只能使用字母、数字和下划线字符。 

不能使用VFP的保留字。 

名的长度可以为1—128个字符,但自由表中的字段名、索引标记名最多为10个字符。文件名按操作系统的规定。 

名不是变量或字段,但是可以定义一个名表达式,以代替同名的变量或字段的值。 
名表达式为VFP的命令和函数提供了灵活性。将名存放到变量或数组元素中,就可以在命令或函数中用变量来代替该名,只要将存放一个名的变量或数组元素用一对括号括起来。如: 

STORE "CITY" TO a 
REPLACE (a) WITH "Beijing" 

字段名CITY被存放在变量a中,在使用REPLACE命令时,名表达式(a)
其他:有两个意思,一个是除模运算,就是取余数,如16%3=1 (商5余1),另一个是表示字符串,如"刘%",表示姓刘的所有人。 数据库 计算机二级的内容!不是很难! 格式控制符,自己看书上有 

上一个:启动Visual foxpro的时候错误,
下一个:visual foxpro 中选项按钮组控件怎么两层 显示

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,