PB8关于数字转换成汉字大写的的问题

standlyduke 2008-11-18 04:29:12
我现在想在PB8里,把数字的大写转换成汉字,希望哪位大侠帮帮忙,我用的是PB8.03,谢谢各位
...全文
214 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
standlyduke 2008-11-18
  • 打赏
  • 举报
回复
谢谢
liubocy 2008-11-18
  • 打赏
  • 举报
回复

//**************************************************
//函数 f_numberupper
//参数 adec 类型decimal, rmb 类型boolean
// adec 金额,rmb数字是否大写
//返回 汉字金额
//**************************************************

string hz[15]
string money[2]
string val, num2, num
string str = '', str_tmp
int i, lpos, il_i

IF NOT rmb THEN
hz[1] = '一'
hz[2] = '二'
hz[3] = '三'
hz[4] = '四'
hz[5] = '五'
hz[6] = '六'
hz[7] = '七'
hz[8] = '八'
hz[9] = '九'
hz[10] = '十'
hz[11] = '百'
hz[12] = '千'
hz[13] = '万'
hz[14] = '亿'
hz[15] = '点'
ELSE
hz[1] = '壹'
hz[2] = '贰'
hz[3] = '叁'
hz[4] = '肆'
hz[5] = '伍'
hz[6] = '陆'
hz[7] = '柒'
hz[8] = '捌'
hz[9] = '玖'
hz[10] = '拾'
hz[11] = '佰'
hz[12] = '仟'
hz[13] = '万'
hz[14] = '亿'
hz[15] = '元'
money[1] = '角'
money[2] = '分'
END IF

num = string( adec, "0.00" )
val = num
DO WHILE left( val, 1 ) = '0'
val = right( val, len(val) - 1 )
loop

IF pos( val, '.' ) <> 0 THEN
num = left(val, pos(val,'.') - 1 )
num2 = mid(val, pos(val,'.') + 1 )
END IF

fOR i = 1 to len(num)
str_tmp = mid( num, i, 1 )
CHOOSE CASE str_tmp
CASE '1'
str = str + hz[1]
CASE '2'
str = str + hz[2]
CASE '3'
str = str + hz[3]
CASE '4'
str = str + hz[4]
CASE '5'
str = str + hz[5]
CASE '6'
str = str + hz[6]
CASE '7'
str = str + hz[7]
CASE '8'
str = str + hz[8]
CASE '9'
str = str + hz[9]
CASE '0'
str = str + ''
END CHOOSE
IF str_tmp='0' THEN
IF right( str, 1 ) = '零' OR str = '' OR i = len(num) THEN
str = str
ELSE
str = str + '零'
END IF
ELSE
CHOOSE CASE len(num) - i + 1
CASE 1
str = str
CASE 2,6,10
str = str + hz[10]
CASE 3,7,11
str = str + hz[11]
CASE 4,8,12
str = str + hz[12]
CASE 5,13
str = str + hz[13]
CASE 9
str = str + '亿'
END CHOOSE
END IF

IF len(num) -i +1 = 9 AND mid(num ,len(num) - 8,1) = '0' THEN
IF right(str,1) = '零' THEN str = left( str, lenw(str) - 1 )
str = str + '亿'
END IF
IF len(num) - i + 1 = 5 AND mid(num ,len(num) - 4 , 1 ) = '0' THEN
IF right(str,1)='零' THEN str = left( str, lenw(str) - 1 )
IF left( right( '0000' + num, 8 ), 4 ) = '0000' THEN
str = str
ELSE
str = str + '万'
END IF
END IF
NEXT

IF right(str,1) = '零' THEN
str = left( str, lenw(str) - 1 )
END IF
IF left(str,2) = '一十' OR left(str,2) = '壹拾' THEN str = right( str, lenw(str) - 1 )

lpos = pos(str,'亿万')
IF lpos <> 0 THEN
str = left( str , lpos + 1 ) + mid( str, lpos + 4 )
END IF


