Pb函数大全及详解

Pb函数大全及详解
Pb函数大全及详解

一、数组函数

1、LowerBound()

功能:得到指定数组第n维的下界。

语法:LowerBound ( array {, n } )

参数:array:数组名。

n:数值类型,可选项,指定要得到数组哪一维的下界。缺省值为1。

返回值:Long。函数执行成功时返回array数组第n维的下界。如果n的值超过了指定数组的最大维数,那么该函数返回-1。如果任何参数的值为NULL,LowerBound()函数返回NULL。

示例:integer a[5], b[2,5]

LowerBound(a) // Returns 1

LowerBound(a, 1) // Returns 1

LowerBound(a, 2) // Returns -1, a has only 1 dim LowerBound(b, 2) // Returns 1

integer c[ ]

LowerBound(c) // Returns 1

c[50] = 900

LowerBound(c) // Returns 1

integer d[-10 to 50]

LowerBound(d) // Returns - 10

2、UpperBound()

功能:得到指定数组第n维的上界。

语法:UpperBound( array {, n } )

参数:array:数组名。

n:数值类型,可选项,指定要得到数组哪一维的上界。缺省值为1。

返回值:Long。函数执行成功时返回array数组第n维的上界。如果n的值超过了指定数组的最大维数,那么该函数返回-1。如果任何参数的值为NULL,UpperBound()函数返回NULL。

示例:integer a[5], b[2,5]

LowerBound(a) // Returns 1

LowerBound(a, 1) // Returns 1

LowerBound(a, 2) // Returns -1, a has only 1 dim LowerBound(b, 2) // Returns 1

integer c[ ]

LowerBound(c) // Returns 1

c[50] = 900

LowerBound(c) // Returns 1

integer d[-10 to 50]

LowerBound(d) // Returns - 10

二、Blob(大二进制对象)函数

Blob函数得到Blob数据类型的信息、完成数据类型转换以及操作Blob类型数据。

1、Blob()

功能:将字符串转换成Blob类型数据。

语法:Blob ( text )

参数:text:string类型,指定要转换的数据。

返回值:Blob。函数执行成功时返回转换后的Blob类型数据;如果text参数的值为NULL,则Blob()函数返回NULL。

示例:Blob B

B = Blob(“北京”)

2、BlobEdit()

功能:将任意类型的数据插入到Blob类型变量的指定位置。

语法:BlobEdit ( blobvariable, n, data )

参数:blobvariable:Blob类型的已初始化变量,将向该变量中插入数据。

n:指定插入位置,有效值在1到4,294,967,295之间。

data:要插入到Blob类型变量中的数据,其数据类型可以是任何有效的PowerBuilder数据类型。

返回值:Unsigned long。函数执行成功时返回下次可以插入数据的位置;如果blobvariable变量中空间不够或任何参数的值为NULL,则BlobEdit()函数返回NULL。

示例:下面的代码把一幅位图的数据复制到Blob类型变量emp_photo的起始位置,并把下次数据复制位置保存到变量nbr中,之后将当天的日期复制到emp_photo变量中位图数据的后面。

blob{1000} emp_photo

blob temp

date pic_date

ulong nbr

... // Read BMP file containing employee picture

... // into temp using FileOpen and FileRead.

pic_date = Today()

nbr = BlobEdit(emp_photo, 1, temp)

BlobEdit(emp_photo, nbr, pic_date)

UPDATEBLOB Employee

SET pic = :emp_photo

WHERE ...

3、BlobMid()

功能:从Blob变量中提取出一段数据。提取之后,原Blob变量内容不变。

语法:BlobMid ( data, n {, length } )

参数:data:Blob类型的数据。

n:指定要提取数据的起始位置,有效值在1到4,294,967,295之间。

length:可选项,指定要提取数据的长度,以字节为单位,有效值在1到4,294,967,295之间。缺省时提取从指定位置n到末尾的所有数据

返回值:Blob。函数执行成功时返回指定字节数的数据。如果n的值大于data的字节数,函数返回空。如果n与length的和超过了data数据的字节数,那么BlobMid()函数返回剩下的数据,数据长度将小于参数length的值。如果任何参数的值为NULL,则BlobMid()函数返回NULL。

示例:In this example, the first call to BlobMid stores 10 bytes of the blob datablob starting at position 5 in the blob data_1; the second call stores the bytes of datablob from position 5 to the end in data_2:

blob data_1, data_2, datablob

... // Read a blob datatype into datablob.

data_1 = BlobMid(datablob, 5, 10)

data_2 = BlobMid(datablob, 5)

This code copies a bitmap in the blob emp_photo starting at position 1, stores the position at which the next copy can begin in nbr, and then copies a date into the blob emp_photo after the bitmap data. Then, using the date 's start position, it extracts the date from the blob and displays it in the StaticText st_1:

blob{1000} emp_photo

blob temp

date pic_date

ulong nbr

... // Read BMP file containing employee picture

... // into temp using FileOpen and FileRead.

pic_date = Today()

nbr = BlobEdit(emp_photo, 1, temp)

BlobEdit(emp_photo, nbr, pic_date)

st_1.Text = String(Date(BlobMid(emp_photo, nbr)))

4、Len()

功能:得到Blob类型变量的数据长度,以字节为单位。

语法:Len ( blob )

参数:blob:Blob类型变量。

返回值:Long。函数执行成功时返回blob变量的长度,发生错误时返回-1。如果任何参数的值为NULL,则Len()函数返回NULL。

用法:如果在说明Blob类型的变量时指定了变量长度,那么对该变量来说,Len()函数得到的就是这个指定的长度。如果在变量说明时未指定变量长度,那么PowerBuilder在赋值时调整长度,未赋值Blob类型变量的长度为0。

示例:This statement returns 0:

Len( " ")

These statements store in the variable s_address_len the length of the text in the SingleLineEdit sle_address:

long s_address_len

s_address_len = Len(sle_address.T ext)

The following scenarios illustrate how the declaration of blobs affects their length, as reported by Len.

In the first example, an instance variable called ib_blob is declared but not initialized with a size. If you call Len before data is assigned to ib_blob, Len returns 0. After data is assigned, Len returns the blob 's new length.

The declaration of the instance variable is:

blob ib_blob

The sample code is:

long ll_len

ll_len = Len(ib_blob) // ll_len set to 0

ib_blob = Blob( "Test String ")

ll_len = Len(ib_blob) // ll_len set to 11

In the second example, ib_blob is initialized to the size 100 when it is declared. When you call Len for ib_blob, it always returns 100. This example uses BlobEdit, instead of Blob, to assign data to the blob because its size is already established. The declaration of the instance variable is:

blob{100} ib_blob

The sample code is:

long ll_len

ll_len = Len(ib_blob) // ll_len set to 100

BlobEdit(ib_blob, 1, "Test String ")

ll_len = Len(ib_blob) // ll_len set to 100

5、String()

功能:将Blob类型变量的值转换成字符串类型。如果Blob类型变量的值不是文本型数据,String()函数将其值解释成字符。

语法:String ( blob )

参数:blob:要对其值进行类型转换的Blob类型变量。

返回值:String。函数执行成功时返回转换后的数据,失败时返回空字符串(" ")。如果blob 变量中包含的数据不是字符串类型的数据,那么String()函数尽可能把数据解释为字符,并返回字符串类型数据。如果blob参数的值为NULL,则String()函数返回NULL。

示例:This example converts the blob instance variable ib_sblob, which contains string data, to a string and stores the result in sstr:

string sstr

sstr = String(ib_sblob)

This example stores today 's date and test status information in the blob bb. Pos1 and pos2 store the beginning and end of the status text in the blob. Finally, BlobMid extracts a "sub-blob " that String converts to a string. Sle_status displays the returned status text:

blob{100} bb

long pos1, pos2

string test_status

date test_date

test_date = Today()

IF DayName(test_date) = "Wednesday " THEN test_status = "Coolant Test "

IF DayName(test_date) = "Thursday " THEN test_status = "Emissions Test "

// Store data in the blob

pos1 = BlobEdit( bb, 1, test_date)

pos2 = BlobEdit( bb, pos1, test_status )

... // Some processing

// Extract the status stored in bb and display it

sle_status.text = String( BlobMid(bb, pos1, pos2 - pos1))

三、数据类型检查和转换函数

1、Asc()

功能:得到字符串第一个字符的ASCII码整数值。

语法:Asc ( string )

参数:string:要得到第一个字符ASCII值的字符串。

返回值:Integer。函数执行成功时返回string参数第一个字符的ASCII值,如果string参数的值为NULL,则Asc()函数返回NULL。

示例:下面的语句返回66,即字母B的ASCII值。

Asc(B)

下面的代码检查字符串ls_name的第一个字母是否是大写字母。

IF Asc(ls_name) > 64 and Asc(ls_name) < 91 THEN …

2、Char()

功能:将字符串的第一个字符、Blob变量的第一个值、或一个整数转换成字符。

语法:Char ( n )

