Miyamiyaの『★MMエディタ』掲示板1 2001年12/18     戻る

RE:環境設定/保存と排他のエラーについて 投稿者:Miyamiya
2001年12月18日(火)15時21分

satoruさんへ。
これは【保存/排他】のダイアログを開こうとするが、そのリソースが存在しないと
言うことです。正常に動作していればこのエラーが出ることはないです。
Windows環境が、リソース不足等でおかしくなっているか。
MM自体の解凍がうまくできていないか。
MMが正常に起動していないか。
のうち、どれかだと思います。
こちらで Ver7.04と7.05βで試してみましたが、特に問題はないようです。
ちなみにお使いの、WINDOWSの種類とMMのバージョンはいくつですか。

RE:【ALLREPS.MAM】の、異常置換について 投稿者:Miyamiya
2001年12月18日(火)15時19分

satoruさんへ。
これは、黒田さんが書かれているようにすればいいです。
検索文字列がダブル場合は、長いものを前に指定する必要があります。
つまり、○10 は ○1 の部分が最初の条件(○1)にマッチして @ に置換されるために
結果的に @1 に変換されるということです。

【ALLREPS.MAM】の、異常置換について 投稿者:黒田 明
2001年12月18日(火)13時35分

satoru さん

> 置換前を ○1 ○2 ○3 〜 ○20 (数字は半角)
> 置換後を @ A B 〜
この設定を、桁数が多い方を先に指定する(この例だと2桁のものから先に書く)
ように変更してみたらどうでしょうか。

環境設定/保存と排他のエラーについて 投稿者:satoru
2001年12月18日(火)11時57分

宮崎様

お世話様です。
環境設定の【保存/排他】を選択すると、
「例外#32747(メッセージが用意されていません、<owl/except.rc>のバインドを確認してください)
という表示が出てしまい、「いいえ」 を選択すると、MMが強制終了してしまいます。
これはどういうことなのでしょうか?
ちょっと作業中のため、あせっているのですが、
何卒ご教示お願いいたします。

【ALLREPS.MAM】の、異常置換について 投稿者:satoru
2001年12月18日(火)01時57分

宮崎様

お世話様でございます。
最新の 【ALLREPS.MAM】 を導入しまして、一定の複数置換をかけたところ、異常な置換が発生しました。[INIファイルより得る] にて、

置換前を ○1 ○2 ○3 〜 ○20 (数字は半角)
置換後を @ A B 〜T

と、白丸と半角数字の1〜20までを、丸数字の1〜20に複数置換かけてみたところ、
1〜9まではちゃんと丸数字になったのですが、10〜20までが、何故か

@0 @1 @2 〜 A0 (丸数字の右隣は、半角数字)

となってしまったのです……。何か指令の仕方がいけなかったのでしょうか。
それとも、数が多すぎたのでしょうか?
仕事の都合上、外字フォントを使用しまして、丸数字を60ほどまで、一括複数置換したいので、
試しに、20までしてみたのですけど……。
お忙しいところ、スミマセン……宜しくお願いいたします(-.-)

ファイル連結と矩形選択時の(複数)置換について 投稿者:satoru
2001年12月17日(月)16時36分

宮崎様

いつもお世話になっております。
【ファイル連結ソフト】 についてですが、昨年、ベクターから見つけて使用していまして、
名前は [File Combiner] というソフトなのですが、
早速作者のホームページにアクセスしてみたところ、HPが存在不明なのにビックリしました!
ベクターにも無く、こうなると、どうしようもないですね。
ただ、WinMe対応ですし、非常に使いやすいのと、動作が速いのが特徴ですね。
念の為、宮崎様宛に、メールで実行ファイルをお送りしてみますので、試用してみてくださいませ。
区切り線ですが、半角マイナスで50Wぐらいですか。

【矩形選択時の(複数)置換】 は、ぜひぜひ、宜しくお願いいたします。
もう今すぐにでも、使用したいくらいです!(^o^)  楽しみにしております。

********************************

黒田様

どうもありがとうございました。
さっそくやってみました。窓が出てくれて、ホッとしました。
今後とも、両方々、宜しくお願いいたします!

RE:印刷時のページ数について 投稿者:Miyamiya
2001年12月17日(月)16時13分

keroyon@honki.netさんへ。
「縮小印刷」でのページ数表示の不具合の件については、こちらでも再現しました。
これは近くアップ予定の Ver7.04の修正版(Ver7.05)で直しておきます。

RE:【Filecat.mam】 【b_FindN.mam , b_FindP.mam】について 投稿者:Miyamiya
2001年12月17日(月)16時11分

satoruさんへ。
【Filecat.mam】の機能拡張については、参考にしますので、
お使いのそのファイル連結ソフトを入手できる URL を教えて下さい。
それと、区切り線を入れる場合の、線の長さはどのくらいですか。


RE:矩形選択での複数置換の可能性/補足 投稿者:Miyamiya
2001年12月17日(月)16時09分

satoruさんへ。
複数置換マクロでの矩形選択範囲への対応については、
可能なら作ってみますのて、少し待って下さい。

キーワード色の増色については、4色を増色して計8色を
使えるようにする予定です。

RE: b_FindN.mam , b_FindP.mamについて  投稿者:黒田 明
2001年12月17日(月)13時39分

satoru さん
> ひとつ思ったのですが、「もうこの先、検索対象文字がないよ」 という場合、
> 通常のMMの検索動作結果の時に表示される [検索文字列が見つ
> かりません]というコメントがこの 【b_FindN.mam , b_FindP.mam】 使用時に
> も表示されたら、ホッとするんですが^_^;。

各マクロ中の
FindNext();

if(FindNext()) Message("検索文字列が見つかりません");

FindPrev();

if(FindPrev()) Message("検索文字列が見つかりません");
に、それぞれ変更していただくとそのような感じになると思います。


【Filecat.mam】 【b_FindN.mam , b_FindP.mam】について 投稿者:satoru
2001年12月17日(月)07時54分

宮崎様

度々、御邪魔いたします。
【Filecat.mam】 についてお尋ねいたします。
現在、ベクターからフリーソフトにて、テキストファイル連結ソフトを使用しているのですが、
MMのマクロにも、同様のがあるのを発見しまして、試用してみたのですが、
連結ファイルを選択したのち、保存場所を自由に選択できたらいいな……と思いました。
例えば、FDにある10個のファイルの連結保存先を、デスクトップにするとか。
たまたま、今使用しているのが、自由に保存場所を選択できるんですね。
もしFDなどの、何十個ものファイルを連結したい場合、一度デスクトップにコピーするとなると、
デスクトップがファイルだらけになっちゃう……、
デスクトップにフォルダを作るのもいいのですが、もっと手軽に連結したい^_^;。
それと、連結されたファイル間に、区切り線があったらいいな……と思いました。
例えば、 −−−−−−−−−−−−−−−−−−−−− ←こんな感じで。
区切り線を入れるか入れないかの選択ができると、素晴らしいですね。
出来ることなら、他のソフトを使用せずに、全てMMにて作業したいと思っているもので……(^o^)。
勝手ではありますが、いかがなものでしょうか?

**************************************

それと、黒田様制作のマクロ 【b_FindN.mam , b_FindP.mam】 が、とても便利なので
使用させていただいております。
ひとつ思ったのですが、「もうこの先、検索対象文字がないよ」 という場合、
通常のMMの検索動作結果の時に表示される [検索文字列が見つかりません] というコメントが
この 【b_FindN.mam , b_FindP.mam】 使用時にも表示されたら、ホッとするんですが^_^;。
こちらのほうも、いかがなものでしょうか……。

それでは、何卒御教示くださいますよう、宜しくお願いいたします。

印刷時のページ数について 投稿者:keroyon@honki.net
2001年12月16日(日)14時07分

初めてお邪魔いたします。
MMエディタを、小説等の読み書き印刷に重宝させていただいております。

通常「縮小印刷」で紙1枚に2ページ印刷で使用しているのですが、
印刷時のフッタのページ数表示が、10ページ目以降、
1
と一桁しか印刷されないという現象が起きております。(ver. 7.04、win98SE)
ちゃんと、11、12、と印刷されている文書もあるので、
確認したところ、総ページが20ページ以上の場合は
ちゃんと表示されるけれど、19ページ以下の場合は1桁しか
表示しない、という現象のようです。
お忙しい中とは存じますが、ご確認のほどお願いいたします。

矩形選択での複数置換の可能性/補足 投稿者:satoru
2001年12月16日(日)07時08分

宮崎様

矩形選択範囲の複数置換の可能性についての補足を書かさせていただきます。
BLOKCUT、BLOKCUT2 両マクロを日頃使い分けているのですが、
複数置換に限らず、ノーマルな置換についても、矩形選択範囲の置換ができれば……と思っていまして^_^;。
例えば、BLOKCUT2 の場合、切り取った範囲はスペースは [半角スペース] に変わりますよね。
その半角スペースを、一気にタブに変えたい、丸や四角の記号にしたい、丸数字にしたい……等々があるんです。
お分かりいただけると思いますが、テキストの例としまして、

