Chinaunix

标题: 如何在clp中去掉中文字段前端的一大段空格? [打印本页]

作者: 尘    时间: 2006-05-31 16:03
标题: 如何在clp中去掉中文字段前端的一大段空格?
比如 &name = '                                张三 ' ,怎样去掉&name字段前端的一大段空格?

[ 本帖最后由 尘 于 2006-5-31 16:29 编辑 ]
作者: pl421    时间: 2006-05-31 17:09
原帖由 于 2006-5-31 16:03 发表
比如 &name = '                                张三 ' ,怎样去掉&name字段前端的一大段空格?



例如:如果有两个字符“A[ ][ ]”和“B”:

1)如果用*CAT 的结果:“A[ ][ ]B”;
2)如果用*BCAT的结果:“AB”;
3)如果用*TCAT的结果:“A[ ]B”;
作者: 尘    时间: 2006-05-31 17:23
原帖由 pl421 于 2006-5-31 17:09 发表



例如:如果有两个字符“A[ ][ ]”和“B”:

1)如果用*CAT 的结果:“A[ ][ ]B”;
2)如果用*BCAT的结果:“AB”;
3)如果用*TCAT的结果:“A[ ]B”;



俺的问题是如何去掉“[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]A”前端的空格!!!
作者: 尘    时间: 2006-05-31 17:26
原帖由 pl421 于 2006-5-31 17:09 发表



例如:如果有两个字符“A[ ][ ]”和“B”:

1)如果用*CAT 的结果:“A[ ][ ]B”;
2)如果用*BCAT的结果:“AB”;
3)如果用*TCAT的结果:“A[ ]B”;



另外就你所说的,好像错了吧,应该是:

例如:如果有两个字符“A[ ][ ]”和“B”:

1)如果用*CAT 的结果:“A[ ][ ]B”;
2)如果用*BCAT的结果:“A[ ]B”;
3)如果用*TCAT的结果:“AB”;
作者: xuguopeng    时间: 2006-05-31 17:35
就是想实现%TRIM的功能呗

我觉得CLP够戗能实现此功能..........找找API吧

试试 QCLSCAN

[ 本帖最后由 xuguopeng 于 2006-5-31 17:37 编辑 ]
作者: sunokla    时间: 2006-05-31 17:37
原帖由 于 2006-5-31 17:23 发表



俺的问题是如何去掉“[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]A”前端的空格!!!

都能形成“BA”的字串了, 再%sst一下不可以吗?
作者: xuguopeng    时间: 2006-05-31 17:39
用QCLSCAN扫描下空格吧

或者用个笨方法,先用固定值连接一下那个变量,然后在把固定值去掉...........
作者: 尘    时间: 2006-05-31 18:02
原帖由 xuguopeng 于 2006-5-31 17:39 发表
用QCLSCAN扫描下空格吧

或者用个笨方法,先用固定值连接一下那个变量,然后在把固定值去掉...........



我知道的是:用*cat 或* bcat或*tcat 连接a和b两个字段,是无法做到去掉b的前端的空格,只能去掉a字段的后端的空格,所以这个笨方法也行不通
作者: xuguopeng    时间: 2006-05-31 20:50
要是实在不行 就写个小RPG处理一下吧 不过有点大炮打蚊子的感觉。。。。。。。
作者: 尘    时间: 2006-06-01 12:56
真没其它方法了吗?
作者: xf001    时间: 2006-06-01 15:40
转帖,不知道能不能帮上点忙儿。

  1. PGM                                                      
  2.                                                                        
  3.              DCL        VAR(&VARIABLE1) TYPE(*CHAR) LEN(7)            
  4.              DCL        VAR(&VARIABLE2) TYPE(*CHAR) LEN(7)            
  5.              DCL        VAR(&X)         TYPE(*DEC)  LEN(3)            
  6.              DCL        VAR(&Y)         TYPE(*DEC)  LEN(3)            
  7.                                                                        
  8.              CHGVAR     VAR(&X) VALUE(1)                              
  9.              CHGVAR     VAR(&Y) VALUE(1)                              
  10.              CHGVAR     VAR(&VARIABLE1) VALUE(' 1111 ')               
  11.              CHGVAR     VAR(&VARIABLE2) VALUE(' ')                     
  12.                                                                        
  13. LOOP:       IF         COND(%SST(&VARIABLE1 &X 1) *NE ' ') THEN(DO)   
  14.              CHGVAR     VAR(%SST(&VARIABLE2 &Y 1)) +                  
  15.                           VALUE(%SST(&VARIABLE1 &X 1))                 
  16.              CHGVAR     VAR(&Y) VALUE(&Y + 1)                          
  17.                                                                        
  18.              ENDDO                                                     
  19.                                                                        
  20.              CHGVAR     VAR(&X) VALUE(&X + 1)                          
  21.              IF         COND(&X *NE 8) THEN(GOTO CMDLBL(LOOP))         
  22.                                                                        
  23.                                                                        
  24. END:        ENDPGM                  
复制代码

作者: sunokla    时间: 2006-06-01 17:16
好办法。收藏了。
作者: xuguopeng    时间: 2006-06-01 17:45
恩 不错 这个程序是把数组的功能用CLP表现出来了~

可以说是融会贯通了~
作者: 尘    时间: 2006-06-02 09:29
原帖由 xf001 于 2006-6-1 15:40 发表
转帖,不知道能不能帮上点忙儿。
[CODE]
PGM                                                      
                                                                       
             DCL         ...


这个方法可行。谢谢xf001

这样就可以做到中英文模糊查询了。

此主题可以结束了。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2