参数:n:字符串、Blob变量或整数,也可以是包含上述类型数据的Any类型变量。返回值:Char。返回参数n的第一个字符。如果n参数的值为NULL,则Char()函数返回NULL。

示例:下面的代码ls_S的值设置为星号(*),对应于ASCII值42。

String ls_S

ls_S = Char(42)

3、Dec()

功能:将字符串或Blob值转换成Decimal类型的值。

语法:Dec ( stringorblob )

参数:stringorblob:string类型变量或Blob类型变量。Blob类型变量时,把该变量第一个值转换为

Decimal类型的值,其余部分被忽略。stringorblob参数也可以是包含上述类型数据的Any 类型变量。

返回值:Decimal。函数执行成功时返回相应的Decimal类型值。如果stringorblob参数中的值不是有效的PowerScript数字或数据类型不兼容,那么Dec()函数返回0。如果stringorblob参数的值为NULL,则Dec()函数返回NULL。

示例:Dec(“24.3”)

4、Double()

功能:将字符串或Blob值转换成Double类型的值。

语法:Double(stringorblob)

参数:stringorblob:string类型变量或Blob类型变量。Blob类型变量时,把该变量第一个值转换为

Double类型的值,其余部分被忽略。stringorblob参数也可以是包含上述类型数据的Any 类型变量。

返回值:Double。函数执行成功时返回相应的Double类型值。如果stringorblob参数中的值不是有效的PowerScript数字或数据类型不兼容,那么Double()函数返回0。如果

stringorblob参数的值为NULL,则Double()函数返回NULL。

示例:Do uble(“24.332”)

5、Integer()

功能:将字符串或Blob值转换成Integer类型的值。

语法:Integer ( stringorblob )

参数:stringorblob:string类型变量或Blob类型变量。Blob类型变量时,把该变量第一个值转换为

Integer类型的值,其余部分被忽略。stringorblob参数也可以是包含上述类型数据的Any 类型变量。

返回值:Integer。函数执行成功时返回相应的Integer类型值。如果stringorblob参数中的值不是有效的PowerScript数字或数据类型不兼容,那么Integer()函数返回0。如果stringorblob参数的值为NULL,则Integer ()函数返回NULL。

示例:下面的语句以Integer数据类型返回24。

Integer(“24.332”)

6、Long()

功能:将其它类型的数据转换为Long类型的值。该函数有两种语法格式:

语法一、将两个无符号整数组合成一个长整数值;

语法二、将字符串或Blob值转换成Long类型的值。下面分别予以介绍:

语法一、将两个无符号整数组合成一个长整数值

语法:Long ( lowword, highword )

参数:lowword:UnsignedInteger类型,指定长整数中的低位值。

highword:UnsignedInteger类型,指定长整数中的高位值。

返回值:Long。函数执行成功时返回由低位值和高位值组合后的长整数值,发生错误时返回-1。如果任何参数的值为NULL,则Long()函数返回NULL。

语法二、将字符串或Blob值转换成Long类型的值

语法:Long ( stringorblob )

参数:stringorblob:string类型变量或Blob类型变量。Blob类型变量时,把该变量第一个值转换为Long类型的值,其余部分被忽略。stringorblob参数也可以是包含上述类型数据的Any类型变量。

返回值:Long。函数执行成功时返回相应的Long类型值。如果stringorblob参数中的值不是有效的

PowerScript数字或数据类型不兼容,那么Long()函数返回0。如果stringorblob参数的值为NULL,则Long()函数返回NULL。

示例:下面的语句以Long数据类型返回23458888。

Long(“23458888”)

7、Real()

功能:将字符串或Blob值转换成Real类型的值。

语法:Real ( stringorblob )

参数:stringorblob:string类型变量或Blob类型变量。当该参数是Blob类型变量时,把该变量第一个值转换为Real类型的值,其余部分被忽略。stringorblob参数也可以是包含上述类型数据的Any类型变量。

返回值:Real。函数执行成功时返回相应的Real类型值。如果stringorblob参数中的值不是有效的

PowerScript数字或数据类型不兼容,那么Real()函数返回0。如果stringorblob参数的值

为NULL,则Real()函数返回NULL。

示例:下面的语句以Long数据类型返回2323.3222。

Real(“2323.3222”)

8、Date()

功能:将其它类型的数据转换为Date类型的数据。该函数有三种语法格式:

语法一、将DateTime类型或第一个值是DateTime或Date的Blob值转换成Date类型的值;

语法二、将其值是个有效日期的字符串转换成Date类型的值;

语法三、将三个整数组合成一个日期。下面分别予以介绍:

语法一、将DateTime类型或第一个值是DateTime或Date的Blob值转换成Date类型的值

语法:Date ( datetime )

参数:datetime:DateTime类型的值或第一个值是DateTime或Date的Blob类型的值。当该参数是Blob类型变量时,把该变量第一个值转换为Date类型的值,其余部分被忽略。datetime参数也可以是包含上述类型数据的Any类型变量。

返回值:Date。函数执行成功时返回相应的Date类型值。如果datetime参数中的值不是有效的PowerScript日期或数据类型不兼容,那么Date()函数返回1900-01-01。如果datetime参数的值为NULL,则Date()函数返回NULL。

示例:下面的语句从DateTime类型变量ldt_StartDateTime中提取日期值并保存在ld_StartDate变量中。

Date ld_StartDate

ld_StartDate = Date(ldt_StartDateTime)

语法二、将其值是个有效日期的字符串转换成Date类型的值

语法:Date ( string )

参数:string:string类型,其值包括一个有效的以字符串形式表示的日期(比如January 1, 1998或12-31-99),string参数也可以是包含字符串类型数据的Any类型变量。

返回值:Date。函数执行成功时返回相应的Date类型值。如果string参数中的值不是有效的PowerScript日期或数据类型不兼容,那么Date()函数返回1900-01-01。如果string参数的值为NULL,则Date()函数返回NULL。

示例:下面的语句把字符串形式表示的日期转换为日期类型的日期。

Date ld_date

ld_date = Date(“2004-02-04”)

语法三、将三个表示年、月、日的整数组合成一个日期

语法:Date ( year, month, day )

参数:year:integer类型,指定日期中的年份,用四位数字表示,从0到9999;month:integer类型,指定日期中的月份,用一位或两位数字表示,从1到12;

day:integer类型,指定日期中的号数,用一位或两位数字表示,从1到31。

返回值:Date。函数执行成功时返回由year、month、day三个参数确定的日期。如果这三个参数中任何一个参数使用了无效值(比如月份指定为14),则Date()函数返回1900-01-01。如果任何参数的值为NULL,则Date()函数返回NULL。

示例:下面的语句把变量ld_my_date设置为2004-02-04。

Date ld_my_date

ld_my_date = Date(“2004-02-04”)

9、DateTime()

功能:将其它类型的数据转换为DateTime类型的数据。该函数有两种语法格式:语法一、把日期和时间值组合成DateTime类型的值;语法二、将Blob类型的值转换成DateTime 类型的值。下面分别予以介绍:

语法一、把日期和时间值组合成DateTime类型的值

语法:DateTime ( date {, time } )

参数:date:Date类型的日期值。

time:可选参数,Time类型的时间值,省略该参数时,PowerBuilder把时间设置为午夜(00:00:00.000000)。当指定该参数时,可以仅仅指定小时值。

返回值:DateTime。函数执行成功时返回日期和时间组合而成的DateTime类型的值。如果任何参数的值为

NULL,则DateTime()函数返回NULL。

示例:下面的语句把单行编辑框中用户输入的日期和时间组合成DateTime类型的值,以更新数据库的

DateTime类型的列。

DateTime ldt_OrderDateTime

Date ld_OrderTime

Time lt_OrderTime

ld_OrderTime = Date(sle_orderdate.text)

lt_OrderTime = Time(sle_orderdate.text)

ldt_OrderDateTime = DateTime(ld_OrderTime , lt_OrderTime)

语法二、将Blob类型的值转换成DateTime类型的值

语法:DateTime ( blob )

参数:blob:Blob类型变量,把该变量第一个值转换为DateTime类型的值,其余部分被忽略。blob参数也可以是包含blob类型数据的Any类型变量。

返回值:DateTime。函数执行成功时返回相应的DateTime类型值。如果blob参数的值为NULL,则DateTime()函数返回NULL。

10、IsDate()

功能:检测指定的字符串是否包含有效的日期。

语法:IsDate ( datevalue )

参数:datevalue:string类型,指定要检测的字符串。

返回值:Boolean。如果datevalue包含了有效的日期,则IsDate()函数返回TRUE,否则返回FALSE。如果datevalue参数的值为NULL,则IsDate()函数返回NULL。

示例:下面的语句返回TRUE。

IsDate(“Feb 4,2004”)

下面的语句返回FALSE。

IsDate(“Feb 43,2004”)

11、IsNull()

功能:测试变量或表达式的值是否是NULL。

语法:IsNull ( any )

参数:any:要测试的变量或表达式。

