2011-11-10 27 views
4

RPGLEに文字の長さと型変数を直接返す簡単な方法はありますか?私がここで話している長さは、D仕様で指定された長さではありません。文字列内の意味のある文字の実際の数について話しています。文字型変数の長さを50文字と定義し、 'Hello world!'という値が割り当てられているとしたら、必要な長さは 'H'から '!'までの12です。先頭と末尾の空白は無視されます。これを行う簡単な方法はありますか?RPGLEで文字型変数の長さを取得する方法は?

答えて

11

%len(%trimr(field))を使用すると、末尾のスペースを削除してから長さを確認することができます。それはあなたがしようとしているフィールドのように見えます(左の)先頭のスペースを

  • %trimlトリム(右側)末尾のスペースを
  • %trimrトリムスペースを先頭と末尾
  • %trimトリム
8

の長さを見つけるには、固定文字フィールド、たとえば

 dmsg    s    40a 

eval msg = 'こんにちは、世界!' msgに 'Hello、World!'は含まれていません。 - それは 'こんにちは、世界!つまり、それは40文字にそれを埋め込むための空白の山があります。これは、固定長フィールドが定義どおりに機能する方法です。

%trimr()はこれらと非常によく動作し、トリミングする文字を定義するオプションのパラメータもあります。一方

、あなたが

 dmsg    s    40a Varying 

可変長フィールドを使用していたし、その後のeval MSG =やった場合は、「こんにちは、世界を!」フィールドには実際に割り当てられた文字のみが含まれます。この場合、%trimr()は必要ありません。 %len()は、フィールドの現在の長さを返します。

関連する問題