□□□□□□●□□□□□□□
□□□□□□●□□□□□□□
□□□□□□●□□□□□□□
□□□□□□●□□□□□□□
□□□□□□●□□□□□□□

● の箇所のみを、上から順に @ A B C D にしたい!  タブに置き換えたい! ……等々です。
勝手、わがままながら、期待大!モードになっております。
それと、黒田様が書かれていた、キーワード色の増色について、可能というお話に、
これも非常に期待しております。
何卒、宜しくお願いいたします。

矩形選択での複数置換の可能性 投稿者:satoru
2001年12月15日(土)16時09分

宮崎様

度々お世話になります。
複数置換 ALLREPS についてなのですが、[矩形選択] でも動作させたいのですが、
対応していただけることって、可能なのでしょうか?
データ整理などで、一部分の文字列だけ、何行にもわたって複数置換をかけたい場合があるもので……。
もし可能でしたら、ぜひぜひお願いしたく思いまして。
何卒、宜しくお願いいたします^_^;。

カーソル位置マーク削除のマクロ 投稿者:satoru
2001年12月15日(土)13時17分

宮崎様

いつもお世話になっております。
早速対応していだきまして、どうもありがとうございました。
たったこんなに短い指令で、動作するなんて、もうびっくりしています(^o^)。
これで、非常にマーク付け/削除がスムースになりまして、MMがさらに使いやすくなりました。

今後とも、何卒宜しくお願いいたします。

RE:カーソル位置マークの削除について 投稿者:Miyamiya
2001年12月15日(土)11時34分

satoruさんへ。
前の書き込みで、
[カーソル位置マークの[削除]をする、キーコマンドはないです。]
と書きましたが、カーソル位置のマークを解除する関数 がありましたので
これを使うとカーソル位置のマークを[削除]できます。
カーソルのマーク位置にて以下のマクロを実行して下さい。
---------------------------------
main()
{
UnMark();
}
---------------------------------

RE:欧文フォント(お礼) 投稿者:Miyamiya
2001年12月15日(土)11時06分

ニョロニョロさんへ。
ひとまず問題解決ということで、当方もほっとしました。

RE:短い行に対する正規表現置換の行頭マッチ 投稿者:Miyamiya
2001年12月15日(土)11時05分

黒田 明さんへ。
確かに、1行が1文字の場合に行末でもマッチするようです。
これは、調べてみます。

RE:MM705B 投稿者:Miyamiya
2001年12月15日(土)11時04分

高千穂遙さんへ。
この件は、表示色設定の GREPマッチ箇所の表示 が引っかかっていました。

RE:カーソル位置マークの削除について 投稿者:Miyamiya
2001年12月15日(土)11時03分

satoruさんへ。
カーソル位置マークの[削除]をする、キーコマンドはないです。
カーソル位置マークに関しては、カット&ペースト等でそのマーク位置のテキストが
削除されれば、マーク自体も削除されますが、それではだめでしょうか。
作るとするなら、現カーソル位置がマーク位置なら削除 と言う仕様のコマンドになる
でしょうね。

欧文フォント(お礼) 投稿者:ニョロニョロ
2001年12月15日(土)04時26分

宮崎様

ベータ版を試してみたところ、問題の現象(欧文フォントの文書、コピー
&ペースト)は再現しなくなりました。まだ徹底的に調べてはいませんが、
ひとまず問題解決という感じで、ほっとしています。
素早い対応をしていただきありがとうございました。

取り急ぎお礼まで。

短い行に対する正規表現置換の行頭マッチ 投稿者:黒田 明
2001年12月15日(土)00時46分

Miyamiya さん

> 見出し行か否かを返す関数に付いては、作るのを忘れていました。
> これは次の版で作っておきます。
この件、よろしくお願いします。

標記の件についてなのですが、
かなり前に正規表現置換で、検索文字に行頭記号'^'のみを指定することも
できるようにしていただいたのですが、不具合らしきものがありましたので
ご報告します。

例えば、

a
b
c
aa
bb
cc
aaa
bbb
ccc

というテキストに対して、検索文字'^', 置換文字'INSERT' としてみると、

まず、一括置換した場合、
INSERTa
INSERTb
INSERTc
INSERTaaINSERT
bb
INSERTccINSERT
aaa
INSERTbbb
INSERTccc
という結果になり、
次に同じことを個別置換でやってみた場合、
INSERTaINSERT
INSERTbINSERT
INSERTcINSERT
INSERTaa
INSERTbb
INSERTcc
INSERTaaa
INSERTbbb
INSERTccc
という結果になりました。
感じとしては文字数の少ない行の場合に行末でマッチしてしまうことがあるよ
うです(今のところ、半角3文字以上の行ではこのような症状は出ず、意図した
とおりに置換されています)。
調査をよろしくお願いします。

