我想問一下,如何在文本中移動數字,例如:01 PIC X(6)值「200030」,如01 B PIC 9(6),我只想提取前4個A.在COBOL這種類型的使用MOVE舉動是被禁止的號碼,我用的是移動移動(1:4)B.如何將文本中的數字移至數字?
回答
它不禁止
你只需要
03 Field-x4 X(4).
03 Field-94 9(4).
Move Field-X4 to Field-94
謝謝......我的舉動是不被禁止的.....我剛剛在我的程序的其他地方發生了一個錯誤... – lamwaiman1988 2011-03-14 03:33:49
您可以使用redefines
在COBOL中進行工會。這是來自內存,但我認爲它應該工作:
01 YEARMONTH.
03 YM-FULL PIC 9(6).
03 FILLER REDEFINES YM-FULL.
05 YM-YEAR PIC 9(4).
05 YM-MONTH PIC 9(2).
01 JUST-YEAR PIC 9(4).
MOVE 200030 TO YM-FULL.
MOVE YM-YEAR TO JUST-YEAR.
我曾經看過一些程序這樣做...可怕...謝謝。 – lamwaiman1988 2011-03-14 04:20:35
@ gunbuster,總是樂於爲人們的問題提供可怕的解決方案:-) – paxdiablo 2011-03-14 05:00:15
似乎對我很好。不知道什麼被認爲是「可怕的」? – 2013-01-28 20:09:23
COBOL提供了幾種方法來完成這種分配。與 開始在你的問題中列出的聲明:
01 A PIC X(6) VALUE "200030".
01 B PIC 9(6).
沿線的聲明另一個數據項:
01 AAAABB.
05 AAAA PIC 9(4).
05 BB PIC 9(2).
的AAAABB
聲明包含兩個基本 數據項的記錄結構(複合數據項) :AAAA
和BB
,它們都是數字。現在你可以做任何的 的以下內容:
MOVE A(1:4) TO B ; DISPLAY B
MOVE A TO AAAABB ; DISPLAY AAAA
DISPLAY BB
顯示的輸出將是:
002000
2000
30
由於AAAABB
是它有一個PIC X
隱式數據類型複合項目。這反過來, 允許您分配幾乎任何數據值,然後通過參考 分解它的各個組件。
當心,分配如:
MOVE A TO AAAA; DISPLAY AAAA
這將通常編譯(用約截斷警告),併產生以下 結果:
0030
最顯著位數已被截斷(可能不是你想要的)。
COBOL在數據操作方面相當靈活。一分 的事情,你應該看出來(防範)非數值 值數值數據項目的處理分配爲:
MOVE "20++30" TO A
MOVE A TO AAAABB
這將「工作」就好了,直到你嘗試做一些事情,如:
ADD +1 TO AAAA
如果你幸運的話它會在這一點炸掉(取決於你的編譯器和 實際非數字)。爲了防止這種類型的錯誤,你應該總是 包括沿線的邏輯:
MOVE A TO AAAABB
IF (AAAA NOT NUMERIC) OR (BB NOT NUMERIC)
PERFORM BAD-DATA-ASSIGNMENT
END-IF
ADD 1 TO AAAA
至於AAAABB的例子,你說它隱含地是一個文本,那麼我們可以在AAAA和BB上做數學事情嗎? – lamwaiman1988 2011-03-15 03:08:38
正確,組合項目是無類型的(隱式文本),但較低級別的元素顯式爲PIC 9(數字)。請注意,這隻適用於因爲這些數字項不被聲明爲壓縮十進制(例如PIC S9(4)PACKED-DECIMAL)或二進制(例如PIC S9(4)BINARY)。與大多數編程語言一樣,COBOL支持多種數字數據類型。 – NealB 2011-03-15 11:42:11
- 1. 如何將pdf字段移至pdfbox?
- 2. 將MAC字體移至PC - 如何?
- 3. 如何將文本文件中的數字讀入python列表中的數字?
- 4. 將文字右移至圖像
- 5. SED將文字移至下一行
- 6. 使用按鈕將文本從文本字段移至文本區
- 7. 如何將脫字號移至文件結尾,無End鍵
- 8. PHP 5至7遷移 - 數字比較
- 9. 將文本字段溢出至多行
- 10. 如何將文本文件中的字符作爲參數
- 11. 如何將int數字從文本文件分配給數組?
- 12. 如何從文本中提取數字?
- 13. 需要幫助將填充數據移至空白字段的字段
- 14. 如何限制Swift中2個文本字段中的數字?
- 15. 如何將數字的數字放入整數數組中?
- 16. 如何將文本轉換爲Excel 2010中的數字?
- 17. 如何將數字更改爲javascript中的文本
- 18. 將焦點移至特定字段
- 19. 計算文本文件中的行數,字數和字符數
- 20. 如何計算混合文本/數字字符串中的數字
- 21. 如何用較大的數字替換文本文件中的數字?
- 22. 熊貓:如何將數字格式的數字轉換爲文本格式?
- 23. Sed將文本移至行首?
- 24. 如何將C#中的文本框中的數字舍入爲2位小數?
- 25. 如何將.txt文件中的數字讀入整數數組?
- 26. GNU SED移除位數字空間中的文本文件
- 27. 如何在文本字段中顯示輸入的數字?
- 28. 如何禁用文本框中的特殊字符和數字?
- 29. 如何將課程信息從本地數據庫移至moodle數據庫?
- 30. 如何將數字從文本框轉換爲int數組?
不,不禁止...... – 2011-03-14 03:01:47
我已經更新的情況下,這種情況下是被禁止的?我有一個錯誤。 – lamwaiman1988 2011-03-14 03:05:45