ども、お久しぶりです。 DOS上で使える辞書ソフトというと、EBというのとDICというのが定番だと思 います。このうち、EBの方は、昔のバージョンはCD-ROMに直接アクセスして いたので、HDDなどにコピーした辞書は使えなかったのですが、もしかしたら 今のバージョンでは変わっているかもしれません。 私はDICを常用していますが、こちらは辞書のファイルを指定してアクセスで きるとドキュメントに書いてありますので、多分、メモリカードにコピーし た辞書でも大丈夫ではないかと思います。私自身は直接CD-ROMにアクセスし ているので、本当にうまく行くかどうかは不明です。 やはり、ここの情報が最も役に立ちそう。↓ http://www.ayati.com/LX/ebepwing.htm あと、こんなところも。 http://www.vector.co.jp/vpack/filearea/dos/util/disk/cd/index.html http://openlab.jp/edict/links.html
K.TAM さん、ちょっとでおくれましたが> Vzでいまでも動かせる辞書のセットってあるのでしょうか。> 光の辞書はDOS版のものを使っていますが、広辞苑や英和辞書の> 大きなものを使いたいです。私はLXで広辞苑4版を使用してます。使用ソフトは DICDOS.EXE です。 広辞苑はsqueeze などで圧縮してあります。 1999/07/26 10:10 39,098,424 START DIC.BAT で運用しています。「DIC けんさくご」という感じ。 バッチの中身は @echo off rem DICDOS -f 辞書ファイル -c 60 -l 画面行数 -p -N 検索語 rem DICDOS -f 辞書ファイル -L c:\tmp\dic.log -c 60 -N 検索語 rem DICDOS -h -f a:\ut\dic\start -c 70 -l 8 -p %1 rem --- LX用設定 --- DICDOS -f a:\ut\dic\start -L c:\tmp\dic.log -c 70 -N %1 こんなです。間違ってデスクトップ用バッチを実行すると C: を探しに 行ったままハングするようです。(^^; DICDOS で検索すると色々情報がありますが、肝心のDICDOS はniftyの中 だけだったようですね。 http://www.joy.hi-ho.ne.jp/pside/a/en_psion_data.html ここのサイトから引用すると、> DICDOSは現在、Niftyでのみの公開となっているようです。> DICDOSはDicというアプリケーションのの改良版なのだそうです。> Dicのver0.23はVectorにて公開されているで、NiftyでのDICDOS入手が> 困難な場合も、かわりにこちらが利用できるようです。(未確認)ということらしいです。
>また,文市さんのまとめページは凄い!素晴らしい!
> 文市さんのサイトの情報からでした。感謝感謝です。
> 一週間夜な夜なチャレンジしましたが、まだ読めていません。
>
> 今日、文市さんのサイトをよく読んでみたら
> >EPWING規約も新しいバージョンだと、HONMONでなくHONMON2という
> >圧縮された形式のためEBR.EXMやDIC.EXE、squeezeやbookinfoで
> >も使えなかったりします
> あちゃー 私のはHONMON2だったりします。
>
> で、なにやらebzipを使うと圧縮を解凍できるようなので、これから
> 探しに行ってきます。 連休中にできればうれしいです。
> あとは、これをVZでどう使うかですね。
> 基本的には,ブロックモードで起動すれば自動検索とか,メニューで辞書を> 選択できるようにするとか,あるいは入力窓を出して文字コードで判断すると> いったところでしょうか。>> 部品とか作るのをお手伝いするのは楽しいので,ぜひぜひ。(^^)甘えちゃいます。 ブロックモードなら、検索文字取り込み。辞書選択。コンソール出力。画面下部に表示。 似たような辞書があるので辞書選択は手動でかまわない。という感じです。 webのなかでH岡さんが作ったと思われるマクロの紹介がありましたので、 使ってみたがうまく動きません。 まだコンソールに出力できるだけです。 ===== 000DIC.def ======= * M ; H岡さんの複合検索のZマクロ(FHPPCのMES7)らしい。 89 ^\ "電子ブック版辞典検索" i-, k-, ;k=0/1:FEP ON/OFFで窓オープン :L (s)>?{ >B #[ >C #[ #[ } >L :C #[ (s)?{ i+, #[ #95 } ;i=1:console open :B &j(0) !01 &j(-1) (r<0)?. (pm.0=='C')?{ p"kojien", >A } ;▲1 (pm.0=='G')?{ p"gendai", >A } ;▲2 (pm.0=='K')?{ p"kanjigen", >A } ;▲3 (pm.0=='E')?{ p"chujiten", >A } ;▲4 (pm.0=='X')?{ p"daijirin", k+, >A } ;▲5 ;↑辞書に合わせて環境を設定 :A &Sp(pa,"c:\vz\%s.000",p) ;★pa=出力ファイル名 使わず (k)??{ &j(0) ((mg.-9)[) &j(10) fr+, } ;※FEP ON で窓オープン->原状に復帰 mx+, &g("$p 辞典:検索文字列",30) mx-, ;検索文字列入力->pw &Cr (k)??{ ((mg.-9)]) } (r<0)?. ss2, #E &?("c:\ep\dic -f c:\ep\%s",p) ;★DIC.EXEで検索 &?(" %s ",pw) #m ;検索文字列&出力ファイル指定 ; &?(" -N %s > %s",pw,pa) ;検索文字列&出力ファイル指定 #95 ;追加 ;##[ &d &s #R &?("%s",pa) #m #_ ;出力ファイル・オープン (cp==2)?{ #C &m(19) (2){ &b(0)&w(20) } ;空ファイルのチェック &d (i)?#C . } (i)?{ #W #C #W } #^ #< #n &?("検索文字列 =【%s】",pw) #< ;冒頭に検索文字列を表示 &d &b(0) * P 01 " 電子BOOK ",22,5 ; 5は下の辞書数 "C 広辞苑第5販" "G 現代用語" "K 漢字源" "E 英和・和英中辞典" "X 予備" *
> ;↑辞書に合わせて環境を設定まず,ここ↑にある全角空白を削除するか,行頭に「;」を入れてください。 マクロ中に文字列が存在すると,カスタマイズエラーになります。現在エラー が出なくても,バグの芽は摘んでおくに限ります。(豆は成りませんし) さて,既にコンソールに表示されているということですので,標準出力先を ファイルにしてやればよいと思います。 ; &?(" -N %s > %s",pw,pa) ;検索文字列&出力ファイル指定 このコメントアウトされた行で出力ファイルを指定しているようですので, この行を生かしたらよいのではないでしょうか。pa には,既にラベル A で… :A &Sp(pa,"c:\vz\%s.000",p) ;★pa=出力ファイル名 使わず …出力ファイル名を格納していますが,c ドライブに vz ディレクトリが指 定されていますので,この辺は環境に合わせて調整が必要ですね。 まず,オリジナルに近い状態でファイルへの出力ができるかどうか確認して, K.TAM さんの仕様を詰めてゆくのが手っ取り早いでしょうか。 H岡教授のオリジナルにないのが,ブロックモードの場合の処理ということ になりますが,これは LX に保存されたテキストを読んでいるときにだけ有効 な機能なので,電子辞書として使うという用途なら不要かもしれませんね。
> > ;↑辞書に合わせて環境を設定
> まず,ここ↑にある全角空白を削除するか,行頭に「;」を入れてくださ
> ブロックモードは必要ですね。イメージはHIKARU3.defです。
> XPのDOS窓もなんかふかふかしてやりにくいです。←わかりますこの感じ
> おもしろい話題が続いていますが、HIKARU3.DEFから派生した
> モンゴル語用マクロがあるのを発見しました。
> 昨日は K.TAMさんのWeblogを追加していました。
> 自動取得・検索できる HIKARU3.def を改造するのが楽ですね。 検索プログラ
> ムに渡す部分のコマンドラインと辞書を選択するメニューをなんとかすれば,
> あとは細部で調整くらいで済むのではないでしょうか。
> H.Konno さんのサイトから kVZ の v08-Q-8差分をいただいてきて高橋版に
> 当てると,カーソルのふかふか感が改善されると思います。
今日も祝日の代休です。こう休みが続くと仕事が心配で気が休まらないです。> Shift起動、文字タイプによる自動判別をそぎ落とし、シンプルにするのが> 難しいです。降参です。敢えてシンプルにするのであれば,改造するよりも新造した方が楽ですね。 Hikaru3.def を見ていないので,細かいインターフェイスが異なるかもしれま せんが,こんな感じでできるのではないでしょうか。 参照ファイルをコンソールのままにするか,ファイルに出力するか決まって いないのでオプションのサンプルを入れ,両方出来るようにしてあります。 ----------^ DICTAM.DEF ( date:2007-05-09 time:09:26 ) ------< cut here = DicTam.def v0.10 = sample *macro #if 0 SHIFT起動無し、ブロックしてたら辞書選択に入って実行。 ブロック無しなら、文字入力して辞書選択。実行。です。 コマンドは 「 DIC.EXE -f 辞書名 さがす文字 」です 出力はHIKARU.defと同じ下半分に検索結果。 です。 Shift起動、文字タイプによる自動判別をそぎ落とし、シンプルにする #endif 1 ^\ "辞書選択検索" ?. ;; ---- SHIFT起動無し、ブロックしてたら辞書選択に入って実行。 (mb==2)?{ mp[, ps[=pa, #G ;ブロックをpaに取得 ps], mp], >m ;辞書選択メニュー表示 } ;; ---- ブロック無しなら、文字入力して辞書選択。実行。です。 mx+, pw[=pa, ;paに取得 &g("文字入力") &Cr ;入力を促してpaに取得 pw], mx-, ;mxは窓でマクロを実行させない (r|1+1)??. ;[ESC]/[CR]で終了 ;; ---- メニューで辞書選択 :m !01 (r<0)?. ;キャンセル操作で終了 (r)>?{ ;メニューの戻り値で分岐 >k ;"K 広辞苑" >e ;"E 英和辞書" >g ;"G 現代用語" >c ;"C 漢字林" } . :k d="広辞苑", >s ;;★辞書ファイル名に変更 :e d="英和辞書", >s ;;★辞書ファイル名に変更 :g d="現代用語", >s ;;★辞書ファイル名に変更 :c d="漢字林", >s ;;★辞書ファイル名に変更 ;; ---- 辞書検索 DIC.EXE -f 辞書名 さがす文字 ; 出力ファイルを指定するなら outfile オプションを有効にするサンプル :s #E ;コマンドラインへ降りる &?("Dic.exe -f %s %s",d,pa) ; o="out.tmp", ;#OUTFILE+ ; &?(" > %s",o) ;#OUTFILE+ #m #[ ;実行して編集ファイルに戻る ;; ---- 検索結果の表示 a=id, ;編集ファイルのID &s ;サイレント &#Y(0) ;分割モードのリセット #X ;#OUTFILE- ; #R &?("%s",o) #m ;#OUTFILE+ #W ;参照ファイルを裏に配置 &#Y(2) ;上下分割モード &#T(-a) ;確実に編集ファイルに戻す &d #] *popup menu 1 "辞書選択",12,4 "K 広辞苑" "E 英和辞書" "G 現代用語" "C 漢字林" * [Variables] a active(file id) d dic(name) o outfile(name) [Buffers] pa as ps/pw [History] 2007/05/09 0.10 sample [notes] 広辞苑、英和辞書、現代用語、漢字林の辞書ファイル名を置換する必要あり ----------$ DICTAM.DEF ( lines:74 ) ------------------------< cut here ファイル名やショートカットキーは,お好みで変更してください。 自分の環境でテストできないので,何か忘れているようで不安だな〜。 あ,コマンドラインをサイレントにしてないや。まぁ,今のところは実行過程 を見られた方がいいので,後で #E の前に ss2, を入れればいいですね。
> 今日も祝日の代休です。こう休みが続くと仕事が心配で気が休まらないです。
仕様を変更しましたので、#ifに書きました。出力部分はHIKARU.defをみて 書き加えてみましたが、素人の療法ですので??です。 文字の自動取り込みができるとよいのですが、HIKARU.defをみても解読が 難しいです。以下本日までの結果です。皆さん添削お願いします。 = DicTam.def v0.10 = sample date:2007-05-09 *macro #if 0 ブロックしてたら辞書選択に入って実行。そうでなければ ★new カーソルが文字の上なら文字をブロックして辞書選択 未完 ★new カーソルが空欄なら、文字入力画面から辞書選択にいき実行 コマンドは「 DIC.EXE -f 辞書名 さがす文字 」 出力は HIKARU.def と同じ下半分に検索結果。Console 出力位置調整。 2画面から開始するとうまくいかない #endif 1 ^\ "辞書選択検索" ?. ;; ---- SHIFT起動無し、ブロックしてたら辞書選択に入って実行。 a=id,e=wt, ;編集ファイルのID (mb-2)? { (ct)>? {>C,>C,>C,>A,>A,>A} } >B ;0:EOF 1:改行 2:00h〜20h、全角スペース ;3:半角記号('$$','_'以外)全角記号(8152h〜815Bh以外) ;4:ひらがな 5:上記以外の全角文字 6:上記以外の半角文字 ;; ---- 文字をひろってブロック :A >C ;#b #f >B ;★ 文字をうまく拾えないので >Cに ;(mb==2)?{ ;文字境界ブロックモード :B { ;文字境界ブロックモード mp[, ps[=pa, #G ;ブロックをpaに取得 ps], mp], >m ;辞書選択メニュー表示 } ;; ---- ブロック無しなら、文字入力して辞書選択。実行。です。 :C mx+, pw[=pa, ;paに取得 &g("文字入力 ") &Cr ;入力を促してpaに取得 pw], mx-, ;mxは窓でマクロを実行させない (r|1+1)??. ;[ESC]/[CR]で終了 ;; ---- メニューで辞書選択 :m !01 (r<0)?. ;キャンセル操作で終了 (r)>?{ ;メニューの戻り値で分岐 >k ;"K 広辞苑" >e ;"E 英和辞書" >g ;"G 現代用語" >c ;"C 漢字林" } . :k d="kojien", >s ;;★辞書ファイル名に変更 :e d="eiwa", >s ;;★辞書ファイル名に変更 :g d="gendai", >s ;;★辞書ファイル名に変更 :c d="kanjigen", >s ;;★辞書ファイル名に変更 ;; ---- 辞書検索 DIC.EXE -f 辞書名 さがす文字 ; 出力ファイルを指定するなら outfile オプションを有効にするサンプル :s #E ;コマンドラインへ降りる &?("c:\ep\Dic.exe -f c:\ep\%s %s",d,pa) ;★DIC.EXEと辞書の場所 ; o="out.tmp", ;#OUTFILE+ ; &?(" > %s",o) ;#OUTFILE+ ;#m #[ ;実行して編集ファイルに戻る #m ;実行して b=id, ;コンソールファイルのID #95 #U #< ;DOS画面参照 直前のカーソル位置に we[=80, &#c(2) we], ;2行ページダウン &#T(-a) ;確実に編集ファイルに戻す ;; ---- 検索結果の表示 ;a=id, ;編集ファイルのID &s ;サイレント &#Y(0) ;分割モードのリセット #X ;#OUTFILE- ; #R &?("%s",o) #m ;#OUTFILE+ #W ;参照ファイルを裏に配置 &#Y(2) ;上下分割モード &#T(-a) ;確実に編集ファイルに戻す ;&d #] :P &m(" [ESC]:quit 【%s】$"%s$"",d,pa) &d #] ; メッセージ表示 b.0-, Ep[=b.1+, mx-, &p mx+, Ep], ; キー待ち (r-#[ || s)? {&o(r) >P} ; [ESC] 以外なら反復 ss3, &#T(0) #C &m("") ; 検索結果クローズ :Q #W &#Y(e) ;画面切替 初期の画面分割モード :R b.0=b.1+, mp-, &d #] sr], mx], ; 再表示 ;2画面で開始するとおかしくなる ;:Q &#Y(d) (d%2)?? #W &#T(a) #W &#T(t) ky=y, ; 画面配置復帰 *popup menu 1 "辞書選択",12,4 "K 広辞苑" "E 英和辞書" "G 現代用語" "C 漢字源" * [Variables] a active(file id) d dic(name) o outfile(name) [Buffers] pa as ps/pw [History] 2007/05/09 0.10 sample [notes] 広辞苑、英和辞書、現代用語、漢字林の辞書ファイル名を置換する必要あり ----------$ DICTAM.DEF ( lines:74 ) ------------------------< cut here
> 1 ^\ "辞書選択検索"
> ?.
> ;; ---- SHIFT起動無し、ブロックしてたら辞書選択に入って実行。
> 「図表モード」って、項目がどこにもありません。整形済み かな??? 1 ^\ "辞書選択検索" ?. ;; ---- SHIFT起動無し、ブロックしてたら辞書選択に入って実行。 a=id,e=wt, ;編集ファイルのID ↑整形済みでインデントが効けばOKですね
一挙に Hikaru3.def 程度のレベルまで持ってゆくのは難しいことなので, ひとつひとつ解決していきましょう。 まずダメ出しから。 (ct)>?{ } の条件分岐ですが,{ } の中で使用できるのは単純なジャンプ 命令と(式)のように括弧でくくった式と思ってください。 (ct)>? {>C, >C, >C, >A,>A,>A} ←ct の値に応じた実行位置は, 0 1 2 3 4 5 6 これ以降は実行されない。"," は不要です。> ;(mb==2)?{ ;文字境界ブロックモード> :B { ;文字境界ブロックモードえーと,ここで対になっている { } は要らないですね。 ■文字を拾う 文字を拾う,とは自動的にブロックするということになりますね。で,自動 的というのはとても難しいことです。例えば英単語のように空白で区切られて いるものであれば比較的簡単な部類ですが,その他の文字の場合は簡単にはい きません。むしろ「できない」と考えた方がよいと思います。ですから,次の ような仕様の方がよいように思いますが,いかがでしょう。 ◆文字ブロックでない場合の処理 ・カーソル位置が英字: 自動取得して英和辞典を引く ・カーソル位置が漢字: 候補1:漢字の部分だけを自動取得して辞書選択 候補2:カーソル位置以降をブロック位置を伸ばしながら半自動取得 候補3:漢字の部分だけを自動取得して漢和辞典を引く(強引?) ・それ以外の文字: 候補1:カーソル位置以降を文字タイプが変化するまで自動取得 候補2:カーソル位置以降をブロック位置を伸ばしながら半自動取得 候補3:入力窓を出して入力(空白類と同じ) 半自動取得というのは,ブロック状態で入力待ちにし,カーソルキーや他の 特定のキーに反応してブロック範囲を新調するみたいなことです。> #m ;実行して> b=id, ;コンソールファイルのIDこの時点ではまだコンソールファイルは開かれていませんから,無意味です。 なお,テキスト id を記憶しておくのはテキスト番号が変化しても確実に表示 させるためで,テキスト番号の固定しているコンソールファイルの id を記憶 する必要はありません。また,変数 b はラベル P で別の用途で使われていま すね。これは危険です。> #95 #U #< ;DOS画面参照 直前のカーソル位置に> we[=80, &#c(2) we], ;2行ページダウンこのあたりは,コンソールファイルをオープンしたときに表示される位置の 調整を意図しているのだと思います。そういう場合はプロンプトの表示なりを 目印にしてカーソル行を確定し,カーソル行位置 ky に 0(ウィンドウの上端) を指定してやるとよいでしょう。> :P &m(" [ESC]:quit 【%s】$"%s$"",d,pa) &d #] ; メッセージ表示> b.0-, Ep[=b.1+, mx-, &p mx+, Ep], ; キー待ち> (r-#[ || s)? {&o(r) >P} ; [ESC] 以外なら反復単に [ESC] とそれ以外のキーを判別するだけなら,&a() を使った方がよい かもしれません。あくまでも好みの問題ですが,ちょっと大仰に感じます。> ss3, &#T(0) #C &m("") ; 検索結果クローズss=3とは? ss=2でよいでしょう。> ;:Q &#Y(d) (d%2)?? #W &#T(a) #W &#T(t) ky=y, ; 画面配置復帰コメントアウトしてありますが,d は辞書ファイル名の文字列先頭を指して いる変数ですから,このまま実行すると危険です。それから t あるいは y と いう変数も未定義ですので,結果は保証されません。この場合は丸められるだ けで済むと思いますが,未定義の変数を引数に使うと危険な場合もあると思い ます。 色々調整が必要のようですが,ぼちぼちといきましょうか。 欲張らずにひとつずつ解決するのがむしろ早道かと思います。
チャチャというか、ちょっと割り込み。> ■文字を拾うこの辺は使い勝手に直結します。 と言いつつ、私が自分で作ると、#59一発で終わらせていたりするのですが。> ◆文字ブロックでない場合の処理私の場合は、ここで言うところの半自動取得は必要性を感じません。 逆に、ちょっと欲しい機能は、標準の#59だと単語の語頭にカーソルを置かな いとその単語をきちんと取得してくれませんが、それの拡張というか、カー ソルが単語のどこにあってもその単語をきちんと取得してくれる、というも の。つまり、カーソル位置が英字または漢字の場合、ctが同一の間は前方に 遡って、それから#59を発行する、というようにすればいいのかな。この程度 であれば、自分のマクロも改造できそう。> ・それ以外の文字:> 候補1:カーソル位置以降を文字タイプが変化するまで自動取得> 候補2:カーソル位置以降をブロック位置を伸ばしながら半自動取得> 候補3:入力窓を出して入力(空白類と同じ)候補4:(ct<4)?{#d}の繰り返し
> 私の場合は、ここで言うところの半自動取得は必要性を感じません。
> 逆に、ちょっと欲しい機能は、標準の#59だと単語の語頭にカーソルを置かな
> いとその単語をきちんと取得してくれませんが、それの拡張というか、カー
> ソルが単語のどこにあってもその単語をきちんと取得してくれる、というも
> の。つまり、カーソル位置が英字または漢字の場合、ctが同一の間は前方に
> 遡って、それから#59を発行する、というようにすればいいのかな。この程度
> であれば、自分のマクロも改造できそう。
> 候補4:(ct<4)?{#d}の繰り返し
> ただ,思うに,わたしは榊原さんの「いきなりブロック」を組み込んであって,> 簡単にブロックすることに慣れているだけ。自分の使い勝手がすべてではない私はそういう便利な環境を使っているわけではないんですけどね。 それでも必要性を感じないというのは、私の要求水準が低いということなの でしょう。> > 候補4:(ct<4)?{#d}の繰り返し> ひらがな==4,漢字類==5,英数字==6なので, (ct>3)?#d では?ひらがなについては確かに考慮が足りないかもしれません。 ただ、不等号の向きについては、私には自分で書いた方が良いと思っていま す。例えば、英文の単語と単語の間の空白にカーソルがある状態で辞書引き マクロを起動した場合にはどういう挙動がいいのか、という事を考えたので した。
> 単語と単語の間の空白にカーソルがある状態で辞書引きマクロを起動した場合
榊原さんの「いきなりブロック」は方向キー関連に割り当ることによって, カーソルの移動する方向にいきなりブロック選択されるという秀逸なマクロで す。キーアサインは会議室に書き込まれたものと異なります。ご自分の環境に 合わせてカスタマイズしてください。残念なことに,HP200LX では下方向しか 効かないのですが, 幸い [F10] に隣接してカーソルキーがあるので問題はあ りませんでした。 ;---- ikinari_block by Tomo 39 @[<--] "" &00 #s 39 @[-->] "" &00 #d 39 @[UP] "" &00 #e 39 @[DOWN] "" &00 #x ;only down for LX 0: ?. (mb)?. #b 榊原さんは,これが初めて作ったマクロとおっしゃってました。その非凡な 才能が素人にも納得できるという超絶的に便利な小品です。お奨めします。
> 私は英単語の上で起動すると、その英単語だけを> ブロックするものを想像していました。そういうのがこの手のマクロは要求レベルによってすごく簡単なものから大規模なものまで ありますね。でも,英単語の上でという限定つきなら比較的簡単だと思います。 簡単にすませようとすると,英字以外では何もさせない仕様。 1 ^\ "" ?. (ct==6)?{ #d #a mb-, #b (-1){ #d (ct!=6)?{} } } 場合によっては,こんな簡易なものでも充分役に立つと思います。 わたしの場合は,英単語を書いた直後の行末で起動することを考え, 1 ^\ "" ?. (ct<3)?#a ?{ ct[, #s (ct!=0]) #d ??#a } mb-, #b (-1){ ct[, #d (ct!=0])?{} } ちょっとくどいのを考えていたりします。
あんまり簡単で情けないものだったので,多少の工夫を加えて英単語だけで なく同一文字タイプの連続をブロックするようにしてみました。 一応のエラーチェックもしていますが,同一の文字タイプが延々と続くよう なテキストは想定していません。コメントも細かく付けておきました。 ----------^ ATBLOCK.DEF ( date:2007-05-19 time:05:20 ) -----< cut here = atblock = by H_ear #if 0 単語のどこにあってもその1語をブロック 空白類上にカーソルがあるときは直前の語をブロック 英数字以外の場合は同じ文字タイプ(ct)の連続する範囲をブロック 空白類や同じ文字タイプが延々と続く場所での実行は想定していない #endif * mad for vz! 1 @B "" ?. (mb)?. ;ブロックモードでは何もしない &s c[, :a (ct<3)?{ ;カーソル位置が空白類なら #s (r)?>z ;直前の文字へ移動(ファイル先頭で終了) >a ;空白類が続けば繰り返す } #b ;ブロックモードに入る c+, &> ;直後の文字タイプ境界へ移動 #B ;ブロック開始位置に戻る c-, &> ;語の直前の文字タイプ境界に移動 (r)??#d ;ファイルの先頭でなければ右の字へ移動 #B ;ブロックマーク位置を交換 :z c], &d 0: ct[, &o(c+#s) (ct-0]||r)?{(r).} ;文字タイプ境界かカーソル停止なら終了 >^ * ----------$ ATBLOCK.DEF ( lines:26 ) -----------------------< cut here
> 切り取って使ってみました。いいですね、これ。
> 辞書検索マクロで一度はあきらめた文字自動取得ですが、
> これを半自動で搭載したいですね。
めざらさん 添削ありがとです。> まずダメ出しから。うへ 了解しました。(ct)>?{ } の条件分岐はわからんのに まねをして、はずかしいです。> ■文字を拾う文字を自動で選択するのは難しそうですね。いまの4つの辞書構成は 単純に英字だから英和辞書というわけでもなく、英字でも広辞苑の場合も あれば、現代用語の場合もあります。何度もマクロを動かしてみた、今の ブロックなら辞書選択、そうでなければ文字入力の仕様にしましょう。> > b=id, ;コンソールファイルのID> この時点ではまだコンソールファイルは開かれていませんから,&tで動かしてわかりました。 b=id を消しても同じ動きをします。 変数bもダブっていましたね。> > #95 #U #< ;DOS画面参照 直前のカーソル位置に> > we[=80, &#c(2) we], ;2行ページダウンこれで問題なければこれにします。以下は「かん」を広辞苑で引いた ケースですが -------------------------------------------- c:\ep\Dic.exe -f c:\ep\kojien かん <<< 75項目 >> かん【巫】 かんなぎ。東宮年中行事六月「御―相そひて」 かん【神】 以下・・・・延々と75項目続く -------------------------------------------- と、プロンプトが出ないケースがあるのと、>>などとプロンプトに 似たものがでてきます。#U で最初に戻れるようです。> :P &m(" [ESC]:quit 【%s】$"%s$"",d,pa) &d #] ; メッセージ表示> b.0-, Ep[=b.1+, mx-, &p mx+, Ep], ; キー待ち> (r-#[ || s)? {&o(r) >P} ; [ESC] 以外なら反復この最後の終了は、単に [ESC] とそれ以外のキーの判別だけでなく、 検索結果をスクロールして見たい。見終わったら{ESC}でコンソール 画面を閉じて元の画面状態にしたいので、入れてみました。 &a()のサンプルで試しましたが、この要望のようにはできませんでした。> 色々調整が必要のようですが,ぼちぼちといきましょうか。> 欲張らずにひとつずつ解決するのがむしろ早道かと思います。はい、よろしくお願いします。 ところで、最後の b.0-, はどういう意味なのでしょう。stkhelp.defで 調べてもわかりません。自分で写しておいて?なのです。すみません。 ------------------ 本日の DicTam,def ---------------- = DicTam.def v0.10 = sample date:2007-05-16 *macro #if 0 SHIFT起動無し、ブロックしてたら辞書選択に入って実行。 ★new カーソルが文字の上なら文字をブロックして辞書選択 ★new カーソルが空欄なら、文字入力画面を出して文字入力して辞書選択。実行。 コマンドは「 DIC.EXE -f 辞書名 さがす文字 」です 出力はHIKARU.defと同じ下半分に検索結果。 です。 Shift起動、文字タイプによる自動判別をそぎ落とし、シンプルにする #endif 1 ^\ "辞書選択検索" ?. ;; ---- SHIFT起動無し、ブロックしてたら辞書選択に入って実行。 a=id,e=wt, ;編集ファイルのID (mb==2)?{ ;文字境界ブロックモード mp[, ps[=pa, #G ;ブロックをpaに取得 ps], mp], >m ;辞書選択メニュー表示 } ;; ---- ブロック無しなら、文字入力して辞書選択。実行。 :C mx+, pw[=pa, ;paに取得 &g("文字入力 ") &Cr ;入力を促してpaに取得 pw], mx-, ;mxは窓でマクロを実行させない (r|1+1)??. ;[ESC]/[CR]で終了 ;; ---- メニューで辞書選択 :m !01 (r<0)?. ;キャンセル操作で終了 (r)>?{ ;メニューの戻り値で分岐 >k ;"K 広辞苑" >e ;"E 英和辞書" >g ;"G 現代用語" >c ;"C 漢字林" } . :k d="kojien", >s ;;★辞書ファイル名に変更 :e d="eiwa", >s ;;★辞書ファイル名に変更 :g d="gendai", >s ;;★辞書ファイル名に変更 :c d="kanjigen", >s ;;★辞書ファイル名に変更 ;; ---- 辞書検索 DIC.EXE -f 辞書名 さがす文字 ; 出力ファイルを指定するなら outfile オプションを有効にするサンプル :s ss2, #E ;コマンドラインへ降りる &?("a:\ep\Dic.exe -f a:\ep\%s %s",d,pa) ;★DIC.EXEと辞書の場所 ; o="out.tmp", ;#OUTFILE+ ; &?(" > %s",o) ;#OUTFILE+ ;#m #[ ;実行して編集ファイルに戻る #m ;実行して #95 #U #< ;DOS画面参照 直前のカーソル位置に we[=80, &#c(2) we], ;2行ページダウン &#T(-a) ;確実に編集ファイルに戻す ;; ---- 検索結果の表示 &s ;サイレント &#Y(0) ;分割モードのリセット #X ;#OUTFILE- ; #R &?("%s",o) #m ;#OUTFILE+ #W ;参照ファイルを裏に配置 &#Y(2) ;上下分割モード &#T(-a) ;確実に編集ファイルに戻す ;&d #] :P &m(" [ESC]:quit 【%s】$"%s$"",d,pa) &d #] ; メッセージ表示 b.0-, Ep[=b.1+, mx-, &p mx+, Ep], ; キー待ち (r-#[ || s)? {&o(r) >P} ; [ESC] 以外なら反復 ss2, &#T(0) #C &m("") ; 検索結果クローズ :Q #W &#Y(e) ;画面切替 初期の画面分割モード :R b.0=b.1+, mp-, &d #] sr], mx], ; 再表示 *popup menu 1 "辞書選択",12,4 "K 広辞苑" "E 英和辞書" "G 現代用語" "C 漢字源" * [Variables] a active(file id) d dic(name) e 画面分割 o outfile(name) [Buffers] pa as ps/pw [History] 2007/05/09 0.10 sample [notes] 広辞苑、英和辞書、現代用語、漢字林の辞書ファイル名を置換する必要あり ----------$ DICTAM.DEF ( lines: ) ------------------------< cut here
> と、プロンプトが出ないケースがあるのと、>>などとプロンプトに
> 似たものがでてきます。#U で最初に戻れるようです。
> この最後の終了は、単に [ESC] とそれ以外のキーの判別だけでなく、
> 検索結果をスクロールして見たい。見終わったら{ESC}でコンソール
> 画面を閉じて元の画面状態にしたいので、入れてみました。
> &a()のサンプルで試しましたが、この要望のようにはできませんでした。
> ところで、最後の b.0-, はどういう意味なのでしょう。stkhelp.defで
> 調べてもわかりません。自分で写しておいて?なのです。すみません。
> ぞれ別のフラグとして用いられています。b.0が連続実行フラグ,b.1が国語辞
> 典で読みを取得して和英辞典を引くための連携検索フラグです。b.0-, で連続
> 実行フラグを一旦無効にしていますが, 再表示する直前に b.0=b.1+, で再度
> フラグを立てています。
> 結構難しいことしているのですね。すると今回の私の仕様には不要だった> のでしょうかね。かなり高度なことをしていますね。読みの分からない熟語の読みを別の辞書 で取得して和英辞書を引くなんてことは,相当なもの書きでないと使うことが あるのか疑問です。FBOOK での要求だったのかもしれませんね。 でも,仕様として必要かどうかは現在の辞書群を使い込んでみなければ分か りませんので,いまのところは外しておいて,用途に応じた機能を追加してゆ けばよいと思います。> さて、間違いなく安全に動くように完成させるには、どう直せばよいのでしょうか。まず,キー入力待ちでのキーを制限する事だと思います。hikaru3.def では すべてのキー入力を受けてそのまま出力していますから,例えばコンソールの ファイルをがしがし編集してしまったり,閉じたりすることができてしまいま す。また,他のマクロの実行まで許していますが,安全に使うためにはスクロ ール系以外のキー入力を無効にした方がよいと思います。 制限を加える事で現編集ファイルへのメモ書きなどもできなくなってしまい ますが,コンソール画面の表示を残したまま終了させるキーなどを設定すれば よいことだと思います。 VZ マクロは脆弱ですから,堅牢な作りにしようとす ると相当な手間がかかります。 とりあえず K.TAM さんの現時点の要求は満たせるように調整してみました。 ただ,手元で動作テストできないものですから,あれこれ感覚のすれ違いが出 てしまうのはご容赦ください。こうしたいという要望を,遠慮なく書き出して おいていただければ作り込んでいけると思います。できるところから装備して 小出しにしてゆけば必ず完成できます。> ただの使う人でおねだりマンのようです。そんなことないでしょう。弄った結果にバグが入るのは,ある意味当然のこ とで,弄る意志があるとないでは全く違います。むしろ弄った結果が見えなけ れば要求もわかりませんし,あれこれ想像しながら作るのは楽しいです。(^^) それでは,本日の調整分です。 ----------^ DICTAM.DEF ( date:2007-05-20 time:16:01 ) ------< cut here = DicTam.def v0.21 = *macro #if 0 文字ブロックして起動するとブロック範囲を取得して辞書選択後実行 HIKARU3.defと同様に下半分に検索結果を表示してカーソルキーなどの入力待ちモード 入力待ちモードで[ESC]を押すとコンソールを閉じて分割モード復元 #endif 1 ^\ "辞書選択検索" ?. a=id, ;編集ファイルのID e=wt, ;起動時の画面分割モード ;; ---- 文字ブロックしていたら辞書選択に入って実行。 (mb==2)?{ ;文字境界ブロックモード mp[, ps[=pa, #G ;ブロックをpaに取得 ps], mp], >m ;辞書選択メニュー表示 } ;; ---- ブロック無しなら、文字入力して辞書選択。実行。 mx[+, pw[=pa, ;paに取得 &g("文字入力",20) &Cr ;入力を促してpaに取得 pw], mx], ;mxは窓でマクロを実行させない (r|1+1)??. ;[ESC]/[CR]で終了 ;; ---- メニューで辞書選択 :m !01 (r<0 || r>3)?. ;キャンセル操作で終了 (r)>?{ ;メニューの戻り値で分岐 (d"kojien") (d"eiwa") (d"gendai") (d"kanjigen") } ;; ---- 辞書検索 DIC.EXE -f 辞書名 さがす文字 ss2, ;コマンドラインもサイレント &#Y(0) ;分割モードをリセット #E ;コマンドラインへ降りる &?("a:\ep\Dic.exe -f a:\ep\%s %s",d,pa) ;★DIC.EXEと辞書の場所 #m ;実行して #[ ;元のテキストに戻る #X ;DOS画面参照 #U #< ;直前のカーソル位置に we[=80, &#c(2) we], ;2行ページダウン &#Y(2) ;上下分割モード &#T(-a) ;編集ファイルを再配置 #W ;反対側にカーソルを移して &#T(0) ;コンソールを配置 ky=mp-, &d ;再表示 ;;コンソールの検索結果参照でキー入力待ち ; メッセージ表示中は参照画面をスクロールすることができる :P &m(" [ESC]:quit [↑][↓]:move [→][←]:page 【%s】$"%s$"",d,pa) Ep[+, mx[+, &p mx], Ep], ; キー待ち c=r, ;キー値を保存 (c==#e||c==#x)?{ &o(c+26) >P } ;#e/#x → #w/#z 上下スクロール (c==#s||c==#r)?{ #r >P } ;#s/#r → #r 画面単位スクロール (c==#d||c==#c)?{ #c >P } ;#d/#c → #c (c!=#[)?>P ; [ESC]で終了 &s ;サイレントにして #C &m("") ; 検索結果クローズ &#T(-a) ; 画面切替 &#Y(e) ; 初期の画面分割モード &d #] . ; 再表示 *popup menu 1 "辞書選択",12,4 "K 広辞苑" "E 英和辞書" "G 現代用語" "C 漢字源" * [Variables] a active(file id) e 起動時の画面分割モード d dic(name) c 入力待ち時のコマンドキー値 [Buffers] pa as ps/pw [History] 2007/05/09 0.10 sample 2007/05/16 0.20 K.TAM調整 2007/05/20 0.21 mezala調整 [notes] 再表示後の分割モードや裏テキスト配置に問題が残っているか 入力待ちで有効なキーは他に何が必要か コンソール参照画面を出して終了する必要はないか ----------$ DICTAM.DEF ( lines:87 ) ------------------------< cut here notes にも書いてあるとおり,現時点での問題点は色々あります。 使ってみて,動作のダメ出しをしてみてください。
----------- 5/22 書き直しました ---------------------------- いやー うれしいです。動かしてみました。>安全に使うためにはスクロール系以外のキー入力を無効にした方がスクロール、画面毎のキーだけで十分ですね> コンソール画面の表示を残したまま終了させるキーなどを設定すればこれですがこの機能は、出力した辞書検索をコピーするときがあるので ぜひほしいです。ということで、{S}Stopキーを作ってみました。 defファイルの下半分を載せてみました。まずいところがあればお願いします。 注釈のずれているのか改訂部分です。 :P &m(" [ESC]:quit [S]:Stop [↑][↓]:move [→][←]:page 【%s】$"%s$"",d,pa) Ep[+, mx[+, &p mx], Ep], ; キー待ち &u(r) ;大文字へ変換 c=r, ;キー値を保存 (c==#e||c==#x)?{ &o(c+26) >P } ;#e/#x → #w/#z 上下スクロール (c==#s||c==#r)?{ #r >P } ;#s/#r → #r 画面単位スクロール (c==#d||c==#c)?{ #c >P } ;#d/#c → #c (c=='S')? >Q ;STOP 2分割で終了 (c!=#[)? >P ; [ESC]で終了 &s ;サイレントにして #C &m("") ; 検索結果クローズ &#T(-a) ; 画面切替 &#Y(e) ; 初期の画面分割モード &d #] . ; 再表示 :Q &s &m("") &d #] . ;[S]キー そのまま終了
受け取った文字を大文字化してから処理に回すなんてのは、 玄人っぽいコードですね。やはり、手を出しすぎたかも。 別法として、次のようなものもあります。ご参考までに。 (c&95=='S')?>Q ;[S] or [s]キー そのまま終了 または、 (c|32=='s')?>Q 今回のように文字で受けるケースが少ない場合は、 &u(r) が不要となってステップ数を減らせます。 なお、ラベルQのコードが重複していますので、 &d の前ならどこで実行しても良い &m("") を移動してきて、 :Q &m("") &d #] . …でもよいでしょうね。 改めて最後の部分を書くと, &s ; サイレントにして #C ; 検索結果クローズ &#T(-a) ; 画面切替 &#Y(e) ; 初期の画面分割モード :Q &m("") &d #] . ; 再表示/ [S]キー そのまま終了 …という感じに整理できますね。 ※ここはスパム埋めのため、コメント先などを後で調整しています。
> (c&95=='S')?>Q ;[S] or [s]キー そのまま終了> または、> (c|32=='s')?>Q確認しました。この方がステップ数減ですね。 しかし、c&95 c|32 の意味がわかりません。> なお、ラベルQのコードが重複していますので、> &d の前ならどこで実行しても良い &m("") を移動してきて、> :Q &m("") &d #] .> …でもよいでしょうね。自分で書いてて、無駄があると思っていましたが、やはり ありましたか。 さて、もう私はこれで上出来の仕上がりだと思うのですが いかがでしょうか。
> XPのDOS窓もなんかふかふかしてやりにくいです。←わかりますこの感じ
めざらさん、K.TAM さん、こんにちは。> いやー,おめでとうございます。4つの大きな辞書ですか,うらやましい。>> わたしもパナソニックの高価なアダプターを買って,2GB くらいの nini SD> メモリーカードが使えるかどうか試してみようかしら。いやあ、すごいです。 HONMON2 の辞書が使えるようになるなんて、w(゜o゜)w なんだかわくわくしてしまいますね。 それにしても、CF の代わりに SD を使うという発想はなかったなあ。モバギ でも、512MB のカードまでは使える可能性があるようです。試してみたい気 もします。 ところで、SD 専用ではない PC カードアダプタって、モバギや LX( ← LX は持ってないけど)などで、使えるんでしょうかねえ。(?_?) サンワサプライの PC カードアダプタ(SD カード&マルチメディアカード対 応)に SDHC 対応のものを発見。今後を考えると、これ、ちょっといいんじ ゃない! と思うのですが、どうなんでしょうね。
> ところで、SD 専用ではない PC カードアダプタって、モバギや LX( ← LX
> は持ってないけど)などで、使えるんでしょうかねえ。(?_?)
> サンワサプライの PC カードアダプタ(SD カード&マルチメディアカード対
> 応)に SDHC 対応のものを発見。今後を考えると、これ、ちょっといいんじ
> ゃない! と思うのですが、どうなんでしょうね。
> アダプタで実績があるのはパナソニックで,かなり細かい接続検証が行われ
> ているようです。もっとも残念ながら LX やモバギは検証されていませんので,
> 人柱になるしかないようですね。でもサンワサプライのアダプタは,パナのと
> 比べるとだいぶお安いですね。買ってみようかしら。おっ,珍しく人柱志願?
> LXに2GBのミニSDを挿してみました。認識OKでした。
> サンワサプライはCF以外なのですね。CF、SDの両方を使えるといいのにな。
> 持ってるカードの影響って大きいですね。デジカメ一眼買うなら、ニコン・
> ペンタックス、オリンパス とSDカードの使える方に気が移ります。
> おお,認識できますか。ちなみにアダプタの型番を教えていただけると有り
> 難いです。やはりパナソニックの BN-SDMAAP3 あたりでしょうか。
> パナのBN-SDAGP3 です。yodobashi.com で1980円と出ております。
> 2GBまでのSD/miniSDカードに対応と載っていますね。
> BN-SDAGP3 は後ろに挿すので、押すと出てきてしまいます。
> > パナのBN-SDAGP3 です。yodobashi.com で1980円と出ております。そう言えば、カードを買えるくらいのポイントがたまっていたはず、と、本 日実家に行った帰りに、ヨドバシまで足を伸ばしてみました。先日、こちら の書き込みを見て、yodobashi.com で確認したときには、札幌店に在庫が少 しながらあったのです。だから、安心して行ったのですが、なんと、品切れ になっておりました。w(゜o゜)w このようなものが、そんなに売れるはずがない、と思っておりました。もし かすると、・・ここの書き込みの影響でしょうか?? ということで、取り合えず注文だけしてきました。 やはり、人柱は避けたいです。
昨日、急に用事が出来て、札幌方面へ出掛けました。その帰りにヨドバシで BN-SDAGP3 をゲットしてまいりました。(注文した翌日には入荷しておりま した。) まず、SanDisk の 512MB の SD をモバギの初期化ツールでフォーマットしま した。思ったほど時間も掛からず、あっさりとフォーマットし、DOSモバ で、問題なく使えています。windows2000 でも、512MB と認識されます。幸 先よし。 次に、Kingstone の 1GB の miniSD を、やはりモバギの初期化ツールでフォ ーマットしてみました。こちらもフォーマットが無事に終了し、DOSモバ でも無事に使えました。Vzのファイラーでも 1GB と認識されているようで した。 が、ところがどっこい。windows2000 で見てみると、187MB しかありません。 残りの部分は、未定義領域(だったかな?)となっております。 そこで、デジカメでフォーマットしてみたり、windows2000 でフォーマット してみたりしましたが、そうすると、DOSモバでは容量を全く認識できま せん。 ということで、モバギには 504MB(528MB)の容量の壁があるようです。(それ とも、ほかのメーカーの SD ならば認識する可能性があるのかなあ?) 現在、SanDisk の 512MB の SD カードをモバギで利用中。> LX でフォーマットするの怖いなぁ。何時間かかるだろう。デジカメなどでフォーマットしてみてはいかがでしょうか?
> ということで、モバギには 504MB(528MB)の容量の壁があるようです。(それ
> とも、ほかのメーカーの SD ならば認識する可能性があるのかなあ?)
> デジカメなどでフォーマットしてみてはいかがでしょうか?
私の書き方が悪かったのです。↓↓>> 次に、Kingstone の 1GB の miniSD を、やはりモバギの初期化ツールでフォ>> ーマットしてみました。こちらもフォーマットが無事に終了し、DOSモバ>> でも無事に使えました。Vzのファイラーでも 1GB と認識されているようで>> した。モバギの初期化ツールでフォーマットすると、フォーマットが無事に終了し たように 見 え る だ け で、実際には 187MB しかフォーマットされていな いのです。 DOS化したモバのVzで見ると、1GB のサイズがあることになっているの ですが、DOS窓のVzのファイラーのこの報告は、DOSで認識できない サイズになると、いいかげんですよね。 現に、今、DOS窓Vzでこの文章を書いていますが、w2k のファイラーで 確認すると HDD には、15GB を越える空き容量がありますが、Vzのファイ ラーでは、1GB ほどの空きしかないことになっています。( ← これって、 私のところだけ??) ということで、512MB のSDカードがモバギでは限界みたいです。(何とか SDカードのパーティーションを二つに分けることは出来ないものかと思っ たのですが、分かりませんでした。(ーー; )> 最終的には LX でフォーマットしないと認識できないのです。どういう仕組みになっているのでしょうかねぇ。 ネットで下のような記述を見つけました。 ----------------------------------------------------------------------- 《FAT16について》 16 ビット FAT(FAT16)の場合、理論的にはクラスタ数は最大 65525 個まで使用可能のため、ハードディスクの1ドライブ(1区画)あたりの最大 容量は 32KB クラスタとして(32KB×64K 個=) 2GB まで管理することができ ます。 ----------------------------------------------------------------------- LX では、上記のクラスタで管理するということなのでしょうか? もしもそ うならば、かなりの無駄遣いが生じるようです。 上記の記述の続きに、以下のように書いてありました。 ----------------------------------------------------------------------- このクラスタギャップが HDD にどの程度の影響を与えるのか、一例を紹介し ます。細かいファイルの多い「ゼンリンの電子地図」を、それぞれのクラス タサイズの記録領域を持つ HDD の各ドライブに記録してみました。各サイズ での無駄使いがどの程度出るものかがよくわかります。 使用サイズ 無駄となった部分 指数 元の総ファイルサイズ → 221.5MB − 100.0 4KBクラスタでの所要容量 → 246.2MB + 24.7MB 111.2 8KBクラスタでの所要容量 → 269.0MB + 47.5MB 121.4 16KBクラスタでの所要容量 → 311.0MB + 89.5MB 140.4 32KBクラスタでの所要容量 → 423.4MB + 201.9MB 191.2 いかがでしょうか。221MB のファイルであっても、32KB クラスタに入れる と、何と倍近い 423MB も HDD を消費してしまうのです。 ----------------------------------------------------------------------- ということで、モバギでは、8KB クラスタで 512MB まで管理できるのかなあ。 それならば、指数 121 かなあなどと思っています。 LX は上記とはまった区別の方法で管理しているのでしょうかねえ。例えば、 fat32 を読み書きできるデバイスを組み込んでいるとか。> で,パナの BN-SDAGP3 なんですが,押すと飛び出るタイプですよね。想像以上に扱いに気を使いますね。 (^^ゞ SDカードが飛び出ているのに気づかずに、モバギの蓋を開けたため にエラーとなり、リセットということを、既に3回ほどやりました。 ケータイでもデジカメでもSDカードの装着箇所にはかならず蓋があります ものねぇ。自分のからだを慣らすしかないか・・。
> ということで、512MB のSDカードがモバギでは限界みたいです。(何とか
> 確認すると HDD には、15GB を越える空き容量がありますが、Vzのファイ
> ラーでは、1GB ほどの空きしかないことになっています。( ← これって、
> SDカードのパーティーションを二つに分けることは出来ないものかと思っ
> たのですが、分かりませんでした。(ーー; )
> LX では、上記のクラスタで管理するということなのでしょうか? もしもそ
> うならば、かなりの無駄遣いが生じるようです。
> LX は上記とはまった区別の方法で管理しているのでしょうかねえ。例えば、
> fat32 を読み書きできるデバイスを組み込んでいるとか。
自己レス。> 昔、HDDの壁ということがよく言われましたが、それの関係のような気が> します。自宅に帰れば資料があるのですが、528MB(504MB?)、> 2GB、8GB、32GBといったところで制限ができたはず。LBAとか本来のIDE規格の限界は528MBだそうです。 それ以上の容量に対応しているのがEIDE。 ということで、もしこの辺に壁があるのだとすると、BIOSの制限と考え るのが妥当でしょう。解決策は、やはりBIOSへのパッチ当てしかないの ではないかなぁ。> 多分、DOS標準のデバイス管理でしょうから、そうであればパーテーショ> ン分割は難しいと思います。標準って、リムーバブルメディア扱いというこ真のパーテーション分割は難しいですが、擬似的なパーテーション分割はで きるかもしれません。ただ、私の考えている方式でこれを実現するとなると、 ディスクアクセス速度がいくらかは低下する事になります。ソフトの方をそ れなりに高速に作ってやれば速度低下は大したことはないはずなので、あと はクラスタギャップが削減できるメリットと天秤にかけて判断する事になり ますかね。 どうするのかというと、一番安直には、いわゆる圧縮ドライブという方法。 昔、ちょっと流行りましたよね。stackerとかdblspaceとかdrvspaceっていう のが。そういうのが今でも入手できるのかどうかは知りませんが、もし既に 所有しているというのであれば試してみるのもよいかと。 圧縮ドライブって、物理ドライブの中に1つの巨大なファイルを作成し、そ れを論理ドライブとして扱っていますよね。当然、格納する場合は圧縮して 格納しています。これにより、1GBのドライブに1GBのファイルを作り、 中にファイルを圧縮して2GB分詰め込んでいるわけです。この場合、論理 ドライブは2GBなので論理クラスタも32KBですが、クラスタギャップ の分も無駄にしないでどんどん詰め込むので、実質のクラスタギャップは理 論値よりもずっと小さくなります。 私の考えているのはこれの応用。 例えば、1GBのドライブに128MBのファイルを8個作ります。 通常、1GBのドライブだとクラスタサイズは16KBなので、クラスタギ ャップが出ないように、16KBの整数倍のサイズにしておきます。 そして、この1つ1つの巨大ファイルを論理ドライブとするのです。 すると、128MBのドライブの場合、クラスタサイズは標準的には2KB になりますから、これだけのことでクラスタギャップを大幅に削減する事が できます。 理屈ではそうなんですが、現実には以下のような手順がよいでしょう。 まず、128MBでなくても、80MBでも40MBでもよいのですが、タ ーゲットとするサイズのドライブを用意します。これを、丸ごとディスクの イメージ化を行います。DOS上でこれを行うソフトは、以下にいくつか紹 介されています。 http://www.vector.co.jp/vpack/filearea/dos/util/disk/image/ この、イメージ化されたファイルを大容量ドライブに転送します。 そして、何らかのデバドラを使って、このイメージファイルをドライブとし て扱ってやればよいのですが・・・これを行うフリーのドライバって、あま り存在していないようですね。上記のページで紹介されている中では、 http://www.vector.co.jp/soft/dos/util/se025309.html http://www.vector.co.jp/soft/dos/util/se064111.html 紹介文を読んだ範囲では、この2つくらいしか該当がないようです。 実際に試したわけではないので、モバギや200LXでもきちんと動くかどうかは 不明です。200LXでも確実に使えるものとなると、simtelとかの外国のサイト を探した方がいいかもしれません。
としきさん、こんばんは。 職場のPCがウィルスにやられ、自宅のPCも不調に陥り、2週続けてリカ バリしました。(;_;) さて、「BIOSへのパッチ当て」ですか。うーん、DOSモバを現役で使 っている人って、どのくらいいるんでしょうね。そう考えると、他力本願の 私ですので、実現の可能性は限りなく0に近いです。 stacker とか dblspace ですか。懐かしい響きです。QEMMならば持って いますが、圧縮ファイル系は持っていません。QEMMは ThinkPad220 で活 躍しました。 圧縮ファイルとは、すばらしい発想です。ただ、圧縮してしまうと、Win の ノートPCではそのまま読めなくなるし、ファイルが壊れたときの危険の度 合が大きそうです。私の場合、そこまでして1GBのSDにこだわらなくて もよいので、大人しく 512MB のSDカードを使うことにします。 ・・実は、Kingston のSDカードは、デジカメで使っていたときに、一部フ ァイルが壊れて、写真が数十枚飛んでしまったことがあるので、できれば、 デジカメではなくモバギで使ってみたかったのです。(モバギでファイルが 壊れたりするのかどうか、検証してみたかったのですよ。)が、まあ、諦め ます。 それにしても、としきさんは、いろいろ知識をお持ちですばらしいです。 あと、LX は BIOS が大容量に対応しているなんて、その先進性に驚きます。
ちょっとだけ誤解されてっぽいところがあったので補足。> 圧縮ファイルとは、すばらしい発想です。ただ、圧縮してしまうと、Win の> ノートPCではそのまま読めなくなるし、ファイルが壊れたときの危険の度> 合が大きそうです。私の場合、そこまでして1GBのSDにこだわらなくて> もよいので、大人しく 512MB のSDカードを使うことにします。圧縮ドライブだと互換性がなくなるというのは多分その通りだと思います。 実は私もよくわからないんですけどね。 ただ、圧縮しない単純なドライブ丸ごとファイルに関しては、構造上の理由 から、多くのフリーウェアで互換性があります。 NTFSなドライブの丸ごとファイルに関しては全く経験がないのですが、 FAT系の丸ごとドライブであれば、Windowsで動作するソフトウェアがいく つもあります。また、FAT12〜FAT32の全てに対応したソフトも多 いです。 あとは、いろんなエミュレータでも使われていますし、Winで読めなくなるこ とを心配する必要は全くありません。VirtualPCとかPC-98エミュレータとかの 関係がありますので、めざらさんとかkonnoさんあたりならお詳しいかも。 この丸ごとファイルって、ドライブのバックアップにも使えます。 例えば、いろいろなソフトをインストールして快適な環境を作ってあるとこ ろに、危ないかもしれないソフトをインストールする、なんてときに、丸ご とファイルを採集します。それを、もうちょっと大きい容量の別のドライブ に保存する。保存する際には普通にZIPとかで圧縮をかけておけばよい。 40GB程度のドライブだったら、数GBは空き容量もあるだろうし、圧縮 すれば10GB以下に収まることも多いです。十分小さいサイズに縮めば、 DVDに保存することも可能。 これさえあれば、> 職場のPCがウィルスにやられ、自宅のPCも不調に陥り、2週続けてリカ> バリしました。(;_;)リカバリで泣くことはもうありません。(^_^)
> ただ、圧縮しない単純なドライブ丸ごとファイルに関しては、構造上の理由> から、多くのフリーウェアで互換性があります。というのは、ドライブ丸ごとを1つのファイルにしてしまうということです か?> これさえあれば、> リカバリで泣くことはもうありません。(^_^)ふーむ、なるほど。> NTFSなドライブの丸ごとファイルに関しては全く経験がないのですが、> FAT系の丸ごとドライブであれば、Windowsで動作するソフトウェアがいく> つもあります。また、FAT12〜FAT32の全てに対応したソフトも多> いです。win2k にしてからは、なんとなく NTFS を使っているのですが、FAT32 に対 して、本当に利点があるのかなあ? と、実は疑問に思っていました。 HDD バックアップツールなどというのも考えてはいたのですが、システムを インストールしているCドライブを FAT32 に戻して、丸ごとファイル化する というのも、一つの手ですねぇ。
> HDD バックアップツールなどというのも考えてはいたのですが、システムを
> インストールしているCドライブを FAT32 に戻して、丸ごとファイル化する
> というのも、一つの手ですねぇ。
> というのは、ドライブ丸ごとを1つのファイルにしてしまうということです> か?その通りです。> win2k にしてからは、なんとなく NTFS を使っているのですが、FAT32 に対> して、本当に利点があるのかなあ? と、実は疑問に思っていました。私も、NTFSの仕組はよくわかっていないのですが。 よく言われるのが、デフラグが不要、というやつ。 あと、ファイルの利用者権限だのセキュリティだのの点でもNTFSの方が 強化されているらしいのですが、これらの点は、LANに繋がっていないマ シンを個人で(一人の人間で)使っている限りはあまりメリットがないよう な気がします。会社等、他のマシンとLANで繋がっているとか、あるいは、 自宅の1台のマシンを家族で共用している、なんて時にはメリットになるで しょうけど。> HDD バックアップツールなどというのも考えてはいたのですが、システムを> インストールしているCドライブを FAT32 に戻して、丸ごとファイル化する> というのも、一つの手ですねぇ。う、ここも私が誤解させてしまったかも。 私自身はNTFSなドライブを丸ごとファイル化するツールを知りません。 当然、使ったこともありません。もしかしたら、使ったことのあるツールに NTFSを丸ごとファイル化可能なものもあるのかもしれませんが、そのよ うなことの経験がないためよくわからないというのが真実です。 ただし、世の中には、NTFSの丸ごとファイル化が可能なツールが存在し ていてもおかしくはありません。だって、先に例に上げたVirtualPCですが、 確かNT4には対応していたはずです。ということは、NTFSの丸ごとフ ァイルをよそから持って来ることは可能ということですから、何かのツール で作成可能ではあるはずです。 えと、私自身はあまりVirtualPCに詳しくないのですが、このソフトのオプシ ョンで丸ごとファイル作成ツールってついていませんでしたっけ。 で、丸ごとファイルを作成したのとは別のツールになってしまうかもしれな いけれど、それのリストアが可能なツールも世の中には存在しているので、 そのようなものをうまく使えば手間をかけずにバックアップも可能でしょう、 という話です。もちろん、丸ごとファイルはタダのファイルですから、普通 のファイルと同様にコピーも可能。VirtualPCのインストールされているマシ ンにもってきて仮想マシンの中で使うことも可能だけど、めざらさんも書い ているように、ちょっと速度も低下するので、わざわざそんな事はせずに、 素直にバックアップとしてのみ使う、というのが私のお勧め。で、以前にも 書きましたが、ただのファイルなのだからZIPやLHAで圧縮も可能だし、 ある程度小さくなればDVD等で保存しておくことも可能。 試しに、何かツールを拾ってきて、FDDでバックアップ・リストアの実験 をしてみて下さい。その次には、数十〜数百MBクラスのCFなりSDなり USBメモリで実験。これがうまく行けば、元発言であったクラスタギャッ プ問題も解決の糸口がつかめるでしょう。
> 試しに、何かツールを拾ってきて、FDDでバックアップ・リストアの実験> をしてみて下さい。その次には、数十〜数百MBクラスのCFなりSDなり> USBメモリで実験。これがうまく行けば、元発言であったクラスタギャッ> プ問題も解決の糸口がつかめるでしょう。本日、試してみたのですが、モバギの制限? で、ことごとく失敗しました。 というのも、モバギは config.sys その他は、ROM に乗っかっているのです。 DFDRV は、adddrv では組み込めませんでした。config.sys に組み込め、と いうメッセージが出るのです。 そうそう、モバギの ROM をよく見てみると、dblspace がありました。そうか、 dblspace は msdos6 に入っているのか、と思い出し、msdos6.2 のディスク から、dblspace.exe を取り出し、コマンドラインから実行してみましたが、 メモリが足りなくて実行できませんでした。 ということで、私のスキルでは、モバギは 512MB の SD カードをそのまま使 うしかないようです。(>_<) 今回の件とは全く関係ないのですが、モバギでは、ADATA の 256MB の CF は、 128CF.com というツールでパッチを当てないと認識できなかったのですが、 SanDisk の 512MB の SD は、そのまま認識するので、使い勝手は上がりまし た。
後日談。 そうだ、モバギには、フラッシュカードから起動できるようにする、carb と いうツールがあった。フラッシュカードから起動すれば、config.sys を書き 換えられるので、dfdrv を組み込んだり、dblspace を有効活用したりできる かもしれない・・。 などと、思い付いて、フラッシュカードから起動してみたのです。が、モバ ギのメモリの使い方は、綱渡りをしているのかもしれません。ちょっと、 config.sys を書き換えると、起動しなくなったり、致命的エラーが出たりし て、私にはとても安定動作する環境を作れそうになく、あえなく断念しまし た。(T.T)
古いところに、しかも自己レスで申し訳ない。 別件で検索していたら丁度いい情報が引っかかった物で。> まず、128MBでなくても、80MBでも40MBでもよいのですが、タ> ーゲットとするサイズのドライブを用意します。これを、丸ごとディスクの> イメージ化を行います。DOS上でこれを行うソフトは、以下にいくつか紹> 介されています。丸ごとドライブを作成するツール及び方法のわかりやすい解説が以下にあり ました。 http://www.atmarkit.co.jp/fwin2k/win2ktips/598vfd/vfd.html ここで紹介されているrwfd、多分、2GBまでのFAT形式のドライブなら 丸ごとファイル化ができると思います。少なくとも私は、128KB程度の PCMCIAのSRAMカードの丸ごとファイルは読書きできています。 ということで、2GBの中に128MBの丸ごとファイルを16個ぶち込み、 それぞれを仮想ドライブとしてアサインすれば、かなりクラスタギャップは 削減できることでしょう。
としきさん、こんばんは。> http://www.atmarkit.co.jp/fwin2k/win2ktips/598vfd/vfd.htmlをご紹介いただき、ありがとうございます。LX の場合> ということで、2GBの中に128MBの丸ごとファイルを16個ぶち込み、というのは極端にしても、500MB の丸ごとファイルを4個ぶち込み、という のならば、クラスタギャップがある程度解消ができ、ドライブ数もそれほど 増えないということで、意外と実用性があるのではないでしょうかねぇ。 ・・・モバギは 500MB が認識の上限ですので、ツールを使わずに、その容量 を生で使うのがベストですかねぇ。
> モバギの初期化ツールでフォーマットすると、フォーマットが無事に終了し
> たように 見 え る だ け で、実際には 187MB しかフォーマットされていな
> いのです。
> 現に、今、DOS窓Vzでこの文章を書いていますが、w2k のファイラーで
> 確認すると HDD には、15GB を越える空き容量がありますが、Vzのファイ
> ラーでは、1GB ほどの空きしかないことになっています。( ← これって、
> 私のところだけ??)
> ノートPCで簡単に認識しましたが,それを LX に挿してみましたが認識して
> 2Gで4時間かかってやっと100%終了です。
> そう,このあたりの情報がなくて心配だったのですが,