書式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,大阪,埋埋大阪