2017-08-02 341 views
0

我試圖接受來自jcl的輸入,例如'John Snow'並從我的cobol程序使用JUSTIFIED RIGHT VALUE SPACES運行它將字符串移動到右側,但是我需要刪除額外的空間使用我的cobol pgm。cobol&JCL刪除多餘的空格

例如 我的工作存儲是:

01 ALPHA-ITEM PIC X(50).       
01 MOVE-ITEM REDEFINES ALPHA-ITEM PIC X(50).  
01 NUM-ITEM PIC X(50) JUSTIFIED RIGHT VALUE SPACES. 

,並在我的程序分流

ACCEPT ALPHA-ITEM.   
MOVE MOVE-ITEM TO NUM-ITEM. 
DISPLAY NUM-ITEM. 

它會顯示「斯諾」在屏幕的右側,但是我不知道如何刪除多餘的空間。

+0

定義「刪除多餘的空格」,因爲cobol中的所有圖片子句都有一個設定的長度,所以你不能真的刪除它們。你只是想顯示沒有空格的字段,或者你想要寫出一個文件嗎? – SaggingRufus

+0

我試圖顯示他們沒有空間基本上,如果可能的話。 – Walee

+0

@Walee你的編譯器沒有'FUNCTION TRIM'(你沒有指定編譯器)嗎?注意。在大多數情況下,大多數情況下,大型機+ gnu-cobol標籤都是錯誤的(我聽說有人在64位COBOL的大型機上使用gnucobol,但我想這不是你的用例)。 除了清理標籤和指定編譯器之外:請接受最適合您的答案。 –

回答

2

你需要的東西是這樣的:

01 ALPHA-ITEM PIC X(50).         
01 WS-INDEX PIC 99. 

ACCEPT ALPHA-ITEM 

PERFORM VARYING WS-INDEX 
    FROM 50 BY -1 
    UNTIL ALPHA-ITEM(WS-INDEX:1) NOT EQUAL SPACE 
     OR WS-INDEX < 1 
END-PERFORM 

DISPLAY ALPHA-ITEM(1:WS-INDEX). 

此代碼將接受阿爾法項目,然後運行一個循環來找出數據實際上有多長。然後它會顯示從位置1開始的字段,直到循環中設置的計數器。

+0

'接受阿爾法項目。 將移動項目移動到NUM項目。 顯示NUM-ITEM。 PERFORM VARYING WS-INDEX FROM 50 BY -1 UNTIL NUM-ITEM(WS-INDEX:1)不等於SPACE OR WS-INDEX <1 END-PERFORM DISPLAY NUM-ITEM(1:WS-INDEX) 。 '它仍然顯示空格,由於某種原因,它不是JUSTIFIED RIGHT VALUE SPACES。 – Walee

+1

是的,它會因爲您刪除空格後用空格正確對齊它。問題是,你正在刪除空格,然後當你將它移動到右對齊字段時,它使用空格來對其進行右對齊 – SaggingRufus

+0

基本上,你不能用空格對齊它,然後期望不是前導空格。這樣做沒有像我在我的例子 – SaggingRufus