2016/10/06(木) [n年前の日記]
#1 [gimp][scheme] GIMPのScript-fuで文字列のゼロ埋め
GIMP の Script-fu というか TinyScheme で、数値から文字列に変換したものを桁揃え? ゼロ埋め? ゼロパディング? とにかくそういう感じの処理ができるか試したり。
GIMP起動後、フィルタ → Script-fu → Script-fuコンソール、を起動して、以下のように打ち込みながら動作確認。
要するに…。
ということで、できそうだなと。
一行で書くと、こうだろうか。
GIMP起動後、フィルタ → Script-fu → Script-fuコンソール、を起動して、以下のように打ち込みながら動作確認。
> (define cnt 3) cnt > cnt 3 > (number->string cnt) "3" > (string-append "0000" (number->string cnt)) "00003" > (define str (string-append "0000" (number->string cnt))) str > str "00003" > (substring str (- (string-length str) 3) (string-length str)) "003" > (substring str (- (string-length str) 4) (string-length str)) "0003" > (substring str (- (string-length str) 2) (string-length str)) "03"
要するに…。
- (number->string 数値) で、数値から文字列に変換。
- (string-append 文字列1 文字列2 文字列3) で、文字列を連結。
- (string-length 文字列) で、文字列の長さを取得。
- (substring 文字列 開始位置 終了位置) で、部分文字列(文字列の一部分)を取得。
ということで、できそうだなと。
一行で書くと、こうだろうか。
> (let* ((s (string-append "0000" (number->string cnt))) (n (string-length s))) (substring s (- n 2) n)) "03"
[ ツッコむ ]
以上です。