返回值:Boolean:如果any的值为NULL,函数返回TRUE,否则函数返回FALSE。

示例:下面的语句执行后,lb_test的值为TURE。

Integer a , b

Boolean lb_test

SetNull(b)

lb_test = IsNull(a + b)

12、IsNumber()

功能:测试字符串是否是有效的数值。

语法:IsNumber ( string )

参数:string:string类型,要测试的字符串。

返回值:Boolean:如果string的值为有效的PowerScript数字,函数返回TRUE,否则函数返回FALSE。如果string参数的值为NULL,则IsNumber()函数返回NULL。

示例:1、下面的语句返回TRUE。

IsNumber(“11.22”)

下面的语句返回FALSE。

IsNumber(“A4545”)

2、如果单行编辑框sle_Age中的数据为32,则下面的语句把32保存在整型变量li_YearsOld 中。

Integer = li_YearsOld

IF IsNumber(sle_Age.T ext) THEN

li_YearsOld = integer(sle_Age.T ext)

END IF

13、IsTime()

功能:测试字符串的值是否是有效的时间。

语法:IsTime ( timevalue )

参数:timevalue:string类型,要测试的字符串。

返回值:Boolean:如果timevalue的值为有效的时间,函数返回TRUE,否则函数返回FALSE。如果timevalue 参数的值为NULL,则IsTime()函数返回NULL。

示例:下面的语句返回TRUE。

IsTime(“8:00:00 am”)

下面的语句返回FALSE。

IsTim e(“25:00”)

14、String()

功能:按指定格式将数据转换成字符串。String()可以把Date、DateTime、数值类型、Time、String类型的数据转换成指定格式的字符串。

语法:String(data,{format})

参数:data:指定要转换格式的数据,其数据类型可以是Date、DateTime、数值类型、Time、String,也可以是包含上述类型数据的Any类型变量。

format:可选项,string类型,其值指定数据格式。如果data参数的类型为string,则必须指定format参数。

.四、日期、时间函数作者:dafei 时间:2005-7-24 1:57:00

1、Day()

功能:得到日期型数据中的号数(1到31之间的整数值)。

语法:Day ( date )

参数:date:要得到号数的日期值。

返回值:Integer。函数执行成功时返回号数(1到31之间的整数值)。如果date参数的值为NULL,则Day()函数返回NULL。

示例:These statements extract the day (31) from the date

literal 1994-01-31 and set li_day_portion to that value:

integer li_day_portion

li_day_portion = Day(1994-01-31)

These statements check to be sure the date in sle_date is valid, and if so set li_day_portion to the day in the sle_date:

integer li_day_portion

IF IsDate(sle_date.Text) THEN

li_day_portion = Day(Date(sle_date.Text))

ELSE

MessageBox( "Error ", "This date is invalid: " + sle_date.Text)

END IF

2、DayName()

功能:得到指定日期是一周中的星期几(例如,Sunday, Monday...)。

语法:DayName ( date )

参数:date:date类型值或变量。

返回值:String。函数执行成功时返回指定日期的星期表示(例如,Sunday, Monday...)。如果date参数的值为NULL,则DayName()函数返回NULL。

示例:These statements evaluate the date literal 1993-07-04 and set day_name to Sunday:

string day_name

day_name = DayName(1993-07-04)

These statements check to be sure the date in sle_date is valid, and if so set day_name to the day in sle_date:

string day_name

IF IsDate(sle_date.Text) THEN

day_name = DayName(Date(sle_date.T ext))

ELSE

MessageBox( "Error ", "This date is invalid: " + sle_date.Text)

END IF

3、DayNumber()

功能:得到日期型数据是一星期中的第几天(用1到7之间的整数表示,星期天为1,星期一为2,...)。

语法:DayNumber ( date )

参数:date:date类型值或变量。

返回值:Integer。函数执行成功时返回指定日期是一星期中的第几天(用1~7表示,星期天为1,星期一为2,...)。如果date参数的值为NULL,则DayNumber()函数返回NULL。示例:These statements evaluate the date literal 1990-01-31 and set day_nbr to 4 (January 31, 1990, was a Wednesday):

integer day_nbr

day_nbr = DayNumber(1990-01-31)

These statements check to be sure the date in sle_date is valid, and if so set day_nbr to the number of the day in the sle_date:

integer day_nbr

IF IsDate(sle_date.Text) THEN

day_nbr = DayNumber(Date(sle_date.Text))

ELSE

MessageBox( "Error ", "This date is invalid: " + sle_date.Text)

END IF

4、DaysAfter()

功能:得到两个日期间的天数。

语法:DaysAfter ( date1, date2 )

参数:date1:date类型,指定起始日期;

date2:date类型,指定终止日期。

返回值:Long。函数执行成功时得到两个日期之间的天数。如果date2的日期在date1的前面,那么DaysAfter()函数返回负值。如果任何参数的值为NULL,则DaysAfter()函数返回NULL。

示例:1、This statement returns 4:

DaysAfter(2002-12-20, 2002-12-24)

2、This statement returns -4:

DaysAfter(2002-12-24, 2002-12-20)

3、This statement returns 0:

DaysAfter(2003-12-24, 2003-12-24)

4、This statement returns 5:

DaysAfter(2003-12-29, 2004-01-03)

5、If you declare date1 and date2 date variables and assign February 16, 2003, to date1 and April 28, 2003, to date2 as follows:

date date1, date2

date1 = 2003-02-16

date2 = 2003-04-28

then each of the following statements returns 71:

DaysAfter(date1, date2)

DaysAfter(2003-02-16, date2)

DaysAfter(date1, 2003-04-28)

DaysAfter(2003-02-16, 2003-04-28)

5、Hour()

功能:得到时间值中的小时,采用24小时制。

语法:Hour ( time )

参数:time:time类型的值。

返回值:Integer。函数执行成功时得到time参数中的小时(00到23之间)。如果time参数的值为NULL,则Hour()函数返回NULL。

示例:1、This statement returns the current hour:

Hour(Now())

2、This statement returns 19:

Hour(19:01:31)

6、Minute()

功能:得到时间值中的分钟,有效值在00~59之间。

语法:Minute ( time )

参数:time:time类型的值。

返回值Integer。函数执行成功时得到time参数中的分钟(00到59之间)。如果time参数的值为NULL,则Minute()函数返回NULL。

示例:This statement returns 1:

Minute(19:01:31)

7、Month()

功能:得到日期值中的月份,有效值在1~12之间。

语法:Month ( date )

参数:date:date类型的值。

返回值:Integer。函数执行成功时得到date参数中的月份(1到12之间)。如果date参数的值为NULL,则Month()函数返回NULL。

示例:This statement returns 1:

Month(1994-01-31)

These statements store in start_month the month entered in the SingleLineEdit sle_start_date:

integer start_month

start_month = Month(date(sle_start_date.Text))

8、Now()

功能:得到客户机的当前系统时间,返回值为Time类型。

语法:Now()

返回值:Time。该函数返回客户机的当前系统时间。

示例:This statement returns the current system time.

Now()

This example displays the current time in the StaticText st_time. It keeps the time up-to-date by setting a timer that triggers a Timer event every 60 seconds. Code in the window 's Open event displays the initial time and starts the timer. Code in the Timer event displays the time again.

The following code appears in the window 's Open event script: st_time.Text = String(Now(), "hh:mm ")

Timer(60)

A single line in the Timer event script refreshes the time display:

st_time.Text = String(Now(), "hh:mm ")

9、RelativeDate()

功能:得到指定日期前多少天或后多少天的日期。

语法:RelativeDate(date,n)

参数:date:Date类型,指定基准日期

n:integer类型,指定天数。

返回值:Date。当n的值大于0时返回参数date指定日期后第n天的日期;当n的值小于0时返回参数date指定日期前第n天的日期。如果任何参数的值为NULL,则RelativeDate()函数返回NULL。

示例:This statement returns 1990-02-10:

RelativeDate(1990-01-31, 10)

This statement returns 1990-01-21:

RelativeDate(1990-01-31, - 10)

10、RelativeTime()

功能:得到指定时间前多少秒或后多少秒的时间,采用24小时制。

语法:RelativeTime ( time, n )

参数:time:time类型,指定基准时间

n:long类型,指定秒数。

返回值:Time。当n的值大于0时返回参数time指定时间后第n秒的时间;当n的值小于0时返回参数time指定时间前第n秒的时间。如果任何参数的值为NULL,则RelativeTime()函数返回NULL。

示例:This statement returns 19:01:41:

RelativeTime(19:01:31, 10)

This statement returns 19:01:21:

RelativeTime(19:01:31, - 10)

11、Second()

功能:得到时间值中的秒,有效值在00~59之间。

语法:Second ( time )

参数:time:time类型的值。

返回值:Integer。函数执行成功时得到time参数中的秒(00到59之间)。如果time参数的值为NULL,则Second()函数返回NULL。

示例:This statement returns 31:

Second(19:01:31)

11、Second()

功能:得到时间值中的秒,有效值在00~59之间。

