Yuguiã§ã™ã€‚
Array#packã«ãŠã„ã¦ã€"M"ã‚„"m"ã¯å‡ºåŠ›ã®1è¡Œã®é•·ã•ã‚’ã€
"P"ã¯å¯¾å¿œã™ã‚‹æ–‡å—列(ãƒã‚¤ãƒˆåˆ—)ã®é•·ã•ã‚’表ã—ã¾ã™ã€‚
ã«ã‚‚ã‹ã‹ã‚らãšã€"M*"ã‚„“m*”, "P*"を指定ã™ã‚‹ã¨ã‚¢ã‚¹ã‚¿ãƒªã‚¹ã‚¯ãŒä»–ã®ãƒ•ã‚©ãƒ¼ãƒžãƒƒ
トã«ãŠã‘ã‚‹å ´åˆåŒã˜ãä½™ã£ã¦ã„ã‚‹é…列è¦ç´ ã®å€‹æ•°ã«å±•é–‹ã•ã‚Œã¾ã™ã€‚
çµæžœã¨ã—ã¦ã€ä½•ã ã‹å¦™ãªæŒ™å‹•ã«ãªã‚Šã¾ã™ã€‚
["abc"5, “d”, “e”, “f”].pack('m’)
#=> “YWJj\nYWJj\nYWJj\nYWJj\nYWJj\n”
["abc"5, “d”, “e”, “f”, “g”, “h”].pack('m’)
#=> “YWJjYWJj\nYWJjYWJj\nYWJj\n”
[“a”].pack(“P*”) #=> “\220\a9\001”
[“a”, “b”].pack(“P*”) #=> ArgumentError: too short buffer for P(1 for 2)
ã“ã®3ã¤ã®ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã§ã¯ã‚¢ã‚¹ã‚¿ãƒªã‚¹ã‚¯ã¯å˜ã«ç„¡è¦–ã™ã‚‹ã®ãŒè‰¯ã„ã®ã§ã¯ãªã„ã‹
ã¨æ€ã„ã¾ã—ã¦ã€æ·»ä»˜ã®ã‚ˆã†ãªä¿®æ£ã‚’書ã„ã¦ã¿ã¾ã—ãŸã€‚ã„ã‹ãŒã§ã—ょã†?
e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B
In message “Re: [ruby-dev:37289] ‘*’ parameter in pack format ‘M’, ‘m’,
or ‘P’ acts oddly”
on Sat, 6 Dec 2008 21:29:36 +0900, “Yugui (Yuki S.)”
[email protected] writes:
|Yuguie$B$G$9!#e(B
|
|Array#packe$B$K$$$$F!"e(B"M"e$B$de(B"m"e$B$O=PNO$Ne(B1e$B9T$ND9$5$r!"e(B
|"P"e$B$OBP1~$9$kJ8;zNse(B(e$B%P%$%HNse(B)e$B$ND9$5$rI=$7$^$9!#e(B
|
|e$B$K$b$+$+$o$i$:!"e(B"M"e$B$de(B"m*“, “P*“e$B$r;XDj$9$k$H%”%9%?%j%9%/$,B>$N%U%)!<%^%Ce(B
|e$B%H$K$$1$k>l9gF1$8$/M>$C$F$$$kG[NsMWAG$N8D?t$KE83+$5$l$^$9!#e(B
|
|e$B7k2L$H$7$F!"2?$@$+L/$J5sF0$K$J$j$^$9!#e(B
|["abc"5, “d”, “e”, “f”].pack('m’)
| #=> “YWJj\nYWJj\nYWJj\nYWJj\nYWJj\n”
|["abc"5, “d”, “e”, “f”, “g”, “h”].pack('m’)
| #=> “YWJjYWJj\nYWJjYWJj\nYWJj\n”
|
|[“a”].pack("P”) #=> “\220\a9\001”
|[“a”, “b”].pack(“P*”) #=> ArgumentError: too short buffer for P(1 for 2)
|
|e$B$3$Ne(B3e$B$D$N%U%)!<%^%C%H$G$O%”%9%?%j%9%/$OC1$KL5;k$9$k$N$,NI$$$N$G$O$J$$$+e(B
|e$B$H;W$$$^$7$F!"E:IU$N$h$&$J=$@5$r=q$$$F$_$^$7$?!#$$$+$,$G$7$g$&e(B?
e$B$$$$$s$8$c$J$$$G$7$g$&$+!#%3%_%C%H$7$F$/$@$5$$!#e(B