IT関連

AS400/IBMi シフト文字を含めてバイト数を計算する

投稿日:2017年11月14日 更新日:

AS400いわゆるIBMiには、シフト文字という意味不明な文字がある。

普通「アイウエオ」なら10バイトのはずだが、AS400では、12バイトになる。これは先頭と最後が2バイト文字の場合は、前後にそれぞれ1バイトづつ足されるからだ。他にも発生条件があるのでまとめると、

発生条件は、

・先頭で2バイト文字の場合は+1バイト
・最後で2バイト文字の場合は+1バイト
・文字列で1バイト文字と2バイト文字が隣になれば+1バイト

になる。

「aありがとう」は、13バイト
「あaりがとう」は、15バイト
になる。

当然のことながら、

「arigatou」は、8バイト

だ。

それゆえ、こんなロジックを考えてみた。文字列を1つづつ見て、バイト数を計算するのだ。これしか考えられないのでこうしている。

いいやり方があったら教えてほしい。

 

スポンサーリンク




スポンサーリンク




-IT関連
-, , ,

執筆者:


comment

Your email address will not be published. Required fields are marked *

関連記事

AS400/IBMi RPG COMP命令

社内プログラムでCOMPを多用しているのがあったので、どういう動きをするのか調べてみた。   試しに

を実行してみた。 フラ …

AS400/IBMi DB2とOracleとのSQL違いまとめ

なんだこりゃ。 勉強のためと思ってOracle12Cを一生懸命勉強したのにAS400で使えない命令があるなんて聞いてねーぞ。 ということで、少しだけ調べてみました。 間違いもあるかもしれませんので、ご …

キャノン えらんでマイプリントが出ない

昨日設定していてハマったのだが、キャノンの複合機でえらんでマイプリントを設定していて、いくらPCで印刷をかけてもうんともすんとも言わないといった話。 複合機の機種は忌まわしきC5250Fという名前。 …

AS400/IBMi ファイルの簡単編集 UPDDTA

STRDFUなど使って事細かく設定DFUファイルを作らなくても、深く考えずに編集するだけなら UPDDTA ライブラリ名/ファイル名 を使えば、すぐ編集画面に飛ぶ。編集方法はDFUと同じ。

AS400/IBMi デバグ・デバッグ STRISDBの気づき

自分備忘録です。使い方よく解りません。逆に教えてほしいくらいです。 なんでそんなことするの?バカなの?死ぬの?そう思った方は教えて下さい(笑) 他にもこんな便利な機能使ってないの?というのも大歓迎です …

Adsense広告




文字で検索

人気記事

なぜだか人気記事

読んでほしい順に