是將它保存到獲得使用其採取文本長度爲X,並將其存儲到容量n中的變量MOVEL功能從RPG文本串n個字符?
或者獲得第一個n字符的唯一方法是使用SUBST?
問題的背景是我的一個同事從數據庫中獲得前30個字符的長度爲30個字符的字符串正在使用MOVEL作爲長度只有3個字符的變量(如截斷其餘部分)。奇怪的方式,有時接收變量顯示減號字符(' - '),有時不會。所以我認爲使用MOVEL不是一種安全的方式。我想像C中總是以'\ 0'結尾的字符串,你需要使用strcpy函數來獲得拷貝保存,而不是使用=運算符賦值。
誰知道RPG熟悉這個問題?
Hi Buck,稍後會發布。有趣的是,數據庫中有7000條記錄數據。其中一個字段包含30個字符的數據。所有數據都以三位數字開頭(123 xxxxxxx ...,345 yyyyyyyy ...等)。我們聲明瞭兩個變量,x和y。我們運行movel到字段中的每個記錄到一個包含3個字符的變量並保存到x。之後,我們爲每條記錄運行subst到相同的字段並將其保存到y。在7000中有19個記錄movel返回正確的數字,但帶有減號,而subst返回100%正確的數字。 – WishKnew 2012-08-07 16:30:57
MOVEL在字符和數字之間做了明確的轉換。如果您有像JKL xxxxxx而不是123 xxxxxx這樣的字符,那麼JKL將轉換爲數字-123。 MOVEL參考http://publib.boulder.ibm.com/infocenter/iseries/v7r1m0/index.jsp?topic=%2Frzasd%2Fsc092508972。htm解釋了原因。 – 2012-08-07 17:15:17