祝愿大家身体健康!

 站点注册  找回密码
 站点注册

QQ登录

只需一步,快速开始

查看: 4863|回复: 1

[转帖]PB一个简单函数(String函数)的复杂解释

[复制链接]

[转帖]PB一个简单函数(String函数)的复杂解释

[复制链接]
ehxz

主题

0

回帖

58万

积分

管理员

积分
588531
贡献
在线时间
小时
2007-3-20 11:12:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?站点注册

×
函数作用: 该函数有两种用法,一种是进行类型转换,见语法格式二;另一种是进行类型转换的同时还进行数据格式的转换,见语法格式一。重点是格式一的学习和理解。
函数语法: 格式一:String ( data, { format } )
   格式二:String ( Blob )
data:要进行类型和格式转换的数据;可以是date、DateTime、数字类型、time或者string类型。
format:格式串,用来指定参数data的显示格式。根据参数data的数据类型的不同而不同。当参数data为String类型时,该参数是必需的,否则就没有必要使用该函数了。
返 回 值: String。函数执行成功时返回以字符串方式表示的指定数据,如果data参数的数据类型与format参数指定的格式不匹配、format参数指定的格式无效、或data参数不是前面提到的适宜数据类型时,String()函数返回空字符串("")。
使用说明:format是个用掩码表示的字符串,参数data的类型不同有不同的用法:
对data参数为数值类型的情况来说,格式为:
正数格式;负数格式;零的显示格式;
空的显示格式除第一部分必须提供外,其它部分可以省略。数值型显示格式中使用两个掩码字符:#和0,其中,使用#代表0"9之间的任意数字,0代表每个零都要显示。另外,货币符号($或¥)、百分号(%)、小数点(.)、逗号(,)等字符也可以出现在格式字符串中,但是,除小数点(.)、逗号(,)能够出现在格式字符#和0之间外,其它字符只能放置在格式串的前面或后面,例如,###,###$###是个错误的格式串,¥###,###,###是个正确的格式串。省略format参数时,String()函数使用PowerBuilder缺省格式。注意,如果显示格式有多个部分,各部分之间的分号(;)不能省略。其它字符也可以出现在显示格式字符串中(只能放在格式串的开头和末尾),但它们没有特殊意义,系统只是照原样显示。例如,用显示格式字符串“收入##”格式化数值12时,显示结果为“收入12”。
对data参数为字符串(String)类型的情况来说,format参数的语法格式为:
正常字符串格式;空值时格式
在“正常字符串格式”中,@代表字符串中的任意字符,除此之外的任何字符照原样显示,例如,如果定义了下面的格式:
    (@@)@@@@-@@@@  
则字符串0166767593显示为:  
    (01)6676-7593  
对data参数为日期(Date)类型的情况来说,format参数的语法格式为:
正常日期格式;日期为空值时的格式
日期格式中格式字符意义如下:
d -- 开头不带0的日数(如8)
dd -- 开头带0的日数(如08)
ddd -- 星期的英文缩写(如Mon、Tue)
dddd -- 星期的英文全称(如Monday、Tuesday)
m -- 开头不带0的月份(如8)
mm -- 开头带0的月份(如08)
mmm -- 月份的英文缩写(如Jan、Feb)
mmmm -- 月份的英文全称(如January、February)
yy -- 两位数字表示的年份(如97)
yyyy -- 四位数字表示的年份(如1997)
另外,还可以使用下面的关键字作为日期的显示格式:
[General] Windows系统中定义的短日期格式
[LongDate] Windows系统中定义的长日期格式
[ShortDate] Windows系统中定义的短日期格式
对data参数为时间(Time)类型的情况来说,语法格式为:
正常时间格式;时间为空值时的格式
时间格式中格式字符意义如下:
h -- 开头不带0的小时(比如6)
hh -- 开头带0的小时(比如06)
m -- 开头不带0的分钟(比如6)
mm -- 开头带0的分钟(比如06)
s -- 开头不带0的秒(比如6)
ss -- 开头带0的秒(比如06)
f -- 开头不带0的微秒,可以指定1"6个f,每个f代表一部分微秒
AM/PM -- 用AM/PM显示上、下午时间,12小时制
am/pm -- 用am/pm显示上、下午时间,12小时制
A/P -- 用A/P显示上、下午时间,12小时制
a/p -- 用a/p显示上、下午时间,12小时制
另外,显示格式中还可以使用关键字[Time],它表示按当前Windows系统定义的格式显示时间。  
对data参数为日期时间(DateTime)类型的情况来说,语法格式为:
正常日期时间格式;日期时间为空值时的格式
日期时间类型使用的掩码就是把日期掩码和时间掩码结合起来即可。
代码实例:
例1、下面的语句将指定日期转换为: Jan 1,1998的格式:
string(1998-01-31,”mmmm dd,yyyy”)
例2、下面的语句把DateTime类型的值转换为:Jan 1,1998 6 hrs and 8 min的字符串:
string(DateTime(1998-01-31,06:08:00),’mmmm dd,yyyy h “hrs and” m ”min”’)  
例3、下面的语句把string1设置为0123:
integer li_num = 123  
string ls_temp

ls_temp = string(li_num,”0000;(000);****;空”)  
例4、下面的语句把string1设置为123:
integer li_num = -123
string ls_temp

ls_temp = string(li_num,”000;(000);****;空”)
例5、下面的语句把string1设置为****:
integer li_num = 0  
string ls_temp

ls_temp = string(li_num,”0000;(000);****;空”)
例6、下面的语句把string1设置为空:
integer li_num
string ls_temp

SetNull(li_num)
ls_temp = string(li_num,”0000;(000);****;空”)
共享共进共赢Sharing And Win-win Results
SYBASEBBS - 免责申明1、欢迎访问“SYBASEBBS.COM”,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2、本文内容仅代表作者观点,不代表本站立场,作者自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3、本文内容,包括但不限于源码、文字、图片等,仅供参考。本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容。
4、如本帖侵犯到任何版权问题,请立即告知本站 ,本站将及时删除并致以最深的歉意!客服邮箱:admin@sybasebbs.com
EngleW

主题

0

回帖

195

积分

中级会员

积分
195
贡献
在线时间
小时
2007-5-7 09:36:18 | 显示全部楼层

看書的時候有些馬虎了,謝謝.

"注意,如果显示格式有多个部分,各部分之间的分号(;)不能省略"

能詳細說說下面的原理嗎?好像不對.

例4、下面的语句把string1设置为123:
integer li_num = -123
string ls_temp

ls_temp = string(li_num,”000;(000);****;空”)

例5、下面的语句把string1设置为****:
ls_temp = string(li_num,”0000;(000);****;空”)

例6、下面的语句把string1设置为空:
integer li_num
string ls_temp

SetNull(li_num)
ls_temp = string(li_num,”0000;(000);****;空”)

共享共进共赢Sharing And Win-win Results
您需要登录后才可以回帖 登录 | 站点注册

本版积分规则

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com

QQ|Archiver|PowerBuilder(PB)BBS社区 ( 鲁ICP备2021027222号-1 )

GMT+8, 2024-11-22 01:45 , Processed in 0.028579 second(s), 8 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表