IF pos(val,'.') =0 THEN
IF rmb THEN
RETURN str + hz[15]
ELSE
RETURN str
END IF
END IF

str = str + hz[15] //点OR 元


il_i = len(num2)

IF rmb AND il_I > 2 THEN
il_i = 2
END IF

fOR i = 1 to il_i
str_tmp = mid(num2,i,1)
CHOOSE CASE str_tmp
CASE '1'
str = str + hz[1]
CASE '2'
str = str + hz[2]
CASE '3'
str = str + hz[3]
CASE '4'
str = str + hz[4]
CASE '5'
str = str + hz[5]
CASE '6'
str = str + hz[6]
CASE '7'
str = str + hz[7]
CASE '8'
str = str + hz[8]
CASE '9'
str = str + hz[9]
CASE '0'
str = str + '零'
END CHOOSE
IF rmb AND right( str, 2 ) <> '零' THEN str = str + money[i]
NEXT
DO WHILE right( str, 1 ) = '零'
str = left( str, lenw(str) - 2 )
loop
IF rmb AND num2 = "00" THEN str = str +'整'
RETURN str

使用:
MessageBox( '', f_numberupper( 2001.15, True ) )
返回类型 函数名 ( 参数类型 参数1,参数类型 参数2,...) Long HelpMe() 输出帮助文件到当前目录。 string GetWindowHandleForExe ( string exename) 说明:根据EXE文件名,返回该程序的当前窗口句柄,出错或无窗口返回-1 long HideTaskBar ( Boolean yesno ) 说明:隐藏系统任务栏,参数 yesno 为逻辑型,为真隐藏,为假恢复 long SetWinDiaph ( long winhd,int diaph ) 说明:设置窗口的透明度,参数说明:winhd 要设置透明的窗口的句柄; diaph 窗口的透明度,为0 完全透明 255 不透明。 long HideDesktopIcon( Boolean yesno ) 说明:隐藏桌面图标 参数 yesno 为真隐藏,为假显示 String GetWinTC (Long winhd,Int TorC) 说明:取指定窗口的标题或类名,参数说明:winhd 窗口句柄;TorC 为0 取窗口类名,为1取窗口标题 Boolean IsExeRun( String exename ) 说明:判断 exename 是否在运行。在运行返回真,没在运行返回假。 String GetComputerNameOrIP( String iporname ) 说明:返回指定的计算机名或IP地址,参数 iporname 输入为计算机名则返回该计算机的IP,输入为IP地址则返回该IP的计算机名,输入空返回本机名,输入字符"0" 返回本机IP。 String GetMac( String Iporanme ) 说明:返回指定计算机网卡的MAC值,参数:iporname 可以输入IP地址或计算机名,输入为空,返回本机网卡MAC值。 String GetHDDInfo( Int Hddn) 说明:返回指定硬盘的信息。 参数 hddn 指定硬盘,0 为磁盘0,1为磁盘1... 返回的硬盘各项信息中间用“;”间隔,顺序如下: 型号;版本号;序列号;容量;缓存大小;每磁道扇区数;磁头数;柱面数 String GetBiosMsg() 说明:返回本机主板的BIOS信息,返回的BIOS信息各项中间用“;”间隔,顺序如下: 名称;制造商;版权信息;日期;序列号;OEM信息 String GetCPUInfo() 说明:返回本的CPU信息,返回的CPU信息各项中间用“;”间隔,顺序如下:制造商;名称;时钟频率;描述;一级缓存大小;二级缓存大小;序列号;数据位宽度 String GetCuuentEXE() 说明:返回正在调用本DLL文件的程序名称。 Boolean CDiskIn() 说明:检测光驱是否有光盘,返回真有,返回假没有 Long OpenCDrom( Boolean yesno ) 说明:弹出光驱或关闭光驱,参数 yesno 为真弹出,为假 关闭。 Long MouseClick(int x,int y,int flag) 说明:模拟鼠标点击,参数:x: 点击鼠标的X坐标; y: y坐标;flag: 0,左键单击;1,左键双击;2,右键单击;3右键双击 Long KeySim( int key1,int key2,int key3 ) 说明:模拟按键,参数:key1:按键1;key2:按键2;key3:按键3 ,key2,key3 不用时,输入0。 String GetAreaCode( string gbk ) 说明:返回汉字的区位码。 Long DisWinKey( Boolean yesno ) 说明:屏蔽WIN键,参数:yesno 为真时屏蔽,为假不屏蔽。 Long GetWHDOnPoint() 说明:取鼠标所在窗口的句柄。 Boolean SetScrRat(int width,int height) 说明:设置屏幕分辨率 String GetCDDrive() 说明:返回光驱的盘符 Boolean AddRTMenu( String ext,String title,String comd ) 说明:添加右键菜单,参数: ext:文件扩展名;title:菜单标题;comd:命令行 Boolean DelRTMenu( String ext,String title ) 说明:删除右键菜单,参数: ext:文件扩展名;title:菜单标题 Boolean GetPotRGB(ref int r,ref int g,ref int b) 说明:取得当前鼠标处颜色值RGB,分别存放到变量(R,G,B)中。 Boolean TestPort( int port,string svrIP ) 说明:检测指定机器的端口是否开放,参数:port:要检测的端口;svrip 指定机器的IP或机器名。 Long TestPing( string serip,int outime ) 说明:机器通信检测,能正常通信返回响应时间,否则返回-1,参数:serip 指定机器IP或名称;outtime 最长等待时间,单位秒 Long SetFileModifyTime( String filena,DateTime ftime ) 说明:设置文件的修改时间,参数:filena 文件名;ftime 指定日期时间。 String ToOtcHex( int source,int OtcHex ) 说明:将十进制的整数转换成十六进制或八进制,参数:source 要转换的十进制整数;OtcHex : 输入8转换成八进制数,其它转换为十六进制数。 String ToUPNum( dec source,Boolean UD ) 说明:将双精度的小数转换为大写,参数:source 要转换的双精度小数;UD 为真是为简体(千),为假时为繁体(仟), String ToRMB( dec source,Boolean UD ) 说明:将双精度的小数转换为金额,参数:source 要转换的双精度小数;UD 为真是为简体(千),为假时为繁体(仟), Boolean SetSYSTime( Datetime dt ) 说明:设置系统的时间,参数:dt 指定的系统时间。 Integer GetDaysOfMth( int year,int month ) 说明:取某年某月的天数, 参数:year:为年份,month:为月份。 Boolean CloseSYS( int mode,Boolean yn ) 说明:关闭Windows系统,参数:mode : 1.关机 2.重启 3.注销 4.睡眠 5.休眠; yn: 为真强制执行,为假等待其它程序正常结束后执行。
章节详细,涵盖大学文献检索课件资料 第一章 信息检索的基本知识 第一节 信息、知识、文献、情报 信息: 应用文字、数据和信号形式通过一定的传递和处理,来表现各种相互联系的客观事物在运动变化中所具有特征性的内容的总称。 知识: 人们通过实践对客观事物极其运动过成和规律的认识。是人脑对客观事物传来的信息进行加工的过程。 文献: 是记录有知识的一切载体。也是将人类的知识用文字、符号、图形、声频、视频、信号等记录方式在甲骨、竹棉 纸张、感光材料、磁性材料等载体上记录下来而形成的。 情报:当文献中记录的知识一旦传递 到用户并为其所利用时,文献中被利用到的这部分知识就转化为情报。 关系:信息(知识(情报,文献)) 第二节 信息检索的目的和作用 1.通过科技文献检索能够打开人类知识宝库的钥匙。 2.通过科技文献检索能使科技工作者及时把握科技发展的动态和趋势。 3.通过科技文献检索能有助于开拓知识面,改善知识结构。 4.通过科技文献检索可避免科研重复,加快科研工作的进程. 5.通过科技文献检索能加强科技交流,促进技术合作。 第三节 科技文献的特点及类型 1.什么是科技文献? 含有知识内容的信息载体。 2.构成文献的三要素:知识内容、物质载体、记录手段。 3.文献的基本功能:存储知识信息、传播知识信息。 4. 科技文献的特点: 形式多、文种多。数量多、增长快。交叉重复。失效快、寿命短。 5.科技文献的类型: 1:按文献的载体形式划分:印刷型、缩微型、声像型、电子型。 2:按文献的出版形式划分:科技图书、 科技期刊、 科技报告、会议文献、 专利文献、 学位论文、标准文献、 政府出版物、 产品样本、技术档案。 3:按文献被加工处理的深度划分:零次文献、一次文献、二次文献、三次文献。 第四节 信息检索及类型 信息检索:是指将文献信息按一定的方式组织、存储起来,并针对用户的需要查找出所需信息的过程。 信息检索的类型: 1.文献检索 2.数据检索 3.事项检索 一、什么是检索工具?用以存储、报道和查找文献信息的工具。 二、检索工具的特征:1.有丰富的文献记录。2.每条记录都必须具有各种检索标识。 3.全部描述记录科学地组织成一个有机的整体。4.能够提供多种检索途径。 三、信息检索工具的职能: 1.报道职能。 2.存储职能。3.检索职能。 四、检索工具的类型: 1.按检索方法划分:手工、机械 2.按收录的文献范围划分:综合性、 专业性、 单一性 3.按出版形式划分: 期刊式检索工具,单卷式检索工具,附录式检索工具,卡片式检索工具, 缩微制品、磁带、磁盘。 4.按收录文献对象和揭示文献方式划分:目录、题录、文摘(指示性、报道性)、 索引 五、检索工具的结构: 目次表、使用说明、正文部分、索引、附录部分。 第二节 信息检索语言 信息检索语言是用来描述文献特征和表达信息提问,沟通信息存储人员和信息检索者双方思想的一种人工语言。 信息检索语言的分类:按描述文献特征划分; • 描述文献外部特征的检索语言:书名、刊名、篇名等著者名。号码(如报告号、专利号、序号等)文献类型,文献出版事项 • 描述文献内容特征的检索语言: 分类语言 主题语言(关键词语言、标题词语言、叙词语言) 第三节 信息检索原理及步骤 一、信息检索原理: 文献信息检索实际上包括文献的存储和文献的检索两个相互依存的过程。 二、信息检索的步骤: 1.分析研究课题: 2.选择检索工具: 3.确定检索途径:分类途径、主题途径、题名途径、著作途径、号码途径、其他途径。 4. 选择检索方法:常用法(顺查法、倒查法、抽查法)追溯法 综合法(或循环法) 5.查找文献线索:6.索取原始文献。 第三章 专利文献及其检索 第一节 专利的基本知识  什么是专利? 所谓专利是指一项技术性的创造发明在一定的年限和国家范围内受法律保护的技术专有权利。  专利的类型(发明专利、实用新型专利、外观设计专利)  取得专利的条件(新颖性、实用性、创造性)  专利的审批程序 我国专利的审批程序:(发明专利的审批程序)专利申请, 初步审查(形式审查),公布专利申请(早期公开),实质审查,审定并公告 , 公众异议 , 授予专利权,专利权无效请求 ,专利权终止 (实用新型专利和外观设计专利的审批程序)专利申请,初步审查(形式审查),审定并公告,公众异议,授予专利权 第二节 专利文献  专利文献的特点:1,新颖及时 2,技术可靠、详尽 3,内容广泛 4,格式统一 5,从复出版量大  中国专利文献的符号系统: 89年前 89年

740

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