语法:Second ( time )

参数:time:time类型的值。

返回值:Integer。函数执行成功时得到time参数中的秒(00到59之间)。如果time参数的值为NULL,则Second()函数返回NULL。

示例:This statement returns 31:

Second(19:01:31)

12、SecondsAfter()

功能:得到两个时间之间的秒数。让前一个时间比后一个时间早时,该函数的值为正数;两者相等时为零;反之则为负数。

语法:SecondsAfter ( time1 , time2 )

参数:time1:time类型的值,要度量的时间间隔的起始值;

time2:time类型的值,要度量的时间间隔的结束值;

返回值:Long。函数执行成功时返回起始时间和结束时间之间的秒数。如果任何参数的值为NULL,则函数返回NULL。

示例:This statement returns 15:

SecondsAfter(21:15:30, 21:15:45)

This statement returns -15:

SecondsAfter(21:15:45, 21:15:30)

This statement returns 0:

SecondsAfter(21:15:45, 21:15:45)

If you declare start_time and end_time time variables and assign 19:02:16 to start_time and 19:02:28 to end_time as shown below:

time start_time, end_time

start_time = 19:02:16

end_time = 19:02:28

then each of these statements returns 12:

SecondsAfter(start_time, end_time)

SecondsAfter(19:02:16, end_time)

SecondsAfter(start_time, 19:02:28)

SecondsAfter(19:02:16, 19:02:28)

13、Today()

功能:得到当前系统日期,在某些情况下,同时得到当前系统时间。

语法:Today()

返回值:Date。该函数返回当前系统日期。

用法:单独调用Today()函数时,该函数总是返回当前系统日期,但是,虽然Today()函数的返回值类型为Date,在该函数用做某些函数的参数、而该参数要求DateTime类型的值时,Today()函数也能够在返回当前系统日期的同时返回当前系统时间。

再如,Today()函数作为数据窗口控件SetItem()函数的参数,该函数参数中指定的数据窗口列的数据类型为DateTime,那么当前系统日期和时间将同时设置到数据窗口指定项中。

示例:This statement returns the current system date:

Today()

This statement executes some statements when the current system date is before April 15, 2003:

IF Today() < 2003-04-15 THEN ...

This statement displays the current date in the StaticT ext st_date in the corner of a window:

st_date.Text = String(Today(), "m/d/yy ")

This statement displays the current date and time in the StaticText st_date:

st_date.Text = String(Today(), "m/d/yy hh:mm ")

14、Year()

功能:得到日期值中的年度(有效取值1000到3000)。

语法:Year(date)

参数:date:date类型的值。

返回值:Integer。函数执行成功时得到date参数中的年份(采用四位数字),发生错误时返回1900,如果date参数的值为NULL,则Year()函数返回NULL。

用法:当应用程序把有两位数字表示年份的字符串转换成日期时,PowerBuilder根据下述规则选择世纪:如果年份值在00到49之间,PowerBuilder将年份中的世纪(前两位数字)当作20;如果年份值在50到99之间,PowerBuilder将年份中的世纪(前两位数字)当作19。比如,字符串"20-10-25 "被PowerBuilder转换为2020-10-25;字符串"98-10-25 "被PowerBuilder转换为1998-10-25。因此,如果应用程序中需要指定1950年之前的

日期,应该使用四位数字表示年份,以避免引起歧义。PowerBuilder能够处理的年份从1000到3000之间。

示例:This statement returns 1995:

Year(1995-01-31)

五、DDE客户函数作者:dafei 时间:2005-7-24 2:01:00

1、CloseChannel()

功能:关闭先前用OpenChannel()函数打开的DDE服务器的通道。

语法:CloseChannel ( handle {, windowhandle } )

参数:handle:long类型,通道句柄,指明要关闭的DDE通道;

windowhandle:long类型,可选项,指明用做DDE客户的PowerBuilder窗口的窗口句柄。返回值:Integer。函数执行成功时返回1,发生错误时返回下述值之一:

-2 -- 通道不能被关闭;

-3 -- 不能确认服务器;

-9 -- Handle参数的值为NULL。

用法:使用CloseChannel()函数关闭用OpenChannel()函数打开的、连接DDE服务器应用程序的通道。虽然我们可以只指定通道句柄来关闭通道,但最好同时指定与通道相关联的句柄。如果指定了窗口句柄参数(windowhandle),CloseChannel()函数将关闭窗口句柄指定窗口的指定通道。如果未指定了窗口句柄参数(windowhandle),那么只有当指定的通道句柄与当前活动窗口关联时,CloseChannel ()函数才会关闭该通道。使用Handle()函数可以得到窗口的句柄。

示例:These statements open and close the channel identified by handle. The channel is associated with the window w_sheet: long handle

handle = OpenChannel( "Excel ", "REGION.XLS ", &

Handle(w_sheet) )

... // Some processing

CloseChannel(handle, Handle(w_sheet))

2、ExecRemote()

功能:请求DDE服务器应用程序执行命令。该函数有两种语法格式:语法一、直接向DDE服务器应用发送一条命令(冷连接方式);语法二、应用程序打开某个通道后向DDE 服务器应用发送命令(热连接方式)。下面分别予以介绍。

语法一、直接向DDE服务器应用发送一条命令(冷连接方式);

语法:ExecRemote ( command, applname, topicname )

参数:command:string类型,其值为希望DDE服务器应用执行的命令,命令格式和语法需要参看DDE服务器应用的文档;

applname:string类型,指定服务器应用的DDE名称;

topicname:string类型,指定命令中要使用的DDE应用的数据或实例。

返回值:Integer。函数执行成功时返回1,发生错误时返回下述值之一:

-1 -- 未启动连接;

-2 -- 请求被拒绝;

-3 -- 不能终止服务器。

如果任何参数的值为NULL,ExecRemote()函数返回NULL。

示例:This statement asks Microsoft Excel to save the active

spreadsheet as file REGION.XLS. A channel is not open, so the function arguments specify the application and topic (the name of the spreadsheet):

ExecRemote( "[Save()] ", "Excel ", "REGION.XLS ")

语法二、应用程序打开某个通道后向DDE服务器应用发送命令(热连接方式)

语法:ExecRemote ( command, handle {, windowhandle } )

参数:command:string类型,其值为希望DDE服务器应用执行的命令,命令格式和语法需要参看DDE服务器应用的文档;

handle:long类型,指定使用的DDE通道句柄;

windowhandle:long类型,可选项,指明用做DDE客户的PowerBuilder窗口的窗口句柄。省略该参数时,当前应用中的活动窗口用做DDE客户。

返回值:Integer。函数执行成功时返回1,发生错误时返回下述值之一:

-1 -- 未启动连接;

-2 -- 请求被拒绝;

-9 -- handle参数的值为NULL

示例:This excerpt from a script asks the DDE channel to Microsoft Excel to save the active spreadsheet as file REGION.XLS. The OpenChannel function names the server application and the topic, so ExecRemote only needs to specify the channel handle. The script is associated with a button on a window, whose handle is specified as the last argument of OpenChannel:

long handle

handle = OpenChannel( "Excel ", "REGION.XLS ", &

Handle(Parent))

. . . // Some processing

ExecRemote( "[Save] ", handle)

CloseChannel(handle, Handle(Parent))

3、GetDataDDE()

功能:从热连接服务器应用中获取数据,并将其保存到指定的字符串变量中。

语法:GetDataDDE ( string )

参数:string:string类型变量,用于保存接收到的数据。

返回值:Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,GetDataDDE()函数返回NULL。

示例:Assuming that your PowerBuilder DDE client application has established a hot link with row 7, column 15 of an Excel spreadsheet, and that the value in that row and column address has changed from red to green (which triggers the HotLinkAlarm event in your application), this script for the HotLinkAlarm event calls GetDataDDE to store the new value in the variable Str20:

// In the script for a HotLinkAlarm event

string Str20

GetDataDDE(Str20)

4、GetDataDDEOrigin()

功能:确定来自热连接DDE服务器应用的数据源,成功时将应用的DDE标识保存在参数指定的变量中。

语法:GetDataDDEOrigin ( applstring, topicstring, itemstring )

参数:applstring:string类型变量,用于保存服务器应用的名称;

topicstring:string类型变量,用于保存主题(比如,在Excel中,主题可以是REGION.XLS);itemstring:string类型变量,用于保存数据项标识(比如,在Excel中,数据项标识可以是R1C2);

返回值:Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,GetDataDDEOrigin()函数返回NULL。

示例:This example illustrates how to call GetDataDDEOrigin:

string WhichAppl, WhatTopic, WhatLoc

GetDataDDEOrigin(WhichAppl, WhatT opic, WhatLoc)

数据结构实验指导书(2016.03.11)

《数据结构》实验指导书 郑州轻工业学院 2016.02.20