MM705B 投稿者:高千穂遙 
2001年12月14日(金)18時32分

 Miyamiyaさま。

 さっそくダウンロードし、試してみました。今度はうまくGREPできます。フリーズすることもありません。対処、ありがとうございます。どこの設定がひっかかっていたんでしょう?(^^;

 まずはお礼と報告まで。

RE:キーワードファイルの扱いと、Ver7.04 について 投稿者:Miyamiya
2001年12月14日(金)17時45分

黒田 明さんへ。
早速、いろいろとチェックいただきどうもです。
チェック項目に関しては、基本的に問題はないようですね。
見出し行か否かを返す関数に付いては、作るのを忘れていました。
これは次の版で作っておきます。

RE:欧文フォントのトラブル(未解決) 投稿者:Miyamiya
2001年12月14日(金)17時11分

ニョロニョロさんへ。
欧文プロポーショナルフォントでの不具合を修正したベータ版をここの一番下の方へ
置いていますので、ダウンロードして使ってみて下さい。
ファイル名は、MM705B.LZH で実行ファイルのみが入っています。
動作に問題がなければ、これを正規版(7.05)としてアップしたいと思います。

RE:MM7.04 投稿者:Miyamiya
2001年12月14日(金)17時10分

高千穂遙さんへ。
GREPの不具合を修正したベータ版をここの一番下の方へ置いていますので、
ダウンロードして使ってみて下さい。
ファイル名は、MM705B.LZH で実行ファイルのみが入っています。
動作に問題がなければ、これを正規版(7.05)としてアップしたいと思います。

カーソル位置マークの削除について 投稿者:satoru
2001年12月14日(金)11時21分

宮崎様

いつもお世話になっております。
【カーソル位置マーク】 について質問なのですが、
カーソル位置マークの [削除] を、
キーコマンド設定することが可能なのでしょうか?
マークを付けて → テキストをカット&ペースト → すぐマーク削除
 → またマークを付けて → カット&ペースト ……といった、繰り返し作業ができたら、
非常に効率よく、テキストの移動ができるんですね。
どうしても一覧を表示してから削除したり、複数のマークが付いてしまうと、
望んだ箇所へのジャンプが一発でできないというわけなんです。
不必要なマークは、ショートカット・キーで、どんどん削除していけたら……と思うのですが、
いかがなものでしょう?

勝手わがままな要望ではありますが、
ご教示のほどを宜しくお願いいたします。

欧文フォントのトラブル(未解決) 投稿者:ニョロニョロ
2001年12月14日(金)02時15分

先日、Windows2000とMM7.03の組み合わせで、欧文フォントを用いた文書
のコピー&ペーストについて質問をした者です。

MM7.04を早速試してみましたが、問題の完全解決には至っていません。

1.プロポーショナルではない欧文フォント(Courier)を指定した場合、
前回報告した現象は再現しなくなりました。いまのところ問題はなさそう
です。

2.プロポーショナルフォントを指定した場合、事態は以前よりも悪化
しました。はじめにアクセント付き欧文文字を使用した文書を開こうと
した時点で、エディタが強制終了されてしまいます。いったん日本語フ
ォントで開いて、あとから表示設定でフォントを切り替えた場合も、結
果は同じです。

あらためてエラーログ等をお送りして、検討していただくことは可能で
しょうか。よろしくお願いします。

キーワードファイルの扱いと、Ver7.04 について 投稿者:黒田 明
2001年12月13日(木)14時10分

Miyamiyaさん

> ファイルの読み込み時にソートしてもいいですが、数が多いとその分、エディタ
> の起動に余分な時間がかかります。
> したがって、手作業で編集されたファイルは、オリジナルは手元に置いておいて、
> ソートしたファイルを使うようにして下さい。
わかりました。
この作業自体は半自動化できそうですので、そのようにしてみます。

> キーワード色の追加はたぶん可能です。次の版で検討してみます。
よろしくお願いします。楽しみです。

それと Ver 7.04 についてですが
スクロールスピード、劇的によくなりましたね。期待していた以上でした。

変更行カラー表示のアンドゥ時のリセットの件
キーボードマクロでマクロ実行した場合のPutStr() の件
いずれも修正していただいていることを確認しました。

次の見出し、前の見出しにジャンプする機能の追加もありがとうございました。
やはりすごく便利です。

マクロ関数の方は、見出しジャンプ用の関数を要望した際に、現在行(論理行)が
見出し行か否かを返す関数も一緒に要望させていただいたと思うのですが、次の版
ではその関数もお願いできないでしょうか?
マクロで使う場合だと、マクロ実行時の行が見出し行ならその行で何らかの処理をし
てから次の見出しにジャンプ、見出し行でなければ次の見出し行にジャンプして何ら
かの処理をする、というような使い方をする予定ですので。
あとこの現在行が見出し行かどうかを返す関数があれば、順に行を移動していって、
見出し行なら h1 タグ、見出し行でなければ p タグでその行を囲むというような
ことも簡単に出来そうですし。

よろしくお願いします。

GREPでフリーズ 投稿者:高千穂遙 
2001年12月13日(木)12時31分

 7.04の設定項目、「新規ファイルは最後に開いたフォルダへ」にはチェックを入れました。それ以外は変更していません。また、そのチェックをはずしてやってみても、フリーズすることに変化はありません。
 また、GREPのチェック項目もすべてはずしてみましたが、やはり、フリーズします。ただ、「サブフォルダも検索対象とする」をはずし、当該フォルダにファイルがひとつもないフォルダを検索対象に指定したときは、「該当するデータはありませんでした」というメッセージがでて、フリーズせずに終了します。テキストファイルがひとつでもあると、だめです。
 とりあえず、レジストリも含めて、わたしの環境ファイル一式をメールしますので、そちらのチェックもお願いします。この環境そのままで、7.04β8ではフリーズすることなくGREPが使用可能です。

RE:MM7.04 投稿者:Miyamiya
2001年12月13日(木)11時01分

高千穂遙さんへ。
こちらでWindows98SEにて同条件でチェックしてみましたが、GREPは特に問題なく動作します。
サブフォルダの中も問題なく検索しました。
GREPのチェック項目をいろいろと変更して実行しても同じでしょうか。
また、Ver7.04になって新しくチェックされた何かの設定項目等はないですか。

MM7.04 投稿者:高千穂遙 
2001年12月12日(水)17時31分

 7.04ですが、「GREPの実行」がまったく動作しなくなりました。検索文字列、検索フォルダに関わらず、何をどう指定しても、実行と同時にフリーズします。7.04β8環境に戻すと問題なく動作し、検索できます。「GREPのダイアログは新形式を使う」にチェックを入れてもいれなくても、同じです。フリーズします。検索時にチェックを入れている項目は、以下のとおりです。

 大文字小文字を区別しない。
 行頭へ行番号を表示する。
 サブフォルダも検索対象とする。
 GREP失敗時ビープ音を鳴らす。

 OSはWindows98SEです。β8では異常なく使用できるので、当方の環境の問題ではないように思われます。すみませんが、チェックをお願いいたします。

RE:直接エディタで編集したキーワードファイルの読み込み 投稿者:Miyamiya
2001年12月12日(水)15時32分

黒田 明さんへ。
表示設定のキーワードの設定でキーワードファイルを作成すると、キーワード
文字列はソートされますが、
手作業でファイルを編集する場合も、正規表現を除くキーワードに関しては、
キーワード文字列はソートされている必要があります。
ファイルの読み込み時にソートしてもいいですが、数が多いとその分、エディタ
の起動に余分な時間がかかります。
したがって、手作業で編集されたファイルは、オリジナルは手元に置いておいて、
ソートしたファイルを使うようにして下さい。
ファイルのソートはキーワード設定で、仮の動作として 変更ボタン にて何も
変更しないで OKを押すことで1個変更済みとすることでファイルを更新する事
でもできます。ただしこの場合は、コメントの行は保存されません。

キーワード色の追加はたぶん可能です。次の版で検討してみます。

直接エディタで編集したキーワードファイルの読み込み 投稿者:黒田 明
2001年12月11日(火)15時03分

Miyamiya様

標記のように手作業でキーワードファイルを作成してLoadKwFile()
した場合に意図した結果が得られないことがあるようでしたのでご報告
します。

例えば、
// プロパティ
3,0,0,2,text-align
3,0,0,2,text-decoration
3,0,0,2,text-indent
// 値
3,0,1,2,text
3,0,1,2,text-top
3,0,1,2,text-bottom
というようなキーワードファイルを作って LoadKwFile() した場合、
text-align, text-decoration, text-indent という文字列は "text"
の部分だけが、3,0,1,2(カラー2) の方でカラー表示され、
3,0,0,2(カラー1)の方は最長一致によるカラー表示がされません。

これを
// 値
3,0,1,2,text
3,0,1,2,text-top
3,0,1,2,text-bottom
// プロパティ
3,0,0,2,text-align
3,0,0,2,text-decoration
3,0,0,2,text-indent
というように書く順番を変えると、意図したとおりのカラー表示結果
が得られるようでした。

ということで、現状では、
あるキーワード(前記の例では"text-align"など)と、そのキーワード
の先頭からの数文字にあたるキーワード(前記の例では"text")がある
場合で、両者が別々の色で指定されており、
なおかつ KWDファイル内で後者が前者より後に記述されている場合、
前者のキーワードについて最長一致による指定色でのカラー表示がされ
ないようです。

色分けを意図したとおりにするだけなら現状でも文字列でソートするな
どの方法で何とかなりそうですが、キーワードファイルのメンテナンス
上は「プロパティ」とか「値」とかでセクション分けしておきたいですし、
かといって前記後者にあたるキーワードが必ず(「値」などの)特定の
セクションにのみ登場するというわけでもないために前記の例の「値」
を先に書いておきさえすれば大丈夫ということにもなりません。

そういうわけで、最初の例のような書き方をしたKWD ファイルでも大丈夫
なようにしていただけないでしょうか。

それと、ついでというわけでもないのですが、キーワード設定をしていて
改めて感じたので要望させていただきたいのですが、キーワード色をあと
数色増やしていただけないでしょうか?
色数は増やせばきりがないとは思いますが、あと2色くらいあればいいな
と思うことは結構ありますし、余裕をみてあと4色くらいあれば足りない
と感じることもなさそうに思います(倍になってしまいますが(^^;)。
よろしくご検討下さい。

RE:変更行表示とアンドゥについて 投稿者:Miyamiya
2001年12月7日(金)18時33分

黒田 明さんへ。
確かに、実際のキーボードからの入力ではない、キーボードマクロ内からの
マクロファイルの実行で発行した PutStr();の文字列データを記録しているようです。
これは次の版で直しておきます。

RE:変更行表示とアンドゥについて 投稿者:黒田 明
2001年12月6日(木)16時59分

Miyamiyaさん

> そういうことでしたら、今のままの仕様で、書かれているような
> 変更行か否かの判断は上書き保存時を起算点にするのではなく、編集開始
> 時と変更行表示全クリア時とを起算点にして、上書き保存とは独立させた
> 形式にしておきます。

ありがとうございます。
その方向でお願いします。
アンドゥとの連動の方はたいへんそうですので、内部を大きく変え
る機会がありましたら考慮に入れて下さるようお願いします。


それとは別件なのですが、
キーボードマクロでのマクロ実行とPutStr() との関係で不具合らし
きものをみつけましたのでご報告します。
例えば、
main()
{
PutStr("aiueo\n");
PutStr("oeuia\n");
}
という内容のTemp.mam というマクロの実行を記録すると、

main()
{
LoadMam("Temp.mam", "_Temp");
_Temp();
ReleaseMam("Temp.mam");
PutStr("aiueooeuia");
}
という内容になり、もとのマクロ内でPutStr()した文字列がキーボー
ドマクロの方でマクロの実行とは別に記録されてしまいます。
もとのマクロの方でPutStr() ではなく PutChr() や DataPast() を
使っていた場合はこのような症状はでませんでした。


欧文フォント(お礼) 投稿者:ニョロニョロ
2001年12月5日(水)23時54分

宮崎様
早速のお返事ありがとうございました。
次のバージョンの完成を楽しみにしております。

RE:欧文テキストコピーアンドペーストでハング 投稿者:Miyamiya
2001年12月5日(水)10時42分

ニョロニョロさんへ。
お送りいただいたファイル群にて、この症状はこちらでも確認できました。
近くアップ予定の Ver7.04 で直しておきます。

RE:変更行表示とアンドゥについて 投稿者:Miyamiya
2001年12月5日(水)10時40分

黒田 明さんへ。
そういうことでしたら、今のままの仕様で、書かれているような
変更行か否かの判断は上書き保存時を起算点にするのではなく、編集開始
時と変更行表示全クリア時とを起算点にして、上書き保存とは独立させた
形式にしておきます。

アンドゥ、リドゥ時に、その行についてだけ変更行情報をクリアして通常
表示に戻す(Danaのような仕様)のは、不可能ではないですが、内部の構
造上、改造が多岐にわたり、現時点ではちょっとむずかしいです。

grepでの半角空白を含む文字列の指定ありがとうございます。 投稿者:前野弘美
2001年12月4日(火)23時37分

宮崎さん、ありがとうございました。
grepでの正規表現の表記、分かりました。
半角空白を含む場合は " で挟むのですね。
ヘルプを良く読めば書いて有ったのですね。
お手数をお掛け致しました。
随分とテキストファイルの操作が楽に成りました。
ありがとうございました。

RE:grepでの正規表現の指定パターンに関して 投稿者:Miyamiya
2001年12月4日(火)10時50分

前野弘美さんへ。
grepでは、検索文字列として半角のスペースを含みたい場合は文字列の両端を
ダブルクオート(" ")で囲んで下さい。(詳しくは grepのヘルプをご覧下さい)
書かれているような文字列を検索したい場合は、
"^....1 "
と指定して下さい。
そうするとうまくいきます。


変更行表示とアンドゥについて 投稿者:黒田 明
2001年12月3日(月)23時45分

Miyamiyaさん
ご回答ありがとうございました。
(題名を変更しました)
> 編集行カラーが全て消えてしまうというのは、アンドゥ、リドゥの問題ではなく、
> 上書き保存時で更新は消えているのに、編集行カラー表示を消していないのが
> 問題のようです。編集行表示は上書き保存時にクリアーするようにしておきます。
> それてこの問題は解決するはずです。

うーん、それだとちょっと困るのです(^^;
今年5月ころの私の書き込みの引用ですが、
> 他のエディタの場合、上書き保存の際に変更行表示をクリアするオプションが
> ついているものもいくつかあるのですが、上書き保存をする間隔は一連の作業
> の間隔よりもずっと短い(上書き保存のたびにクリアされると困る)ので、上
> 書き保存のタイミングとは独立して変更行の表示だけをクリアできるという仕
> 様を希望します。
という要望を出させていただいて、その際に上書き保存とは別立てで「変更行、
追加行表示の全クリアー」というキーコマンドを追加していただきました。

またその後、上書き保存直後に「更新」表示が消えた状態だと「前の変更行へ」
「後の変更行へ」のコマンドが効かなくなっていたのを、これらのコマンドが
使えるように直していただいたこともありました。

現行の仕様では、上書き保存後も「前の変更行へ」「後の変更行へ」のキーコ
マンドが使えますので、たぶん内部的に上書き保存時には変更行情報はクリア
されていないと思うのですが(今回分かったところでは、アンドゥによって上
書き保存時に戻ったときには全クリアされてしまう)、上書き保存時にクリア
するということだと、上記の以前お願いしていたことによるメリットがなくな
ってしまいますので、現行仕様のメリットを残したままでの対処をお願いでき
ないでしょうか?

できれば、
・ 変更行か否かの判断は上書き保存時を起算点にするのではなく、編集開始
時と変更行表示全クリア時とを起算点にして、上書き保存とは独立させた
まま、
・ 現行仕様だと一旦変更行表示されると、その変更をアンドゥしても変更行
として扱われ続け、上書き保存した時点に戻ると一気に全クリアされてし
まうようなのですが、変更行としての扱いとアンドゥ、リドゥとを連動さ
せ、その行の編集が全てアンドゥされた時点で、その行についてだけ変更
行情報をクリアして通常表示に戻し(例えばDanaはそのような仕様です)、
上書き保存時に戻った時点でいきなり全クリアされないようにする
というようにしていただくことによる解決をお願いできないでしょうか?

grepでの正規表現の指定パターンに関して 投稿者:前野弘美
2001年12月3日(月)15時48分

宮崎さん、ありがとうございました。
行頭から指定桁位置の文字の置換の方法分かりました。
grepでの動作は思うように動作しません。
> grepでも検索と同じように ^.....1 のパターンで検索できるはずです。
> grepでの 正規表現で検索 の項目はチェックされていますか。
高度なあいまい検索2の所にチェックが入っていてチェックできていませんでした。
それをはずし、正規表現でのチェックを入れました。
その上で実行すると
パターンに指定した、半角のスペースがピリオドと同じ様に扱われて居るような結果が出ます。
半角のスペースの後ろにピリオドを付けても同様です。
grepの時の指定は、
現在編集中のテキストを対象。
正規表現で検索。
grep失敗時ビープ音を鳴らす。
です。
検索しているファイルの先頭部分は数字で6桁目が0または空白です。
0001101〜
00012 1〜
0002101〜
0006101〜
0007102〜
00091 1〜
00111 3〜
の様なデータが並んでいます。
よろしく、お願い致します。
前野弘美

0012102

RE:編集行表示とBeginCollectUndo(); 投稿者:Miyamiya
2001年12月3日(月)15時26分

黒田 明さんへ。
編集行カラーが全て消えてしまうというのは、アンドゥ、リドゥの問題ではなく、
上書き保存時で更新は消えているのに、編集行カラー表示を消していないのが
問題のようです。編集行表示は上書き保存時にクリアーするようにしておきます。
それてこの問題は解決するはずです。

こちらで、BeginCollectUndo() を使って数10個の一括置換(そのアンドゥを
ひとつにまとめている)を行ってみましたが、その後の、ひとまとめの アン
ドゥ、リドゥともに問題なく動作するようです。

RE:指定桁位置の文字検索の研、追加質問です。 投稿者:Miyamiya
2001年12月3日(月)11時02分

前野弘美さんへ。
grepでも検索と同じように ^.....1 のパターンで検索できるはずです。
grepでの 正規表現で検索 の項目はチェックされていますか。

書かれているような文字の置き換えに付いては、正規表現のタグ付き置換を使え
ば可能です。タグ付き置換に関しては置換のヘルプをご覧下さい。

行頭から6文字目の [1 ] (1+半角スペース)を [10] に置き換えたいと言うこと
であれば、正規表現検索をチェックして、
検索文字列に、
\(^.....1\)
^....1
置換文字列に、
\10
を指定すればいいです。

RE:欧文テキストコピーアンドペーストでハング 投稿者:Miyamiya
2001年12月3日(月)10時59分

ニョロニョロさんへ。
調べてみますので、そのエラーログ、使われている表示書式ファイル(*.ds1)、
それと可能なら、ペーストされた欧文のテキスト を LZH 形式に圧縮し、添付
ファイルにして
miyamiya@po.saganet.ne.jp
まで、お送り下さい。

RE:編集行表示とBeginCollectUndo(); 投稿者:黒田 明
2001年12月2日(日)23時50分

Miyamiyaさん
> こちらで試した限りでは特に問題ないようです。
> MMのパッケージに添付している、zenhan.mam の main();関数を以下のように
> 変更してマクロを実行した後での、アンドゥ、リドゥともにまとめて実行され、
> マクロ前の編集行のカラー表示が消えることもないです。
> うまくいかない場合の、簡単なマクロのサンプルをアップしてもらえませんか。

その後試してみたところ、
1 編集行カラー表示されている状態で上書き保存
2 その直後にマクロを実行
3 アンドゥ

という手順で再現するようでした(編集行のカラー表示が全て消える)。
Miyamiyaさんのzenhan.mam の main();関数を書き換えたものでも再現しまし
た。

それでさらに試してみたのですが、どうやらマクロ実行とは無関係に、
1 編集行カラー表示されている状態で上書き保存(この段階では編集行はカ
ラーのまま)
2 テキストを編集する
3 編集したのと同じステップ数アンドゥする(上書き保存時の状態にまで戻
す)
という手順を辿ると、編集行カラーが全て消えてしまう(その後はアンドゥし
てもリドゥしても変更行表示にはならない)ようです。

そういうわけで、本当の原因はBeginCollectUndo() ではなくて、こちらの方
だったようです(たぶん、自作マクロで一括処理をする際には安全のためテキ
ストを上書き保存してからマクロを実行する習慣があるので誤解してしまった
のだと思います)。
すみませんがこちらの方を調べてみていただけますか?

それと、編集行カラーが全て消えてしまった状態でリドゥした時にMMが落ち
ることについてですが、上記の再現テストをしている過程で、マクロ中で一括
置換をしている(そのアンドゥをひとつにまとめている)ものを試していると
き、やはりリドゥしたタイミングで2回ほど落ちました。
ただ、それ以外のケースでは1度も落ちませんでしたので、これは編集行のカ
ラーの問題とはまた別の問題なのかもしれません。
いまのところ何だかよく分からないので、何か分かったらまたご報告します。

指定桁位置の文字検索の研、追加質問です。 投稿者:前野弘美
2001年12月1日(土)18時57分

宮崎さん、ありがとうございました。
行頭から指定桁位置の文字の検索の方法、分かりました。
二つほど追加でお尋ね致します。。
grepは同様に指定したのですが、該当無しと成りました。
指定した値は
検索文字として →^....1 ← (矢印の間)です。
検索では見つかりますが、grepでは見つかりませんでした。
もう一つは置き換えですが、同様にして特定の文字を置き換えを実行したときに、
特定の位置だけを置き換える事は出来ませんか?
先の^....1 の所で末尾の空白を0に置き換えたいのですが
置き換え文字に^....10を指定したらそのまま置き換えになりました。
^....の部分をそのままで置き換えは空白部分とは出来ませんか?
よろしくお願い致します。
前野弘美



欧文テキストコピーアンドペーストでハング 投稿者:ニョロニョロ
2001年12月1日(土)15時35分

MMエディタ7.03についてお伺いします。

私は仕事柄英語以外の欧文のテキストを扱うことが多く、MMエディタは
欧文プロポーショナルフォントの取り扱いがスマートなので愛用させて
いただいています。

ところが、先日までWindows98で運用していたときには問題はなかった
のですが、今度Windows2000に移行したところ、一見なんでもない
テキストをペーストしただけでMMエディタが強制終了されてしまう
という症状に出会い、面食らっております。

具体的には、Word2000や他のエディタで編集した欧文アクセント
記号(`とか´¨などが上についているやつです)付きの文章を、
MMエディタで開いたある程度長い文書(1MB程度)に貼り付けた
ときに起きることが多いようです。

Windows2000のエラーログには、例外番号: c0000005 (アクセス違反)
という説明の後にいろいろ記録されていますが、私には意味がわかりません。

たとえばこのエラーログをお送りしたら、なんらかの対策を検討していただく
ことは可能でしょうか。

よろしくお願いいたします。

RE:指定桁位置が特定の文字列の行を検索する方法は? 投稿者:Miyamiya
2001年12月1日(土)12時18分

前野弘美さんへ。
桁位置とは少し意味が異なる場合もありますが、正規表現検索を使うと、
論理行頭からの文字の位置を指定して検索や Grepを行うことは可能です。
例えば6文字目からが10で有る所を検索したいなら、正規表現検索を
チェックして、検索文字列に、
^.....10
を指定すればいいです。
^ は行頭の目印、次の . (半角のピリオド) はスキップする文字の数だけ
指定します。

RE:編集行表示とBeginCollectUndo(); 投稿者:Miyamiya
2001年12月1日(土)12時16分

黒田 明さんへ。
こちらで試した限りでは特に問題ないようです。
MMのパッケージに添付している、zenhan.mam の main();関数を以下のように
変更してマクロを実行した後での、アンドゥ、リドゥともにまとめて実行され、
マクロ前の編集行のカラー表示が消えることもないです。
うまくいかない場合の、簡単なマクロのサンプルをアップしてもらえませんか。
------------------------------------------------------
main()
{
int saveIns;

saveIns = Ins();
InsMode(0);
aCode = Tcode();
BeginCollectUndo(); //アンドゥのまとめ、開始
if(Kcode())
zentohan();
else
hantozen();
InsMode(saveIns);
EndCollectUndo(); //アンドゥのまとめ、終了
}
------------------------------------------------------

RE:7.04β8について 投稿者:Miyamiya
2001年12月1日(土)12時14分

黒田 明さんへ。
別の子ウィンドウの背景色が干渉していると言うことなら、だいたい原因はわかりますので、
次の版で対応しておきます。

指定桁位置が特定の文字列の行を検索する方法は? 投稿者:前野弘美
2001年11月30日(金)18時22分

いつもお世話になります。
検索をするときに、それぞれの行の指定の桁位置が指定の文字列で有る所を見つけたいときには、どの様にすれば良いのでしょうか。
例えば6桁目からが10で有る所
同様にgrepも出来れば教えてください。
よろしくお願い致します。
Ver7.03です。

編集行表示とBeginCollectUndo(); 投稿者:黒田 明
2001年11月30日(金)15時02分

Miyamiyaさん

たびたび失礼します。
標記の件についてですが、行番号のところの編集行カラー表示をオンにしてい
るときに、BeginCollectUndo(), EndCollectUndo() で複数の処理のアンドゥ
をまとめているマクロを実行した後でアンドゥすると、マクロ前の編集行のカ
ラー表示が消えてしまうようです。
また、その状態でリドゥすると、MMが落ちてしまうことがあります。

調査のほどよろしくお願いします。

RE:7.04β8について 投稿者:黒田 明
2001年11月30日(金)13時53分

Miyamiyaさん

> β8の方法については根本的な解決にはなっていないので、次の版に付ける予
> 定はないです。折れ曲がった行の表示方法を見直すことでもう少し速くできそ
> うですのでその方法で実装の予定です。
なるほど。楽しみです(^_^)

> 高速スクロールを停止した(キーを離した)タイミングで、改行マークの位置
> の背景色だけが異なるというのは、具体的にどのような色になりますか。
> 同時に開いている別のウインドウの背景色とかですか。
言われてみればたしかに別の子ウィンドウの背景色だったと思います。

> 「次の見出し行へ」「前の見出し行へ」というキーコマンドとマクロ関数は次
> の版で実現しておきます。
よろしくお願いしますm(_ _)m

RE:7.04β8について 投稿者:Miyamiya
2001年11月30日(金)10時58分

黒田 明さんへ。
β8の方法については根本的な解決にはなっていないので、次の版に付ける予定は
ないです。折れ曲がった行の表示方法を見直すことでもう少し速くできそうですので
その方法で実装の予定です。

高速スクロールを停止した(キーを離した)タイミングで、改行マークの位置の
背景色だけが異なるというのは、具体的にどのような色になりますか。
同時に開いている別のウインドウの背景色とかですか。

「次の見出し行へ」「前の見出し行へ」というキーコマンドとマクロ関数は次の版で
実現しておきます。

7.04β8について 投稿者:黒田 明
2001年11月29日(木)14時45分

Miyamiyaさん
7.04β8を使ってみましたが、若干気になる点がありましたのでご報告します。
このベータ版ではスクロール中にカラー表示を一旦停止し、スクロール用の
キーを離したタイミングで再び描画を開始するようにしているのだと思いま
すが、
・ キーを離してもキーワード色の再描画が行われない場合があります。
  再現条件は分かりませんが、[EOF]位置までスクロールした場合に特に頻
繁に症状が現れるようでした([EOF]位置までスクロールした場合に必ず
再描画が行われないということではなく、再現頻度が高いということです)。
・ バーティカルラインに関しては高速スクロール中も描画が止まっていない
ように思えるのですが、そのためか、スクロール用のキーを離して他のカ
ラー部分が再描画されたタイミングで、逆にバーティカルラインが消えて
しまいます。
  そして、その状態から横方向にカレット移動するとバーティカルラインが
現れるのですが、そのとき現在のカレット位置と、先ほど縦スクロールを
終えたときのカレット位置との2本のバーティカルラインが表示されてし
まいます(後者の表示が消えません)。
という不具合があるようでした。

それと、今回のベータ版以前からたまにあったことなのですが、高速スクロー
ルを停止した(キーを離した)タイミングで、改行マークの位置の背景色だけ
が他の部分の背景色とは異なる色になってしまう場合があります。
これは今回のベータ版をテストしているときに2回ほど再現しましたので一応
あわせてご報告します。
(これと同種の症状として、行選択時に改行マークの位置だけ選択背景色とは
違う色になってしまうこともあります)

以上、調査のほどよろしくお願いします。

ただ、今回のようにスクロール中にカラー表示を停止することには一長一短が
あると思います。
私の感想としては、ひとつの論理行が何度も折り返されていて(複数の表示行
にわたっている)、かつ、カラー表示部分が多かったり正規表現でのカラー表
示を使っている場合にはたしかにスクロールが速くなるのですが、1論理行が
1表示行にとどまっていてキーワードも単語単位のものがほとんどな場合
(ソースコードなど)はもとからスクロールは遅くありませんでしたので、色
が消えてしまう違和感を味わう分かえって使い勝手が劣ってしまうように思います。
こうしたテキスト毎の傾向は大体表示設定毎にどのようなテキストを編集するか
の違いと一致しますので、できればスクロール中にカラー描画を停止するかどう
かは表示設定のところにスイッチをつけていただけるとありがたいです。

あと、催促になってしまい申し訳ないのですが、以前見出しジャンプ関連の要
望を出させていただいたことがあるのですが(この掲示板の過去ログの今年の
5月17日から同月19日までのところ)、そちらの方もお願いできないでし
ょうか?(ひょっとしたらお忘れなのではないかと・・(^^;)

要望内容としては、
・ 「次の見出し行へ」「前の見出し行へ」というキーコマンドとマクロの関
数(関数の方は、次または前の見出し行が見つかったか否かを戻り値で返
す)
・ 現在の行が見出し行かどうかを返すマクロ関数
の実装です。
こちらも是非よろしくお願いします。

マクロについて 投稿者:佐藤広樹
2001年11月27日(火)01時56分

前略
ご指摘いただいた通り「\{}タグを有効とする」をチェックオンにしたところ、うまくルビが振られるようになりました。これはすばらしい機能ですね。ありがとうございました。
                                     不一

複数置換[ALLREPS.MAM]の動作感想 投稿者:satoru
2001年11月26日(月)18時13分

宮崎様

お世話様でございます。
早速、リクエストにお答えいただきまして、ありがとうございます!
完璧に動作しました。しかも、[全体 ⇔ 選択範囲]の選択を特に指定することなく、
範囲選択したときのみ、自動的にそこだけの複数置換が実行させられるんだから、
非常に使いやすくて便利に思えます。

おかげ様で、複数置換用の設定ファイルを作るのが、非常に楽しくなりそうです。
今後とも、宜しくお願いいたします。

RE:複数置換[ALLREPS.MAM]について 投稿者:Miyamiya
2001年11月26日(月)16時50分

satoruさんへ。
131行目の
-----------------------------------------------------------
void AllReplace(char *src, char *dest)
-----------------------------------------------------------
から、最後までを以下と差し替えて下さい。
範囲が選択されていれば範囲内を、されてなければテキスト全体が対象となります。
-----------------------------------------------------------
void AllReplace(char *src, char *dest)
{
int dlen, slen, num, cp;
char *sp, *dp, *spe, *dpe;
int ycsr = Ycsr();
int stat = GetRep();
int loop = 1;
int bmode = Block();

DispOff2();
sp = src;
dp = dest;
while(*sp == ' ') // 先頭のスペースはスキップ
sp++;
while(*dp == ' ')
dp++;
cp = Cecp();
while(loop)
{
if(*sp == '\0') // 検索文字列がない
break;
if(KbHit() == 0x1b) // ESCが押された場合は終了
break;
spe = Strchr(sp, ' ');
if(spe == 0)
{ // 区切り文字が見つからないなら、これが最後の文字列
spe = Strchr(sp, '\0');
loop = 0;
}
else
*spe = '\0';
dpe = Strchr(dp, ' '); // 検索文字列の終わり位置を見つける
if(dpe == 0) //見つからないなら文字列の最後へ
dpe = Strchr(dp, '\0');
else
*dpe = '\0';
SetFindS(sp);
SetRepS(dp);
if(bmode) // 範囲選択なら
{
SetRep(0x5c); // 指定範囲内のみ、単語以外も一括置換 高速モード
num = Replace();
slen = Strlen(sp);
dlen = Strlen(dp);
cp += (dlen - slen) * num;
Select(bmode);
GotoY(ycsr);
GoCp(cp);
}
else
{
SetRep(0x44); // 単語以外も一括置換 高速モード
Replace();
}
sp = spe + 1; // 次の検索文字列の先頭へ
while(*sp == ' ') // 先頭のスペースはスキップ
sp++;
dp = dpe + 1;
while(*dp == ' ')
dp++;
}
if(bmode)
Select(0);
SetRep(stat);
DispOn();
}
-----------------------------------------------------------

複数置換[ALLREPS.MAM]について 投稿者:satoru
2001年11月24日(土)18時25分

宮崎様

度々お伺いいたします。
複数置換 [ALLREPS.MAM] についてですが、
現在の複数置換は、文全体を一括置換ですが、それとはべつに
“範囲指定” のみ、INIファイルより得る複数置換というのを
ぜひリクエストしたいのですが……いかがなものでしょうか?

何卒宜しくお願いいたします。

正規表現と画面スクロール 投稿者:satoru
2001年11月24日(土)17時13分

宮崎様

いつもお世話になっております。
正規表現での検索の意味、+ の意味、納得しました。
どうもありがとうございます。
これで何となくモヤモヤしていたものが、スッキリしました(^o^)。

+ を付けなくとも同じ色付けということが分かったので、
速い動作の方を選択させていただこうかと思います。
+ をつけないことによって、個別置換時に、素早く改行を取っていく作業で、
画面のスクロールが、全く遅れをとらずにキー連続打についてきてくれるので、
とっても助かっております。

それでは、また宜しくお願いいたします。

RE:ベータ8の動作報告 投稿者:Miyamiya
2001年11月24日(土)10時15分

satoruさんへ。
正規表現を使うと多彩な検索ができますが、普通の検索に比べると時間がかかる
のが欠点です。特に繰り返し回数が多い場合です。

書かれているようなパターンでは、+ を付けても付けなくても結果は同じです。
なぜなら画面の表示では、マッチしたらその部分を書いてまた次の位置から
マッチした部分を探すと言うことを行全体にわたって繰り返しますからです。
たとえば、1234567890 と言う文字列があった場合は、+ を付けた場合はこの部分
全体に1回でマッチします。そしてこの部分全体がカラー表示されます。
+ を付けない場合はまず最初の1文字にマッチして 1 のみがカラー表示されます。
そして次に2文字目の文字へマッチして 2 のみがカラー表示されます。そうして
10回のマッチとカラー表示を繰り返すと言うことになります。
結果的には、どちらも 1234567890 がカラー表示されます。

ベータ8の動作報告 投稿者:satoru
2001年11月22日(木)12時36分

宮崎様

いつもお世話になっております。
早速 [ベータ8版] を試してみました。
現実的ではないのですが、[全角1万文字/改行なし] という状態にて、
キーワード設定の比較をしてみたので、書かせていただきます。

@ [-.^,\\&$#"「」{}()/:;*!'、=%。?@・−\[\]<>+]+ を正規表現設定
A @の半角記号たちを、全て単独で1文字ずつ単語検索設定
上下スクロールと、高速置換、[詳細]文字数カウントマクロを試してみました。

● 上下スクロールですが、@は5〜6行(1行=表示行80に設定)ゆ〜っくり動いてから、
その後スムースに始動しました。Aですと、始めからスムースでした。
● 高速置換ですが、@は、約250文字のヒットが、5〜6秒、Aですと、1〜2秒未満。
● 文字カウントも、高速置換と同様。

といった差がありました。
実際、原稿に追われながらガチャガチャやっておりますもので、
Aの個別に[単語検索]設定のほうが、ストレスがないですね。
あと、1つ質問なのですが、正規表現の [ ]+ の、+ がある/ない の違いですが、
例えば [A−Za−z0−9] という正規表現ですけれど、
+ を付けても付けなくても、111111 0123 abaac00 というように、
何個同じ文字が繰り返されてもちゃんと強調色付けされるのですが……。
もし + を付けないと、どういうパターン(文字列)の時に、無視されてしまうのか、
お教え願いますでしょうか? 

それでは、何卒宜しくお願いいたします。

RE:画面のスクロールの実験結果報告 投稿者:Miyamiya
2001年11月22日(木)10時12分

satoruさんへ。
スクロール時のカラー表示時の負荷を少なくしたベータ版をここの一番下の方へ
置いていますので、ダウンロードして使ってみて下さい。
ファイル名は、MM704B8.LZH で実行ファイルのみが入っています。

正規表現の [ ]+ は [ ] 内の文字の1文字以上の繰り返しにマッチという意味です。
+ がない場合は [ ] 内の文字の1文字にマッチという意味になります。
[-.^,\\&$#"「」{}()/:;*!'、=%。?@・−\[\]<>+]
では [ ] 内の1文字にマッチするはずです。

画面のスクロールの実験結果報告 投稿者:satoru
2001年11月20日(火)19時13分

宮崎様

度々書き込みをさせていただきます。
上下カーソルがスムースに動作しないため、キーワード設定をいろいろいじくっていたのですが、
ふとしたことで、@ [-.^,\\&$#"「」{}()/:;*!'、=%。?@・−\[\]<>+]+ という正規表現をやめて
1つ1つの記号をそれぞれ【単語単位で検索】にしてみたら、少し動きがよくなり、
しかも、これまたふとしたことで、A [A-Za-z0-9]+ のおしりにある + をとってしまったら、
もう完璧にスムースに動作してしまったんです!
しかも、色付けは完璧になされているのです。
これって、どういう現象なんでしょう?

不思議なことだなぁと思い、@の正規表現のおしりにもある + をとってみたら、
こちらは、動作しませんでした。
A の正規表現の方だけ、ちゃんと動作し、スクロールが完璧になるんだから、
もう全く不思議で、意味不明です(^o^)。

果たして、これでよろしいのでしょうか……ぜひご教示くださいませ。
宜しくお願いいたします。

画面上下スクロールの結果報告 投稿者:satoru
2001年11月20日(火)13時55分

宮崎様

お世話様でございます。
画面のスクロールが遅くなる現象が、なんとなくわかりました。
メインで使用しているWin.meですが、いろいろ都合により、
再フォーマットしたところで、真っ先にMMを入れて動作させたところ、サクサク動きました。
そこで、自分用のキーワード設定にしたところ、症状が出たんですね。
もしかして、キーワードの設定のし過ぎ、もしくは、4色全て使いすぎ?
どのくらい設定してあるのかというと、

[-.^,\\&$#"「」{}()/:;*!'、=%。?@・−\[\]<>+]+  緑色
[A-Za-z0-9]+  黄色
[TUVWXYZZ[\]posqt℃u]+  水色
[―─]  赤

といった具合で、とにかく記号と英数字半角たちは、全て色付け設定になっているんですね。
メインが遅くては仕方ないので、このコンパック、インテル社のグラフィック・ドライバが入っているらしく、
HPから最新のドライバを拾ってきて、更新したところ、遅くなる現象はクリアしました。

しかし、サブのWin.98(NEC)になると、メーカーに問合せてみても、機種が古いせいか、
そういったドライバの更新は、全く無理状態でして……。(元々、Win95の機種でした)
ちなみに、MMをインストールしたときに設定されているキーワード設定ファイル[MMKWD]
に変更すると、古いサブPCもサクサク動作しました。
しかも、全く改行が入っていない原稿も、スムースに動作したので、
これはやはりキーワード色に関係してくるものじゃないかと思うのですが、いかがでしょう?
ただし、画面上、1行ごとに改行が入っているようなデータですと、
自分用のキーワード色をつけても、全く問題なく動作するのです。
改行のない原稿と、キーワード色の兼ね合いで、上下スクロールに支障をきたすとなると、
ドライバを更新できない場合は、やはりキーワードの色付けを減らすしかないのかなぁ……と
思っている次第なのですが……。

もしくは、なにかキーワード設定にて、画面に負担をかけないような設定の仕方とかが
あったりするのでしょうか? これ以上のこととなると、素人には、もう手が出ない状態です^_^;。

何といったらよろしいのか……こんな結果報告となりました。
それでは、何卒ご教示宜しくお願いいたします。

※スムーススクロールについては、オフにして使用しております。
※ノートパソコンでの、[ZHANZ.MAM] ですが、ご指示の通りしたところ、
しっかり動作しました。ありがとうございました。

RE:画面上下スクロールの遅さについて 投稿者:Miyamiya
2001年11月20日(火)10時22分

satoruさんへ。
もしかして、表示設定 -> 編集1 の スムーズスクロール が ON になって
いませんか。

画面上下スクロールの遅さについて 補足 投稿者:satoru
2001年11月19日(月)11時30分

宮崎様

下の上下スクロールについての、補足です。
画面上にある行内上でのカーソル上下移動については、全く問題はありません。
例えば、1画面15行あったとしたら、その範囲内での上下カーソル移動は
全く問題がないということです。
画面表示外をスクロールして表示させようとすると、突然、遅くなってしまうのです。

それでは、宜しくお願いいたします。

画面上下スクロールの遅さについて 投稿者:satoru
2001年11月19日(月)11時07分

宮崎様

いつもお世話になっております。
[7.04β5] を使用させていただいているのですが、
最近気になるのですが、キーボード上での画面の上下のスクロールが、
非常に遅くなってきているのです。
大して重いデータでもないのに、“カタン・カタン” というような感じで
画面がスクロールしていくんですね。
左右のカーソル移動は、全く問題がないのです。
コンパネのキーボードで、表示を速いほうにしてみたり、
MMの割り当てるメモリを増やしてみたりしたのですが、特に変化がありませんでした。
以前は、全くこのようなことがなかったので、グラフィックボードは関係ないと思います。
スムースに動いていた頃のMMとくらべて、環境が変わっていることといえば、
マクロを増やしたことくらいでしょうか……。

遅く感じるときのテキストは、和文全角文字数にして、200文字ほどで論理改行がくるようなパターンの原稿ですと、上下カーソルスクロールが非常に遅くなってくるんです。
こういう、あまり改行の無い原稿てすと、
スクール速度が遅くなったりするものなのでしょうか?
それでは、よろしくお願いいたします。

※ノートパソコンでのマクロの不作動は、確認中です。

RE:ノートパソコン上での zhanz 不動作について 投稿者:Miyamiya
2001年11月17日(土)11時01分

satoruさんへ。
それは 15行目でインクルードしている Mmdialog.h が見つからないための
エラーです。Mmdialog.h はダイアログ形式のマクロで使うヘッダファィルです。
マクロキットに添付されている Mmdialog.h ファイルをマクロのあるフォルダか
MMのあるフォルダかのいづれかにおいて下さい。それで動くようになります。

ノートパソコン上での zhanz 不動作について 投稿者:satoru
2001年11月16日(金)12時08分

宮崎様

いつもお世話になっております。
サブで使用している、NECのノートパソコン [LaVie NX] Win98 に
MMを入れて使用しているのですが、最新の [zhanz] マクロを入れて使用しようとしたら、
【マクロ構文エラーが15行目で発生しました。】 というメッセージが出てしまい、
動作しなかったのです。
この原因について、何卒ご教示くださいますよう、宜しくお願いいたします。
(ちなみに、Win98 SE ではありません。メインで使用している Win Me は、何も問題なく動作しているのですが……)

RE:角藤TeXとGUIShell 投稿者:Miyamiya
2001年11月15日(木)11時05分

K.WATANABEさんへ。
プレビューの画面が出た直後にCannot open DVIfileが表示されます。
というのは、dviout.exeのパスが通っていないためです。
パスを通せば以前のままで動くと思います。
しかし、
 *dvi = "c:\\Dviout\\dviout.exe"
のようにフルパスで場所を指定してやるのが完璧ですね。

印刷について 投稿者:satoru
2001年11月15日(木)10時38分

宮崎様

お世話様でございます。
半角記号たちの下線についてですが、ご指示のとおり、
[見出し行] と、あと [色・スタイル] のところも
全てチェックをオフにしてみましたら、無事に下線が消えました。
これで一安心しました。どうもありがとうございました。
文字のベタ送り印刷については、ただいま色々と試しているところなので、頑張ってみたいと思います。
なんと言っても、[縦中横] が、設定ひとつで、自動的に縦組になってくれるのですから、
ワードなどよりも非常に優れていると思っていますもので(^o^)。

それと、いままでの [英数字の全角⇔半角変換] マクロを、
ひとつの選択マクロにまとめていただきまして、大変ありがとうございました!
早速ダウンロードして、使用しております。
こんなにも細かに設定できるものは、他のエディタにはないのでは?

今後とも、何卒宜しくお願いいたします。

RE:印刷について 投稿者:Miyamiya
2001年11月15日(木)10時35分

satoruさんへ。
ある特定の文字だけに罫線(下線)が付くと言うことは、その文字がキーワード
表示の対象となっており、そして印刷設定の 色・スタイル のキーワード色の
文字スタイルで下線の付いたフォントスタイル(アンダーライン等)を指定され
ていませんか。

印刷設定の書式登録では拡張子まで入力して下さい。
次の版では、拡張子がない場合は .pr1 を補完するようにしておきます。

RE:角藤TeXとGUIShell  投稿者:K.WATANABE
2001年11月15日(木)05時55分

Miyama 様
 この度作成して頂きましたguishell.exeを使わない<コンパイル&表示>マクロは無事作動しました。
 MMTEX.TXTを参照して, platex.exeへのパスを27行目に
 *ptex = "c:\\usr\\local\\bin\\platex.exe"
に書き換え, dviout.exeへのパスを52行目に
 *dvi = "c:\\Dviout\\dviout.exe"
のように書き換えました。この後このマクロを実行したところ角藤TeXをguishell.exeなしで使えるようになりました。これで, MMエディタで角藤TeXが
使えます。ありがとう御座います。早速, 登録し大いに利用させて頂きます。
今後ともご教示をお願い致します。

RE:角藤TeXとGUIShell  投稿者:K.WATANABE
2001年11月14日(水)22時18分

便利なマクロを作成して頂きありがとう御座います。早速, 利用させて頂きました。次のような方法で利用しようとしましたところ, (1)COMPILE.MAMという名前でマクロ登録をする。
(2)「マクロ」>「登録したマクロの実行」でCOMPILE.MAMを実行
(3)「現在のファイルをTeXで処理」を実行
(4)「プレビュー」を実行
この後, プレビューの画面が出た直後にCannot open DVIfileが表示されます。
 これに対する対処の方法をご教示下さい。

印刷について 投稿者:satoru
2001年11月14日(水)10時25分

宮崎様

早速のご教示、ありがとうございます。
ご指示のとおり、MMPR−1 や 印刷見本で確認したところ、
何の問題もありせんでした。
ちなみに、自分で設定したものを、プレビューでみたところ、
やはり半角括弧の下に罫線が付いておりました。
念の為、再度、シンプルな形で印刷設定を試みたところ、やはり罫線が付いてしまうんですね。
その画像を、プレビュー画面と印刷設定の画面をキャプチャーして、
宮崎様のメールにてお送りしておきますので、ご覧下さいませ。
どこか、MMの印刷機能がおかしくなってしまっているのでしょうか?
キャプチャーを見ていただくとわかるのですが、
括弧だけではなく、全角のマイナス、半角記号たち全てに、罫線が付いてしまうんですね。
もうこうなってくると、不思議で仕方ありせん。

それと、印刷設定の書式登録についてなのですが、
ファイル名を付けて、保存をクリックすると、TEXTファイルになってしまうのです。
必ず、ファイル名の後ろに、拡張子を入力してあげないといけないのでしょうか?
ちなみに、ファイルの種類のところは、特になにもいじってはいません。
【印刷書式ファイル(*.PR1)】 となっているままにしてあります。

では、何卒宜しくお願いいたします。

RE:半角括弧の左横(下)の余分な罫線? 投稿者:Miyamiya
2001年11月13日(火)11時10分

satoruさんへ。
こちらでは、半角括弧 () の左横(下)に縦線が印刷されてしまうという事は
縦/横ともないようです、添付している印刷書式 MM.pr1 や 印刷見本.pr1 でも
出ますか。また、プレビューでも出ますか。

※ベタ送りの件
ベタ送りで文字間隔に空きができるのは、そのフォント自体が空きを持っている
ためです。そういう場合に空きを完全になくしたいなら、文字数優先のチェック
をはずして、字間隔に 0 以下の数字を設定して調整すればいいです。

文字数優先をチェックして、余白を詰めてベタ送りにした場合はそのフォント自
体が空きを持っている場合は、見た目には多少空きがあるようになります。

RE:MMエデイタのスペルチェックについて 投稿者:Miyamiya
2001年11月13日(火)11時07分

Y.Takataさんへ。
カソールを単語とEOFの間に置いてカソール以前にチェックでの実行時に、
その単語がスペルチェックの対象とならない件についてはこちらでも確認できました。
この件を修正したベータ版をここの一番下の方へ置いていますので、ダウンロードして
使ってみて下さい。
ファイル名は、MM704B7.LZH で実行ファイルのみが入っています。

半角括弧の左横(下)の余分な罫線? 投稿者:satoru
2001年11月12日(月)15時36分

宮崎様

度々お邪魔いたします。
縦/横とも印刷時、半角括弧 () の左横(下)に縦線が印刷されてしまいます。
フォントを変えてみても、線が入りました。
どこか設定にて、この余分な罫線を取ることができるのでしょうか?
お手数ですが、ご教示下さいますよう、宜しくお願いいたします。

※ベタ送りの件ですが、MS明朝を使うと、上手くいかないようです。
ダイナフォントの、平成明朝あたりを使用してみると、
けっこうベタ送りに近くなりました。
あとは、微妙な余白調整で、何とかベタ送りに近づけたいと思います。

RE:角藤TeXとGUIShell 投稿者:Miyamiya
2001年11月12日(月)15時32分

K.WATANABEさんへ。
以下のマクロを使ってみて下さい。
GUIShellを使わない、コンパイル&表示マクロです。
----------------------------------------------------------------------
#define SW_SHOW 5
#define WM_SYSCOMMAND 0x0112
#define SC_CLOSE 0xF060
#define SC_MAXIMIZE 0xF030
#define MenuSelect() PostMessage(Handle(), 0x100, 0x28, 0)
main()
{
int ans;
char *ms[4];

ms[0] = "現在のファイルをTeXで処理(&T)";
ms[1] = "プレビュー(&V)";
ms[2] = ""; // セパレータ
ms[3] = "終 了(&E)";
MenuSelect(); // メニューの一番上を選択表示する
ans = Menu(ms, 4); // メニューの表示
if(ans == 0)
Compile();
else if(ans == 1)
Preview();
}

// コンパイル
void Compile()
{
char *p, dir[300], fname[300], cfname[300], command[500];
char *ptex = "platex";

Save();
GetFileName(fname);
p = Strrchr(fname, '.');
if(p == NULL || (Strcmpi(p+1, "tex") != 0 && Strcmpi(p+1, "dtx") != 0))
{
Message("このファイルの拡張子は tex ではありません。\n終了します。");
return;
}
p = Strrchr(fname, '\\');
Strcpy(cfname, p+1);
*p = '\0';
GetCurDirectory(dir);
SetCurDirectory(fname);
sprintf(command, "%s %s", ptex, cfname);
WinExec2(command);
SetCurDirectory(dir);
}

// プレビュー
void Preview(void)
{
int i;
char *p, dir[300], fname[300], dfname[300], s[500];
char *dvi = "dviout.exe";
char appname[100], topic[100];

GetFileName(fname);
p = Strrchr(fname, '\\');
strcpy(dfname, p+1);
*p = '\0';
GetCurDirectory(dir);
SetCurDirectory(fname);

if((p = Strrchr(dfname, '.')) != NULL)
strcpy(p+1, "dvi");
strcpy(appname, "dviout"); // プレビュー
strcpy(topic, "dviout");
hwnd = FindWindow("dviout", 0);
if(hwnd == NULL)
{ // dviout を起動
WinExec(dvi, SW_SHOW);
hwnd = FindWindow("dviout", 0);
}
for(i = 0; i <= 10; i++)
{ // MAX10回トライ
if(DdeInitiate(appname, topic) == 0)
{ // NG
if(i == 10)
{
Message("DVI/DDEサーバが応答しません。");
return;
}
Sleep(500); // 500ms
}
else // OK
break;
}
SendMessage(hwnd, WM_SYSCOMMAND, SC_MAXIMIZE, 0); // 最大化
strcpy(s, "[WinNormal]");
DdeExecute(s);
strcpy(s, "[PageOpen(1)][FileOpen\(\""); // ページを指定
strcat(s, dfname);
strcat(s, "\"\)]");
DdeExecute(s);
DdeTerminate();
SetFocus(Handle());
SetForegroundWindow(hwnd);
SetCurDirectory(dir);
}
----------------------------------------------------------------------

行末禁則と印刷設定について 投稿者:satoru
2001年11月12日(月)13時18分

宮崎様

お世話になっております。
【行末禁則処理】 の意味がわかりました。
なるほど、おっしゃる通りのぶら下がり表示になりますので、
特に問題はないということですね。
ただ、これが印刷されるとなると、やはり行末に 「 は絶対禁止事項となるので、
あとは手動で次の行に送ってやればいいのかもしれませんね。

ベタ送り印刷についてですが、ご指示の通りにやってみたところ、
確かにベタ送りっぽくなったのですが、1ポイント小さい送りになってしまいました。
くわしく書きますと、13Q(9P)ベタ送りが欲しかったので
ご指示の通り、警告表示が出るまで、数値を天地均等に入れてみて印刷したところ、
12H(1H=1Q/8P)送りに近い感じになりました。

ただ、DTPでいつも頭を抱えてしまう、
以前からの 級数 と、 ポイント の違い・誤差から、
こういう字送りや行間のズレが生じてきてしまうような気もしているのです。
ポイント を ミリ に換算すると、非常にやっかいなことが起きてしまいますし。

このMMの印刷設定は、基本的に ミリ のようですが、
Winのフォントなどは ポイント ですよね。
このへんの単位の違いについて、宮崎様は、どのような形で回避していくと
一番うまくいくとお思いでしょうか?
なんともスッキリした質問になっていませんが、
何卒よろしくお願いいたします。

>RE:MMエデイタのスペルチェックについて 投稿者:Y.Takata
2001年11月11日(日)01時08分

宮崎 様へ

早々に対応していただき有難うございました。テストの結果、spell checkが正常に動作
いたします。

下記のトライ結果

画面の英単語入力例@
1.history
2. country
3. countri
4. [EOF]


画面の英単語入力例A
1.history
2. country
3. countri[EOF]

@の例では実行範囲すべてにおいてOK

Aの例ではカソール表示マーク(|)をcountriとEOFの間に置いてカソール以前にチェックを入れて実行しますとNGとなります。

以前からスペルチェック機能付きのEditorがほしかったのですが、あきらめていた時に偶然にも宮崎さん作のEditorを入手でき大変感謝しております。
以前は膨大な英文をEDITOR上で書いた後、checkするのに大変でした。

後日、これに関連した内容で「専門語彙を含んだユーザー辞書の作成とスペルチェック辞書のマージングについて」質問したくまたよろしくお願いいたします。





RE:角藤TeXとGUIShell  投稿者:K.WATANABE
2001年11月11日(日)00時38分

現在, エディタLabEditorとAkashaで角藤TeXを使っています。これにはコンパイルのマクロはありません。platex.exeとdviout.exeへのパスを通しておけばよいようになっています。Hidemaruも利用していますが, この場合は, <プログラム実行>で, platex.exeへのパスと作成ファイル名を入力することでコンパイルされます。

RE:MMエデイタのスペルチェックについて 投稿者:Miyamiya
2001年11月10日(土)12時30分

Y. Takataさんへ。
以前は、英辞郎からスペルチェック用の辞書MMSpell.splを作っていましたが、
Ver7.0からは、MMのパッケージ内にカスタマイズ可能な独自の辞書(Mmspell.dic)
を添付しています。したがってスペルチェックには英辞郎は必要ないです。
以前、英辞郎から作られたMMSpell.splが残っているなら、これはもう使いませんので
削除してもらってけっこうです。

スペルチェックを行うには、使用する辞書を指定するだけですぐに使えます。
環境設定 -> HTML/スペル -> スペルチェックで使用する主辞書 とスペルチェックで
使用するユーザー辞書 を指定して下さい。
デフォルトでは Mmspell.dic と MmAdd.dic になっていますので、そのように設定して
おけばOKです。これでスペルチェック機能が使用できるようになります。

RE:行末禁則処理について 投稿者:Miyamiya
2001年11月10日(土)11時37分

satoruさんへ。
調べてみましたが特に問題はないようです。
行末禁則文字は、行末にきたときのみ行頭へ送ります。
例題での 「 はまだ行末ではなく 『 が本来は行末なので行頭へ送られます。
禁則ぶら下げの3文字設定と言うのは、行頭禁則文字を行末にぶら下げる文字の
MAX数です。行末禁則文字を行頭へ送る文字は行末にある1個のみです。2個以上
の文字が行頭へ送られることはないです。

●私へのメール:miyamiya@po.saganet.ne.jp
戻る