ページの先頭です。
ここから本文です。

よくあるご質問(サポートFAQ)

【HolonEnterprise】全角半角が混在する文字データ型変数からの文字列取得について

質問内容

全角半角が混在するCHAR型の変数から、通常の場合は先頭の30バイトを切り出すが、30~31バイト目に日本語が来るようなケースでは29バイト目までの文字列を取得するようにしたい。

回答内容

組み込み関数「文字列の取り出し関数(&SUBSTR)」と 「日本語検査関数(&JISZEN)」を使用することで可能です。

【実装例】
 A CHAR(31) ; 全角半角が混在するCHAR型の変数
 B CHAR(30) ; Aからの取得結果の格納先
 C CHAR(2) ; Aから2バイト単位で格納
 I SHORT ; 文字位置カウンタ

 FOR I := 0 TO 29
  C := &SUBSTR( A, I, 2 ) ; 変数AのIバイト目から2バイトをCに格納
   ; &SUBSTR()の第2引数は、0オリジンで指定
  IF &JISZEN( C ) = 1 ; 変数Cが2バイト文字か?
   THEN ; 2バイト文字
    IF I >= 29 ; 30バイト目か?
     THEN
      &SUBSTR( B, I, 1 ) := ' ' ; 30バイト目に半角空白を格納
     ELSE
      &SUBSTR( B, I, 2 ) := C ; Aから取得した2バイトをコピー
     I := I + 1 ; 文字位置カウンタを2バイト分進める
   ELSE ; 2バイト文字でない
    &SUBSTR( B, I, 1 ) := &SUBSTR( C, 0, 1 ) ; Aから取得した最初の1バイトをコピー


【確認済みのバージョン】HolonEnterprise 全てのバージョン
【確認済みの対象OS】すべてのOS
【カテゴリー】開発/設計(性能チューニング)

製品名カテゴリ

HolonEnterprise

  • コンテンツID: 3150110802
  • 公開日: 2016年01月27日
  • 最終更新日:2016年01月27日

アンケート

サポート情報充実のためアンケートにご協力をお願いいたします。



コメント欄:
ここからページ共通メニューです。 ページ共通メニューを読み飛ばす。