目录 前言 (3) 实验01 顺序表的基本操作 (7) 实验02 单链表的基本操作 (19) 实验03 栈的基本操作 (32) 实验04 队列的基本操作 (35) 实验05 二叉树的基本操作 (38) 实验06 哈夫曼编码 (40) 实验07 图的两种存储和遍历 (42) 实验08 最小生成树、拓扑排序和最短路径 (46) 实验09 二叉排序树的基本操作 (48) 实验10 哈希表的生成 (50) 实验11 常用的内部排序算法 (52) 附:实验报告模板 .......... 错误!未定义书签。

前言 《数据结构》是计算机相关专业的一门核心基础课程,是编译原理、操作系统、数据库系统及其它系统程序和大型应用程序开发的重要基础,也是很多高校考研专业课之一。它主要介绍线性结构、树型结构、图状结构三种逻辑结构的特点和在计算机内的存储方法,并在此基础上介绍一些典型算法及其时、空效率分析。这门课程的主要任务是研究数据的逻辑关系以及这种逻辑关系在计算机中的表示、存储和运算,培养学生能够设计有效表达和简化算法的数据结构,从而提高其程序设计能力。通过学习,要求学生能够掌握各种数据结构的特点、存储表示和典型算法的设计思想及程序实现,能够根据实际问题选取合适的数据表达和存储方案,设计出简洁、高效、实用的算法,为后续课程的学习及软件开发打下良好的基础。另外本课程的学习过程也是进行复杂程序设计的训练过程,通过算法设计和上机实践的训练,能够培养学生的数据抽象能力和程序设计能力。学习这门课程,习题和实验是两个关键环节。学生理解算法,上机实验是最佳的途径之一。因此,实验环节的好坏是学生能否学好《数据结构》的关键。为了更好地配合学生实验,特编写实验指导书。 一、实验目的 本课程实验主要是为了原理和应用的结合,通过实验一方面使学生更好的理解数据结构的概念

数据结构课后习题

第一章 3.(1)A(2)C(3)D 5.计算下列程序中x=x+1的语句频度 for(i=1;i<=n;i++) for(j=1;j<=i;j++) for(k=1;k<=j;k++) x=x+1; 【解答】x=x+1的语句频度为: T(n)=1+(1+2)+(1+2+3)+……+(1+2+……+n)=n(n+1)(n+2)/6 6.编写算法,求一元多项式p n(x)=a0+a1x+a2x2+…….+a n x n的值p n(x0),并确定算法中每一语句的执行次数和整个算法的时间复杂度,要求时间复杂度尽可能小,规定算法中不能使用求幂函数。注意:本题中的输入为a i(i=0,1,…n)、x和n,输出为P n(x0)。算法的输入和输出采用下列方法 (1)通过参数表中的参数显式传递 (2)通过全局变量隐式传递。讨论两种方法的优缺点,并在算法中以你认为较好的一种实现输入输出。 【解答】 (1)通过参数表中的参数显式传递 优点:当没有调用函数时,不占用内存,调用结束后形参被释放,实参维持,函数通用性强,移置性强。 缺点:形参须与实参对应,且返回值数量有限。 (2)通过全局变量隐式传递 优点:减少实参与形参的个数,从而减少内存空间以及传递数据时的时间消耗 缺点:函数通用性降低,移植性差 算法如下:通过全局变量隐式传递参数 PolyValue() { int i,n; float x,a[],p; printf(“\nn=”); scanf(“%f”,&n); printf(“\nx=”); scanf(“%f”,&x); for(i=0;i

根式函数值域定稿版

根式函数值域 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

探究含有根式的函数值域问题 含根式的函数的值域或者最值问题在高中数学的学习过程中时常遇到,因其解法灵活,又缺乏统一的规律,给我们造成了很大的困难,导致有些学生遇到根式就害怕。为此,本文系统总结此类函数值域的求解方法,供学生参考学习。 1.平方法 例1:求31++-=x x y 的值域 解:由题意知函数定义域为[]1,3-,两边同时平方得:322422+--+=x x y =4+()4212+- +x 利用图像可得[]8,42∈y ,又知?y 0[]22,2∈∴y 所以函数值域为[]22,2 析:平方法求值域适用于平方之后可以消去根式外面未知量的题型。把解析式转化为()x b a y ?+=2 的形式,先求y 2 的范围,再得出y 的范围即值域。 2.换元法 例2: 求值域1)12--=x x y 2)x x y 2 4-+= 解:(1)首先定义域为[)+∞,1,令()01≥-=t x t ,将原函数转化为 [)+∞∈,0t ,?? ????+∞∈∴,815y 析:当函数解析式由未知量的整数幂与根式构成,并且根式内外的未知量的次幂保持一致。可以考虑用代数换元的方法把原函数转化成二次函数,再进行值域求解。 (2)首先,函数定义域为[]2,2-∈x ,不妨设αsin 2=x ,令?? ????-∈2,2ππα

则原函数转化为:??? ? ?+=+=4sin 22cos 2sin 2παααy ?? ????-∈2,2ππα,∴??????-∈+43,44πππα 析:形如题目中的解析式,考虑用三角换元的方法,在定义域的前提下,巧妙地规定角的取值范围,避免绝对值的出现。 不管是代数换元还是三角换元,它的目的都是为了去根式,故需要根据题目灵活选择新元,并注意新元的范围。 3.数形结合法 例3:1)求()()8222+-+= x x y 的值域。 2)求1362222+-++-= x x y x x 的最小值。 解:(1)()()8222+-+=x x y 82++-=x x 其解析式的几何意义为数轴上的一动点x ,到两定点2与-8的距离之和,结合数轴不难得到[]+∞∈,10y (2)解析式可转化为()()41312 2+++=--x x y , 定义域为R ,进行适当的变形 ()()=+++--413122x x ()()()()2031012 222----+++x x , 由它的形式联想两点间的距离公式,分别表示点到点的距离与点的距离之和。 点()0,x P 到()1,1A 和()2,3B 的距离之和。即PB PA y +=,结合图形可知 13min =+'=PB A P y ,其中()1,1-'A 析:根据解析式特点,值域问题转化成距离问题,结合图形得出最值,进而求出了值域。 例4:1) 求x x y x 2312 +--+=的值域

HALCON算子函数整理10 Matching-3D

HALCON算子函数——Chapter 10 : Matching-3D 1. affine_trans_object_model_3d 功能:把一个任意有限3D变换用于一个3D目标模型。 2. clear_all_object_model_3d 功能:释放所有3D目标模型的内存。 3. clear_all_shape_model_3d 功能:释放所有3D轮廓模型的内存。 4. clear_object_model_3d 功能:释放一个3D目标模型的内存。 5. clear_shape_model_3d_ 功能:释放一个3D轮廓模型的内存。 6. convert_point_3d_cart_to_spher 功能:把直角坐标系中的一个3D点转变为极坐标。 7. convert_point_3d_spher_to_cart 功能:把极坐标中的一个3D点转变为直角坐标。 8. create_cam_pose_look_at_point 功能:从摄像机中心和观察方向创建一个3D摄像机位置。 9. create_shape_model_3d 功能:为匹配准备一个3D目标模型。 10. find_shape_model_3d 功能:在一个图像中找出一个3D模型的最佳匹配。 11. get_object_model_3d_params

功能:返回一个3D目标模型的参数。 12. get_shape_model_3d_contours 功能:返回一个3D轮廓模型视图的轮廓表示。 13. get_shape_model_3d_params 功能:返回一个3D轮廓模型的参数。 14. project_object_model_3d 功能:把一个3D目标模型的边缘投影到图像坐标中。 15. project_shape_model_3d 功能:把一个3D轮廓模型的边缘投影到图像坐标中。 16. read_object_model_3d_dxf 功能:从一个DXF文件中读取一个3D目标模型。 17. read_shape_model_3d 功能:从一个文件中读取一个3D轮廓模型。 18. trans_pose_shape_model_3d 功能:把一个3D目标模型的坐标系中的位置转变为一个3D轮廓模型的参考坐标系中的位 置,反之亦然。 19. write_shape_model_3d 功能:向一个文件写入一个3D轮廓模型。

二次函数和几何综合压轴题题型归纳

学生: 科目: 数 学 教师: 刘美玲 一、二次函数和特殊多边形形状 二、二次函数和特殊多边形面积 三、函数动点引起的最值问题 四、常考点汇总 1、两点间的距离公式:()()22B A B A x x y y AB -+-= 2、中点坐标:线段AB 的中点C 的坐标为:??? ??++22 B A B A y y x x , 直线11b x k y +=(01≠k )与22b x k y +=(02≠k )的位置关系: (1)两直线平行?21k k =且21b b ≠ (2)两直线相交?21k k ≠ (3)两直线重合?21k k =且21b b = (4)两直线垂直?121-=k k 3、一元二次方程有整数根问题,解题步骤如下: ① 用?和参数的其他要求确定参数的取值范围; ② 解方程,求出方程的根;(两种形式:分式、二次根式) ③ 分析求解:若是分式,分母是分子的因数;若是二次根式,被开方式是完全平方式。 例:关于x 的一元二次方程()0122 2 =-m x m x ++有两个整数根,5<m 且m 为整数,求m 的值。 4、二次函数与x 轴的交点为整数点问题。(方法同上) 例:若抛物线()3132 +++=x m mx y 与x 轴交于两个不同的整数点,且m 为正整数,试确定 此抛物线的解析式。 课 题 函数的综合压轴题型归类 教学目标 1、 要学会利用特殊图形的性质去分析二次函数与特殊图形的关系 2、 掌握特殊图形面积的各种求法 重点、难点 1、 利用图形的性质找点 2、 分解图形求面积 教学内容

