ABAP 判断某个或者某段字符串是否为汉字

1,在Non-Unicode系统中,一个汉字占2个单位长度,可以用CHARLEN的返回值判断是否汉字。
DATA: len TYPE i,
str TYPE c LENGTH 20.
str = 'Hello哈哈'.
len = CHARLEN( str )."1,代表英文
len = CHARLEN( str+4 )."1,代表英文
len = CHARLEN( str+5 )."2,代表汉字
len = CHARLEN( str+6 )."2,代表汉字
2,在Unicode系统中,汉字与英文一样占1个单位长度,可以调用函数NLS_VISUAL_CHARLEN来判断。
DATA: c1 type char1,
vislen type i.
c1 = 'A'.
*c1 = '哈'.
CALL FUNCTION 'NLS_VISUAL_CHARLEN'
EXPORTING
str = c1
IMPORTING
len_visual = vislen.
IF vislen = 1.
WRITE: '英文'.
ELSE.
WRITE: '汉字'.
ENDIF.


转载自:http://blog.chinaunix.net/uid-150062-id-2780087.html
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ABAP ,可以使用函数模块 GUI_GET_FILE_ATTRIBUTES 来获取文件的属性信息,包括文件类型、是否为目录等。以下是一个示例代码段,演示如何判断文件是否为文件夹: DATA: lv_filename TYPE string VALUE '/tmp/myfolder', lt_attributes TYPE STANDARD TABLE OF file_attr, ls_attr TYPE file_attr. CALL FUNCTION 'GUI_GET_FILE_ATTRIBUTES' EXPORTING file_name = lv_filename TABLES file_attributes = lt_attributes EXCEPTIONS file_open_error = 1 file_read_error = 2 no_batch = 3 gui_refuse_filetransfer = 4 invalid_type = 5 no_authority = 6 unknown_error = 7 header_not_allowed = 8 separator_not_allowed = 9 filesize_not_allowed = 10 header_too_long = 11 dp_error_create = 12 dp_error_send = 13 dp_error_write = 14 unknown_dp_error = 15 access_denied = 16 dp_out_of_memory = 17 disk_full = 18 dp_timeout = 19 file_not_found = 20 dataprovider_exception = 21 control_flush_error = 22. IF sy-subrc EQ 0 AND lt_attributes IS NOT INITIAL. READ TABLE lt_attributes INTO ls_attr INDEX 1. IF ls_attr-is_dir EQ abap_true. WRITE: / 'The file is a directory.'. ELSE. WRITE: / 'The file is not a directory.'. ENDIF. ELSE. WRITE: / 'An error occurred while getting file attributes.'. ENDIF. 在上面的示例,文件名被存储在变量 lv_filename 函数 GUI_GET_FILE_ATTRIBUTES 被调用来获取文件属性信息。如果文件属性表(lt_attributes)不为空,则第一个条目(索引为 1)被读取到 ls_attr 。最后,根据属性 is_dir 的值来判断文件是否为文件夹。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值