書式1: fixlen(,長さ,位置,padding文字)
書式2: fixlenw(,長さ,位置,padding文字)
を固定の長さの文字列に変換する。
が指定の長さに満たない場合は、 右詰もしくは左詰めで指定した文字を埋め込む。 左右の選択では、「位置」パラメータに"L"もしくは"R"を指定する。 埋め込む文字は「padding文字」パラメータに任意の文字を指定する。 また、
の長さが、指定した固定長の長さを超えた場合、 右詰の場合は先頭側が、左詰めの場合は末尾側の文字列が削られることに注意する。
マルチバイト文字を対象とした固定長変換についてはfixlenw関数を利用する。
str項目を5文字の固定長文字列に変換する。 5文字に満たない文字列は右詰("R")で"#"を埋める。
$ more dat1.csv id,str 1,abc 2,123 3, 4,1234567 $ mcal c='fixlen($s{str},5,"R","#")' a=rsl i=dat1.csv o=rsl1.csv #END# kgcal a=rsl c=fixlen($s{str},5,"R","#") i=dat1.csv o=rsl1.csv $ more rsl1.csv id,str,rsl 1,abc,##abc 2,123,##123 3,,##### 4,1234567,34567
左詰("L")で"#"を埋める。
$ mcal c='fixlen($s{str},5,"L","#")' a=rsl i=dat1.csv o=rsl2.csv #END# kgcal a=rsl c=fixlen($s{str},5,"L","#") i=dat1.csv o=rsl2.csv $ more rsl2.csv id,str,rsl 1,abc,abc## 2,123,123## 3,,##### 4,1234567,12345
$ more dat2.csv id,str 1,こんにちは 2,大阪 $ mcal c='fixlenw($s{str},4,"R","埋")' a=rsl i=dat2.csv o=rsl3.csv #END# kgcal a=rsl c=fixlenw($s{str},4,"R","埋") i=dat2.csv o=rsl3.csv $ more rsl3.csv id,str,rsl 1,こんにちは,んにちは 2,大阪,埋埋大阪