5、方程总有固定根问题,可以通过解方程的方法求出该固定根。举例如下: 已知关于x 的方程2 3(1)230mx m x m --+-=(m 为实数),求证:无论m 为何值,方程总有一个固定的根。 解:当0=m 时,1=x ; 当0≠m 时,()032 ≥-=?m ,()m m x 213?±-= ,m x 3 21-=、12=x ; 综上所述:无论m 为何值,方程总有一个固定的根是1。 6、函数过固定点问题,举例如下: 已知抛物线22 -+-=m mx x y (m 是常数),求证:不论m 为何值,该抛物线总经过一个固定的点,并求出固定点的坐标。 解:把原解析式变形为关于m 的方程()x m x y -=+-122 ; ∴ ???=-=+-0 1 02 2x x y ,解得:???=-=1 1 x y ; ∴ 抛物线总经过一个固定的点(1,-1)。 (题目要求等价于:关于m 的方程()x m x y -=+-122 不论m 为何值,方程恒成立) 小结.. :关于x 的方程b ax =有无数解????==0 b a 7、路径最值问题(待定的点所在的直线就是对称轴) (1)如图,直线1l 、2l ,点A 在2l 上,分别在1l 、2l 上确定两点M 、N ,使得MN AM +之和最小。 (2)如图,直线1l 、2l 相交,两个固定点A 、B ,分别在1l 、2l 上确定两点M 、N ,使得 AN MN BM ++之和最小。

Halcon学习之四:有关图像生成的函数

Halcon学习之四:有关图像生成的函数 1、copy_image ( Image : DupImage : : ) 复制image图像 2、region_to_bin ( Region : BinImage : ForegroundGray, BackgroundGray,Width, Height : ) 将区域Region转换为一幅二进制图像BinImage。 ForegroundGray, BackgroundGray分别为前景色灰度值和背景色灰度值。Width, Height为Region的宽度和高度。 3、region_to_label ( Region : ImageLabel : Type, Width, Height : ) 将区域Region转换为一幅Lable图像ImageLabel。 Type为imagelabel的类型。 Width, Height为Region的宽度和高度。 4、region_to_mean ( Regions, Image : ImageMean : : ) 绘制ImageMean图像,将其灰度值设置为Regions和Image的平均灰度值。相关例子: [c-sharp]view plaincopyprint? 1.* 读取图像 2.read_image (Image, 'G:/Halcon/机器视觉 /images/bin_switch/bin_switch_2.png') 3.* 复制图像 4.copy_image (Image, DupImage) 5.* 区域生长算法

6.regiongrowing (Image, Regions, 3, 3, 1, 100) 7.* 生成ImageMean 8.region_to_mean (Regions, Image, ImageMean) 9.* 将Region转换为二进制图像 10.r egion_to_bin (Regions, BinImage, 255, 0, 512, 512) 11.*将Region转换为Label图像 12.r egion_to_label (Regions, ImageLabel, 'int4', 512, 512)

PB常用函数

PB常用函数日期时间类函数 日期时间类函数的功能如下: Date:把日期转换为Date类型。 Time:把时间转换为Time类型。 Day:日期值。 Month:月值。 Year:年值。 DayName:星期几。 DayNumber:一周中的第几天。 DaysAfer:两个日期之间所差的天数。 SecondsAfer:两个时间之间所差的秒数。 Hour:小时。 Minute:分钟。 Second:秒。 Now:系统当前时间。 Today:系统日期和时间。 RelativeDate:指定日期前后的天数值。 RelativeTime:指定时间的前后时间值。 数值计算类函数 数值计算类函数主要的作用就是对数据进行计算,功能如下:Abs:返回数据的绝对值。 Max:求输入的最大值。 Min:求输入的最小值。 Ceiling:返回整数,小数会自动向上进位。 Int:返回整数,小数会自动向下退位。 Round:对数据进行四舍五入操作。 Truncate:删除掉小数点后若干位。 Cos:求余弦值。 Sin:求正弦值。 Tan:求正切值。 Exp:以e为底,输入值为次方的乘方值。 Sqrt:求平方根。 Fact:求阶乘。 Log:求自然对数。 LogTen:求以10为底的对数。 Mod:求余数。 Pi:求与PI的乘积。 Rand:返回1与输入值之间的一个伪随机数。 字符串类函数 字符串类函数的功能如下。 Fill:建立一个指定长度的字符串。 Lower:转换为小写字母。

Upper:转换为大写字母。 WordCap:首写字母大写,其他小写。 Space:由指定字符个数组成的空格字符串。 Left:从字符串左边开始指定字符串。 Right:从字符串右边开始指定字符串。 LeftTrim:删除字符串左边的空格。 RightTrim:删除字符串右边的空格。 Trim:删除左右两边的空格。 Len:返回字符串长度。 Match:判断是否有指定模式的字符。 Mid:取子字符串。 Replace:用指定字符替换另外一个字符串。 String:将数据转换为指定格式的字符串。 信息类函数 信息类函数可以获取数据窗口中的一些信息,函数的功能如下: CurrentRow:获取数据窗口的焦点的行数。 Page:获取当前记录的页数。 PageAcross:获取当前水平方向的页面。 PageCount:获取总页数。 RowHeight:获得记录的高度。 Describe:获取数据窗口对象的属性值。 IsRowModified:获取记录是否修改过,如果修改过返回True。 IsRowNew:获取是否新插入数据,如果插入返回True。 IsSelected:获取记录是否被选中,选中返True。 PageCountAcross:获取水平方向总页面。 RowCount:获取主缓冲区的总记录数。 统计类函数 统计类函数主要是用来对数据库中的数据进行统计操作,统计函数功能如下: Avg:计算字段的平均数,例如Avg(id)。 Max:计算字段的最大值,例如Max(id)。 Min:计算字段的最小值,例如Min(id)。 Median:计算字段的中间值。 Count:计算表或字段的记录数,例如Count(*)。 Frist:返回第一条记录。 Last:返回最后一条记录。 交叉表函数 只能在交叉列表风格的数据窗口中的细节区使用交叉表函数,交叉表的函数功能如下:CrosstabVag:计算字段数据的平均数。 CrosstabCount:计算字段数据的记录数。 CrosstabMax:计算字段数据的最大值。 CrosstabMin:计算字段数据的最小值。 数据类型转换与检查函数 数据类型转换与检查函数用于定义数据窗口的过滤条件、有效性检查和数据类型转换,数据类型转换与检查函数的功能如下:

halcon基础数据类型详解

halcon基础数据类型详解 #if defined(__CHAR_UNSIGNED__) || defined(__sgi) #define INT1 signed char /* integer, signed 1 Byte */ #define INT1_MIN SCHAR_MIN #define INT1_MAX SCHAR_MAX #else #define INT1 char /* integer, signed 1 Byte */ #define INT1_MIN CHAR_MIN #define INT1_MAX CHAR_MAX #endif #define UINT1 unsigned char /* integer, unsigned 1 Byte */ #define UINT1_MIN 0 #define UINT1_MAX UCHAR_MAX #define LONG_FORMAT _INT64_FORMAT typedef INT4_8 Hlong; typedef UINT4_8 Hulong; 看粗体部分,可以看到Hlong型在32位的机器上其实就是long型代表4个字节32位,在64位机器上有另一种定义 再来看看halcon中最重要的数据类型HTuple,在C++里面,halcon将HTuple类型封 装了类,其始祖类HRootObject,这个类相当于MFC里面的CObject,halcon从HRootObject 派生了HBaseArray,当然这两个类是虚基类,有一些方法需要我HTuple自己实现,当然也 有一些方法可以直接用的。这两个类在HCPPUtil里,可以看看。 HTuple类就是从HBaseArray派生,元组基类,相当于数组,具有如下的构造函数: HTuple(int l); HTuple(float f); HTuple(double d); HTuple(constchar *s);

HALCON算子函数Chapter 16:System

HALCON算子函數——Chapter 16 : System 16.1 Database 1. count_relation 功能:在HALCON數據庫中實體的數目。 2. get_modules 功能:查詢已使用模塊和模塊關鍵碼。 3. reset_obj_db 功能:HALCON系統的初始化。 16.2 Error-Handling 1. get_check 功能:HALCON控制模式的說明。 2. get_error_text 功能:查詢HALCON錯誤測試後錯誤數目。3. get_spy 功能:HALCON調試工具當前配置。 4. query_spy 功能:查詢HALCON調試工具可能的設置。5. set_check 功能:激活和鈍化HALCON控制模式。

