Format 1: length()
Format 2: lengthw()
Compute the length of character string. Use lengthw function to initialize wide character in . Note that length of NULL value is 0.
$ more dat1.csv id,str 1,abc 2,3.1415 3, 4,hello world! $ mcal c='length($s{str})' a=rsl i=dat1.csv o=rsl1.csv #END# kgcal a=rsl c=length($s{str}) i=dat1.csv o=rsl1.csv $ more rsl1.csv id,str,rsl 1,abc,3 2,3.1415,6 3,,0 4,hello world!,12
The following example uses Japanese in UTF-8 encoding. Each UTF-8 Japanese character is encoded in 3 bytes, thus, the length function returns the number of bytes rather than the number of Japanese characters.
$ more dat2.csv id,str 1,こんにちは 2,大阪 $ mcal c='length($s{str})' a=rsl i=dat2.csv o=rsl2.csv #END# kgcal a=rsl c=length($s{str}) i=dat2.csv o=rsl2.csv $ more rsl2.csv id,str,rsl 1,こんにちは,15 2,大阪,6
The lengthw function converts each wide characters internally into multibyte character for computation.
$ mcal c='lengthw($s{str})' a=rsl i=dat2.csv o=rsl3.csv #END# kgcal a=rsl c=lengthw($s{str}) i=dat2.csv o=rsl3.csv $ more rsl3.csv id,str,rsl 1,こんにちは,15 2,大阪,6