久し振りにIconを使いました。Windows用の9.3です。
wiのコンソールに、風つかいさんのスクリプトをコピーして、コンパイル、実行
形式に変換。実行。
C:\TEMP\Soundspell>dicref
english.dic を読込中です。
開始:21:12:19
********************************************************************************
********************************************************************************
********************************************************************************
*****************
終了:21:12:21
english.dic の読込を終わりました。
257650 語ありました。
参照テストを開始します。
開始:21:12:21
heavy: OK
rain: OK
yveah: NG
niar: NG
終了:21:12:21
参照テストを終わりました。
WindowsXP, Pentium4 1.6GHz, 256MBで2秒。まあ、妥当なところですか。
WiコンソールはSJIS日本語も正常に表示されますね。文字化けは起こらない。
FAQを読むとIconは文字は8bitで取り扱うことは変わっていないようですが、・
・・
On Wed, 20 Aug 2003 00:10:48 +0900
Hiroshi Shinohara <hshinoh@...> さんwrote:
> Iconミニ講座1(辞書読込)
> 今回は、辞書の読み込みです。 辞書と言っても、単語がずらっと並んでいる
> テキストファイルですので、テキストファイルの読込プログラムと変わりはあり
> ません。 後々、時間が問題に気になりそうなので、現在時刻を書き出すように
> しました。 &clockは、現在時刻を hh:mm:ss形式で保持している組込キーワード
> です。 最初、動作モニター用の表示は、エラー出力へ出していましたが、
> アップの都合上、標準出力へ出すように修正してあります。
>
> -----^ DICREF.ICN ( date:03-08-19 time:23:32 ) -------------<cut here
> ####################
> # 辞書読込・辞書参照の習作。
> ####################
> # dicref.icn Rev.1.0 2003/08/19 windy 風つかい H.S.
> ####################
> # Usage dicref 文字列
> # english.dicは、スペルチェック用の英単語が順に並んだもの。
> # このプログラムのテストでは、DD SOFT SoundMixSpellコンポーネント
> # Ver 0.3.0 に 同梱の辞書ファイルを使用。
> # This file is in the public domain.
>
> procedure main()
> # 辞書読込
> dic := "english.dic" # 辞書ファイル名
> dir := open(dic) | stop(dic," が見つかりません") # 辞書ファイルオープン
> S_dic := set() # 辞書格納 set生成
> # write(&errout,dic," を読込中です。") # 辞書読み込み
> write(dic," を読込中です。") # 辞書読み込み
> # write(&errout,"開始:",&clock)
> write("開始:",&clock)
> n := 0 # 辞書行数カウンタ
>
> while word := read(dir) do { # 辞書を1行ずつ読み込んで、
> insert(S_dic,word) # setに登録
> n +:= 1
> if n % 1000 = 0 then writes(&errout,"*") # 読み込み状況表示
> }
>
> close(dir) # 辞書ファイルクローズ
> write(&errout)
> # write(&errout,"終了:",&clock)
> write("終了:",&clock)
> # write(&errout,dic," の読込を終わりました。\n",*S_dic," 語ありました。")
> write(dic," の読込を終わりました。\n",*S_dic," 語ありました。")
>
> # 辞書参照テスト
> L := ["heavy","rain","yveah","niar"] # テストデータ
> # write(&errout,"参照テストを開始します。")
> write("参照テストを開始します。")
> # write(&errout,"開始:",&clock)
> write("開始:",&clock)
> every s := !L do { # テストデータを順次読み出し
> writes(s)
> if member(S_dic,s) then write(": OK") # 辞書にあるかチェック
> else write(": NG")
> }
>
> # write(&errout,"終了:",&clock)
> write("終了:",&clock)
> # write(&errout,"参照テストを終わりました。")
> write("参照テストを終わりました。")
>
> end
> -----$ DICREF.ICN ( lines:53 words:154 ) -------------------<cut here
>
> dicref >aaa としますと、こんな結果になります。
> -----^ AAA ( date:03-08-19 time:23:35 ) --------------------<cut here
> english.dic を読込中です。
> 開始:23:35:43
> 終了:23:35:51
> english.dic の読込を終わりました。
> 257650 語ありました。
> 参照テストを開始します。
> 開始:23:35:51
> heavy: OK
> rain: OK
> yveah: NG
> niar: NG
> 終了:23:35:51
> 参照テストを終わりました。
> -----$ AAA ( lines:13 words:20 ) ---------------------------<cut here
>
> 私のPCでは、辞書読込・setへの格納に、8秒ほどかかっています。
> CPU Celeronで、クロック 733M、メモリーは多分32M、MS-DOS版
> の Iconを、Windows-MEのDOS窓で動作させています。
>
> 風つかい(hshinoh@...)
> IconのWWWは、 http://www.cs.arizona.edu/icon/
> UniconのWWWは、http://unicon.sourceforge.net/index.html
> BGM: Battery's not included /森山威男&杉本喜代志
藤岡 和夫
FGALTS@...
kazuf@...
TS Networkのために http://homepage1.nifty.com/kazuf/