6. set_spy 功能:HALCON調試工具的控制。 16.3 Information 1. get_chapter_info 功能:獲取程序有關章節的信息。 2. get_keywords 功能:獲取指定給程序的關鍵字。 3. get_operator_info 功能:獲取關於HALCON程序的信息。 4. get_operator_name 功能:獲取由給定字符串作為它們的名字的程序。 5. get_param_info 功能:獲取關於程序參數的信息。 6. get_param_names 功能:獲取一個HALCON程序參數的名字。 7. get_param_num 功能:獲取一個HALCON程序不同參數類的數目。 8. get_param_types 功能:獲取一個HALCON程序控制參數的缺省數據類型。

Halcon学习之边缘检测函数

Halcon学习之边缘检测函数 sobel_amp ( Image : EdgeAmplitude : FilterType, Size : )根据图像的一次导数计算图像的边缘 close_edges ( Edges, EdgeImage : RegionResult : MinAmplitude : ) close_edges_length( Edges, Gradient : ClosedEdges : MinAmplitude, MaxGapLength : ) 使用边缘高度图像关闭边缘间隙。输出的区域包含杯关闭的区域。(感觉是对边缘的扩充) derivate_gauss( Image : DerivGauss : Sigma, Component : ) watersheds( Image : Basins, Watersheds : : )从图像中提取风水岭。 zero_crossing( Image : RegionCrossing : : )零交点(二次导数) diff_of_gauss( Image : DiffOfGauss : Sigma, SigFactor : )近似日志算子(拉普拉斯高斯)。 laplace_of_gauss ( Image : ImageLaplace : Sigma : ) 拉普拉斯高斯edges_color_sub_pix ( Image : Edges : Filter, Alpha, Low, High : )精确的亚像素边缘提取(彩色图像) edges_sub_pix ( Image : Edges : Filter, Alpha, Low, High : ) 精确边缘提取的亚像素(灰度图像) edges_color ( Image : ImaAmp, ImaDir : Filter, Alpha, NMS, Low, High : )根据颜色进行边缘提取 edges_image ( Image : ImaAmp, ImaDir : Filter, Alpha, NMS, Low, High : )边缘提取 skeleton ( Region : Skeleton : : )计算区域的框架Skeleton == Region

PB函数常用

Max() 功能求两个数中的最大值。 语法Max ( x, y ) 参数x:数值型变量或表达式,参加比较的第一个数y :数值型变量或表达式,参加比较的第二个数返回值以x、y中数据类型更精确的数据类型作为该函数的返回值数据类型。函数执行成功时返回参数比较的两个数中更大者。如果任何参数的值为NULL,Max()函数返回NULL。 Min() 功能求两个数中的最小值。 语法Min( x, y ) 参数x:数值型变量或表达式,参加比较的第一个数y :数值型变量或表达式,参加比较的第二个数返回值以x、y中数据类型更精确的数据类型作为该函数的返回值数据类型。函数执行成功时返回参数比较的两个数中较小者。如果任何参数的值为NULL,Min()函数返回NULL。 Mod() 功能求余数。 语法Mod ( x, y ) 参数x:数值型变量或表达式,被除数y :数值型变量或表达式,除数返回值以x、y中数据类型更精确的数据类型作为该函数的返回值数据类型。函数执行成功时返回x除以y所得的余数。如果任何参数的值为NULL,Mod()函数返回NULL。 Round() 功能将x四舍五入到n位。 语法Round ( x, n )参数x:要四舍五入的数值型数据n:整数类型,指定从哪个小数位上四舍五入x。有效值在0到18之间返回值Decimal。函数执行成功时返回将x四舍五入到小数点后第n位的数值,如果函数执行失败或任何参数的值为NULL,Round()函数返回NULL。Truncate() 功能截断数值到指定的小数位。 语法Truncate ( x, n ) 参数x:要截断的数值型数据n:整数类型,指定从哪个小数位上截断x。有效值在0到18之间返回值Decimal。函数执行成功时返回将x截断到小数点后第n位的数值,如果函数执行失败或任何参数的值为NULL,Truncate()函数返回NULL。所谓截断就是舍弃指定位之后的数值。 Asc() 功能得到字符串第一个字符的ASCII码整数值。 语法Asc ( string ) 参数string:要得到第一个字符ASCII值的字符串返回值Integer。函数执行成功时返回string 参数第一个字符的ASCII值,如果string参数的值为NULL,则Asc()函数返回NULL。Char() 功能将字符串的第一个字符、Blob变量的第一个值、或一个整数转换成字符。 语法Char ( n ) 参数n:字符串、Blob变量或整数,也可以是包含上述类型数据的Any类型变量返回值Char。返回参数n的第一个字符。如果n参数的值为NULL,则Char()函数返回NULL。 Dec()

HALCON中filter函数

HALCON算子函数——Chapter 5 : Filter 5.1 Arithmetic 1. abs_image 功能:计算一个图像的绝对值(模数)。 2. add_image 功能:使两个图像相加。 3. div_image 功能:使两个图像相除。 4. invert_image 功能:使一个图像反像。 5. max_image 功能:按像素计算两个图像的最大值。 6. min_image 功能:按像素计算两个图像的最大小值。 7. mult_image 功能:使两个图像相乘。 8. scale_image 功能:为一个图像的灰度值分级。 9. sqrt_image 功能:计算一个图像的平方根。 10. sub_image 功能:使两个图像相减。 5.2 Bit 1. bit_and 功能:输入图像的所有像素的逐位与。 2. bit_lshift 功能:图像的所有像素的左移。3 . bit_mask 功能:使用位掩码的每个像素的逻辑与。 4. bit_not 功能:对像素的所有位求补。 5. bit_or 功能:输入图像的所有像素的逐位或。 6. bit_rshift 功能:图像的所有像素的右移。 7. bit_slice 功能:从像素中提取一位。 8. bit_xor 功能:输入图像的所有像素的逐位异或。5.3 Color

1. cfa_to_rgb 功能:把一个单通道颜色滤波阵列图像变成RGB图像。 2. gen_principal_comp_trans 功能:计算多通道图像的主要部分分析的转换矩阵。 3. linear_trans_color 功能:计算多通道图像的颜色值的一个仿射转换。 4. principal_comp 功能:计算多通道图像的主要部分。 5. rgb1_to_gray 功能:把一个RGB图像转变成一个灰度图像。 6. rgb3_to_gray 功能:把一个RGB图像转变成一个灰度图像。 7. trans_from_rgb 功能:把一个图像从RGB颜色空间转变成任意颜色空间。 8. trans_to_rgb 功能:把一个图像从任意颜色空间转变成RGB颜色空间。 5.4 Edges 1.close_edges 功能:使用边缘幅值图像消除边缘缺陷。 2. close_edges_length 功能:使用边缘幅值图像消除边缘缺陷。 3. derivate_gauss 功能:用高斯派生物对一个图像卷积。 4. diff_of_gauss 功能:近似高斯的拉普拉斯算子。 5. edges_color 功能:使用Canny、Deriche或者_Shen_滤波器提取颜色边缘。 6. edges_color_sub_pix 功能:使用Canny、Deriche或者_Shen_滤波器提取子像素精确颜色边缘。 7. edges_image 功能:使用Deriche、_Lanser、Shen或者_Canny滤

pb函数

PrintDefineFont() 功能定义打印作业使用的字体,对每个打印作业PowerBuilder支持八种字体。 语法PrintDefineFont(printjobnumber,fontnumber,facename,height,weight,fontpitch,fontfamily, italic,underline) 参数printjobnumber:用PrintOpen()函数打开的打印作业号fontnumber:指定赋给当前定义字体的编号,有效值在1到8之间facename:string类型,指定字体名称,该字体应该是你的打印机支持的字体,比如“宋体”height:Integer类型,使用正值指定字体的高度,以千分之一英寸为单位;使用负值指定字体点数,比如,-18代表18点。一般来说,使用点数更精确些weight:指定字体的磅数,正常字体为400磅,粗体为700磅fontpitch:FontPitch 枚举类型,指定字体标准。有效取值为:Default! - 缺省值;Fixed! - 固定形式;Variable! - 可变形式fontfamily:FontFamily枚举类型,指定字体系列。有效取值为:AnyFont!、Decorative!、Modern!、Roman!、Script!、Swiss!italic:boolean类型,指定是否使用斜体样式。有效取值为:TRUE - 使用斜体样式;FALSE - 不使用斜体样式。缺省值为FALSEunderline:boolean类型,指定是否加下划线。有效取值为:TRUE - 加下划线;FALSE - 不加下划线。缺省值为FALSE 返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,PrintDefineFont()函数返回NULL。用法在一个打印作业中,应用程序能够最多同时定义8种字体。当应用程序需要使用更多的字体时,可以在使用了某个字体号输出内容后使用PrintDefineFont()函数将该字体号对应的字体更换为其它字体。 -------------------------------------------------------------------------------- PrintLine() 功能在当前打印页上绘出指定厚度的一条线。 语法PrintLine ( printjobnumber, x1, y1, x2, y2, thickness ) 参数printjobnumber:用PrintOpen()函数打开的打印作业号x1:integer类型,指定直线起点的x坐标,以千分之一英寸为单位y1:integer类型,指定直线起点的y坐标,以千分之一英寸为单位x2:integer类型,指定直线终点的x坐标,以千分之一英寸为单位y2:integer 类型,指定直线终点的y坐标,以千分之一英寸为单位thickness:integer类型,指定直线的厚度,以千分之一英寸为单位返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,PrintLine()函数返回NULL。用法应用程序执行了PrintLine()函数后,该函数并不改变打印光标的位置。 -------------------------------------------------------------------------------- PrintOpen() 功能启动打印作业并返回作业号。 语法PrintOpen ( { jobname } ) 参数jobname:string类型,可选项,指定要打开打印作业的名称,该名称将显示在打印管理器窗口中返回值Long。函数执行成功时返回打印作业号,发生错误时返回-1。如果任何参数的值为NULL,PrintOpen()函数返回NULL。用法应用程序执行PrintOpen()函数后,启动新的打印作业并走纸到下一页,同时将打印机缺省字体设置为该打印作业的字体。打印光标的位置位于打印区的左上角。其它同组的打印函数使用PrintOpen()函数返回的作业号来标识作

