Posts tagged ‘自由自在squeakプログラミング’

2012/07/01

[Smalltalk]自由自在 Squeakプログラミング PDF版

2004年に株式会社ソフト・リサーチ・センターより出版された「自由自在Squeakプログラミング」のPDF版を下記にて公開しています。

http://swikis.ddo.jp/squeak/13

実はしばらく前から公開していたのですが、内容がある程度固まるまでアナウンスを控えていました。
JiyuuJizaiSqueakProgramming-all.pdf がすべての内容を含むものになっています。
章ごとにダウンロードも可能です。また、サンプルコードも最新のSqueakに対応させました。

Smalltalkの学習にお役立て下さい。

2007/10/28

[自由自在Squeak][FileMan] サンプルコードをまとめてBOM付きに

自由自在Squeakプログラミング」は、今から3年前に出た本です。当時はSqueakは3.6で、BOMなしUTF-8をソースとして読む仕様になっていました。現在はBOMつきを読むようになっています。

そのため当時のサンプルコードを最近のSqueak(3.8以降)で読ませるようにするにはBOMをつけるという変換を行わなければなりません。これを我らがFileManで行ったという話です。

まずはBOMを付ける処理です。SampleCodes以下のサブディレクトリ群以下にあるファイル全てについて、BOMを先頭に追加します。以前のファイルを消さずに、ファイル名に'.bom'を付けています。

dir := './SampleCodes' asDirectoryEntry.
bom := {16rEF. 16rBB. 16rBF} asByteArray.
dirs directoriesDo: [:dir |
dir filesDo: [:file |
binContents := file binaryContents.
dir binaryAt: (file name, '.bom') put: (bom, binContents).
]
].

どうやら変換がうまくいったようなので、'.bom'以外のファイルを全て消します。
rootDir := './SampleCodes' asDirectoryEntry.
rootDir allFilesDo: [:file |
(file extension endsWith: '.bom') ifFalse: [file delete]
].

次にファイル名をもとに戻します。
rootDir := './SampleCodes' asDirectoryEntry.
rootDir allFilesDo: [:file |
file rename: (file name copyReplaceAll: '.bom' with: '')
].

ということで、Squeakであればファイル操作も簡単にできますよ。

変換したサンプルは自由自在SqueakプログラミングサポートWikiに置いてあります。

記事を見てコメントする | 友だちに紹介する