HALCON函数

HALCON函数 dev_close_window ( : : : ) 关闭活跃的图形窗口。 read_image ( : Image : FileName : ) ;加载图片 get_image_pointer1 ( Image : : : Pointer, Type, Width, Height ) ;获得图像的数据。如:类型(= ' 字节',' ' ',uint2 int2 等等) 和图像的尺寸( 的宽度和高度) dev_open_window( : :Row,Column,WidthHeight,Background :WindowHandle )打开一个图形的窗口。 dev_set_part ( : : Row1, Column1, Row2, Column2 : ) 修改图像显示的位置 dev_set_draw (’fill’)填满选择的区域 dev_set_draw (’margin’)显示的对象只有边缘线, dev_set_line_width (3) 线宽用Line Width 指定 threshold ( Image : Region : MinGray, MaxGray : ) 选取从输入图像灰度值的g 满足下列条件:MinGray < = g < = MaxGray 的像素。 dev_set_colored (number) 显示region 是用到的颜色数目 dev_set_color ( : : ColorName : ) 指定颜色 connection ( Region : ConnectedRegions : : ) 合并所有选定像素触摸相互连通区 fill_up ( Region : RegionFillUp : : ) 填补选择区域中空洞的部分 fill_up_shape ( Region : RegionFillUp : Feature, Min, Max : ) select_shape ( Regions : SelectedRegions : Features, Operation, Min, Max : ) 选择带有某些特征的区域,Operation 是运算,如“与”“或” smallest_rectangle1 ( Regions : : : Row1, Column1, Row2, Column2 ) 以矩形像素坐标的角落,Column1,Row2(Row1,Column2) 计算矩形区域( 平行输入坐标轴) 。 dev_display ( Object : : : ) 显示图片 disp_rectangle1 ( : : WindowHandle, Row1, Column1, Row2, Column2 : ) 显示的矩形排列成的。disp_rectangle1 显示一个或多个矩形窗口的产量。描述一

圆幂定理讲义(带标准答案)

圆幂定理 STEP 1:进门考 理念:1.检测垂径定理的基本知识点与题型。 2.垂径定理典型例题的回顾检测。 3. 分析学生圆部分的薄弱环节。 (1)例题复习。 1.(2015?夏津县一模)一副量角器与一块含30°锐角的三角板如图所示放置,三角板的直角顶点C落在量角器的直径MN上,顶点A,B恰好都落在量角器的圆弧上,且AB∥MN.若AB=8cm,则量角器的直径MN=cm. 【考点】M3:垂径定理的应用;KQ:勾股定理;T7:解直角三角形. 【分析】作CD⊥AB于点D,取圆心O,连接OA,作OE⊥AB于点E,首先求得CD的长,即OE的长,在直角△AOE中,利用勾股定理求得半径OA的长,则MN即可求解. 【解答】解:作CD⊥AB于点D,取圆心O,连接OA,作OE⊥AB于点E. 在直角△ABC中,∠A=30°,则BC=AB=4cm,在直角△BCD中,∠B=90°﹣∠A=60°,∴CD=BC?sinB=4×=2(cm),∴OE=CD=2, 在△AOE中,AE=AB=4cm, 则OA===2(cm),则MN=2OA=4(cm).故答案是:4.

【点评】本题考查了垂径定理的应用,在半径或直径、弦长以及弦心距之间的计算中,常用的方法是转化为解直角三角形.

2.(2017?阿坝州)如图将半径为2cm的圆形纸片折叠后,圆弧恰好经过圆心O,则折痕AB的长为() A.2cm B.cm C.2cm D.2cm 【考点】M2:垂径定理;PB:翻折变换(折叠问题). 【分析】通过作辅助线,过点O作OD⊥AB交AB于点D,根据折叠的性质可知OA=2OD,根据勾股定理可将AD的长求出,通过垂径定理可求出AB的长. 【解答】解:过点O作OD⊥AB交AB于点D,连接OA, ∵OA=2OD=2cm,∴AD===(cm), ∵OD⊥AB,∴AB=2AD=2cm.故选:D. 【点评】本题考查了垂径定理和勾股定理的运用,正确应用勾股定理是解题关键. 3.(2014?泸州)如图,在平面直角坐标系中,⊙P的圆心坐标是(3,a)(a>3),半径为3,函数y=x的图象被⊙P截得的弦AB的长为,则a的值是()

HALCON 算子函数 整理 1-19章

halcon算子中文解释 comment ( : : Comment : ) 注释语句 exit ( : : : ) 退出函数 open_file ( : : FileName, FileType : FileHandle ) 创建('output' or 'append' )或者打开(output )文本文件 fwrite_string ( : : FileHandle, String : ) 写入string dev_close_window ( : : : ) 关闭活跃的图形窗口。 read_image ( : Image : FileName : ) ;加载图片 get_image_pointer1 ( Image : : : Pointer, Type, Width, Height ) 获得图像的数据。如:类型(= ' 字节',' ' ',uint2 int2 等等) 和图像的尺寸( 的宽度和高度) dev_open_window( : :Row,Column,WidthHeight,Background :WindowHandle ) 打开一个图形的窗口。 dev_set_part ( : : Row1, Column1, Row2, Column2 : ) 修改图像显示的位置 dev_set_draw (’fill’)填满选择的区域 dev_set_draw (’margin’)显示的对象只有边缘线, dev_set_line_width (3) 线宽用Line Width 指定 threshold ( Image : Region : MinGray, MaxGray : ) 选取从输入图像灰度值的g 满足下列条件:MinGray < = g < = MaxGray 的像素。 dev_set_colored (number) 显示region 是用到的颜色数目 dev_set_color ( : : ColorName : ) 指定颜色 connection ( Region : ConnectedRegions : : ) 合并所有选定像素触摸相互连通区 fill_up ( Region : RegionFillUp : : ) 填补选择区域中空洞的部分 fill_up_shape ( Region : RegionFillUp : Feature, Min, Max : ) select_shape ( Regions : SelectedRegions : Features, Operation, Min, Max : ) 选择带有某些特征的区域,Operation 是运算,如“与”“或” smallest_rectangle1 ( Regions : : : Row1, Column1, Row2, Column2 ) 以矩形像素坐标的角落,Column1,Row2(Row1,Column2) 计算矩形区域( 平行输入坐标轴) 。 dev_display ( Object : : : ) 显示图片 disp_rectangle1 ( : : WindowHandle, Row1, Column1, Row2, Column2 : ) 显示的矩形排列成的。disp_rectangle1 显示一个或多个矩形窗口的产量。描述一个矩形左上角(Row1,Column1) 和右下角(Row2,Column2) 。显示效果如图1. texture_laws ( Image : ImageT exture : FilterTypes, Shift, FilterSize : ) texture_laws 实行纹理变换图像FilterTypes: 预置的过滤器Shift :减少灰度变化FilterSize :过滤的尺寸 mean_image ( Image : ImageMean : MaskWidth, MaskHeight : ) 平滑图像, 原始灰度值的平均数MaskWidth: 过滤器的宽度面具 bin_threshold ( Image : Region : : ) 自动确定阈值 Region: 黑暗的区域的图像 dyn_threshold ( OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : ) 比较两个像素的图像像素RegionDynThresh(Out) 分割区域Offset: 减少噪音引起的问题LightDark 提取光明、黑暗或类似的地方? dilation_circle ( Region : RegionDilation : Radius : ) 扩张有一个圆形结构元素的地区Radius 圆半径 complement ( Region : RegionComplement : : ) 返还补充的区域 reduce_domain ( Image, Region : ImageReduced : : ) 减少定义领域的图像

相关文档
最新文档