■ 質問はここへ ■

前へ 次へ
No. 281 (280へのコメント)投稿者: CINEPHILE日付: 2001/10/02 04:36:10
題名 : Re^5: 逆順並べ替え→行つなぎ。

>行末規則で正規表現置換っていうのは、「タグつき正規表現」を使わないとヒッ
>トした文字を残せないから、改行コードをまたいで置換ができない(改行コード
>の削除ができない)んですよね。編集時に1行 4000 バイトまで、という制限も
>あるので、改行を全部取ったりするとエラーになりがちですし。

 チャットというものをよく知らないのですが、ブラウザの横幅が常に固定さ
れていて、途中で改行のはいる桁数が決まっているのであれば、折り返し桁数
かメール文書の整形桁をそれにあわせておいて、いったん @FormatDelCr でつ
なげてから逆順に並べ替えるいうわけにはいかないでしょうか。

 まったく見当違いだったらすみません。

No. 282投稿者: とっても初心者日付: 2001/10/22 11:19:09
題名 : \nが変換出来ないんですけど

元MIFESユーザーです。
QX Ver6.6とねこみみさんの複数ファイル一括文字列変換(カレントファイル)を多用しています。
それでちょっと戸惑っています。

置換える文字列がひとつだと"\n"の変換が出来るのに文字列が複数になると出来なくなってしまい、変換自体が化けてしまいます。

あと"^"と"$"はなぜ正規表現なのでしょう。
別に非難しているつもりはありませんが、他のエディタとはちょっと違うので・・・理由を教えて下さい。
おねがいします。

No. 283 (282へのコメント)投稿者: かぶねこ HP日付: 2001/10/22 15:03:13
題名 : Re:\nが変換出来ないんですけど

これは ねこみみ さんのマクロの問題なので、検索・置換文字列がマクロによっ
てどのように格納されるのか、というあたりにかかわってくるのだと思います。
このへんは ねこみみ さんのほうに質問していただけますか。

ねこみみ さんが読んでいるのが確実なのはニフティの FWINAL のエディタ会議
室だけなので、ここは直接メールで連絡していただくのがいいかと思います。

\n が入ったときに複数文字列の置換ができない、というのは、QX 自体の問題で
はありません。また、「^」と「$」については QX では「正規表現対応」をオン
にしなくても使える「特殊文字」となっていますが、「^」と「$」は sed、awk、
perl などでも使われている正規表現でもあります。「*」だけはちょっと複雑で、
正規表現がオフのときとオンのとき、それぞれ「特殊文字」と「正規表現」にな
るのですが、意味がまったく違います。

「他のエディタとちょっと違う」ということであれば、それはそちらのエディタ
のほうが標準的な特殊文字なり正規表現なりを採用していないのかと思うのです
が、複数のエディタでそうなんでしょうか。

また、これはお願いですが、ハンドル(ウェブ上の名前)は、「とっても初心者」
というようなものでなく、できればもっと「個人」として特定できるものにして
ください。

No. 284 (283へのコメント)投稿者: しげお日付: 2001/10/22 18:02:42
題名 : Re^2:\nが変換出来ないんですけど

>これは ねこみみ さんのマクロの問題なので、検索・置換文字列がマクロによっ
>てどのように格納されるのか、というあたりにかかわってくるのだと思います。
>このへんは ねこみみ さんのほうに質問していただけますか。
>\n が入ったときに複数文字列の置換ができない、というのは、QX 自体の問題で
>はありません。

->SiさんのREPMULTI.MAC(複数文字列一括置換マクロ)でも同じ結果になったので、QXの問題かなと思ったのですが・・・。

また、「^」と「$」については QX では「正規表現対応」をオン
>にしなくても使える「特殊文字」となっていますが、「^」と「$」は sed、awk、
>perl などでも使われている正規表現でもあります。「*」だけはちょっと複雑で、
>正規表現がオフのときとオンのとき、それぞれ「特殊文字」と「正規表現」にな
>るのですが、意味がまったく違います。
>
>「他のエディタとちょっと違う」ということであれば、それはそちらのエディタ
>のほうが標準的な特殊文字なり正規表現なりを採用していないのかと思うのです
>が、複数のエディタでそうなんでしょうか。
>

->「^」と「$」については MIFES・MMXでは正規表現ON時のみ対応でした。

>また、これはお願いですが、ハンドル(ウェブ上の名前)は、「とっても初心者」
>というようなものでなく、できればもっと「個人」として特定できるものにして
>ください。

->申訳ありません。ハンドルネーム変えました。

No. 285 (284へのコメント)投稿者: かぶねこ HP日付: 2001/10/22 19:53:28
題名 : Re^3:\nが変換出来ないんですけど

しげお さん、ハンドル変更ありがとうございました。

いま気がついたのですが、もしかして「\n」というのは、QXで検索・置換に使
う特殊文字の(改行の意味の)「\n」ではなくて、そのものの文字列の「\n」こ
とだったのでしょうか。だとすると、特殊文字をエスケープするために「\\n」
と表記しなければいけないのですが。

>SiさんのREPMULTI.MAC(複数文字列一括置換マクロ)でも同じ結果になったので、
>QXの問題かなと思ったのですが・・・。

Si さんのマクロも引っぱり出してきました。これはテーブルファイルを作って
おくんですね。途中に「\n」(改行)を含む文字列を複数指定しても、うちの環
境では問題ないようです。すみませんが、具体的にどのような文字列を、マクロ
実行直前に置換ダイアログの設定がどうなっているかを添えて、教えていただけ
ませんか。

また、QX で複数文字列を置換するマクロのもっとも基本的なかたちはこんな感
じです。

proc main
@@ReplaceStringMulti "文字列1", "置換文字列1"
@@ReplaceStringMulti "文字列2", "置換文字列2"
@ReplaceStringMultiExec 1
end proc

ここの文字列のところにテストする文字列を入れて実行すると、もっとも基本的
な状態でのテストができます。

>「^」と「$」については MIFES・MMXでは正規表現ON時のみ対応でした。

なるほど、そういう意味でしたか。たしかに。特殊文字であることに気がつかな
いと予想した動作をしなくて驚くことがあるかもしれません。

QX は古いバージョンでは正規表現に対応していませんでした。だんだん便利な
機能がついていくなかで、正規表現より先に「特殊文字」関係が採用されたので、
正規表現オンにしなくても使う設計になっているのだと思います。じつはわたし
が初めて QX に触れたころには、改行(\n)の置換もなかったんですが、あれよ
あれよという間にタグつき正規表現まで対応されてしまいまして。

No. 286 (285へのコメント)投稿者: しげお日付: 2001/10/22 23:06:10
題名 : Re^4:\nが変換出来ないんですけど

回答ありがとうございます。

問題無く動いているということは使い方が悪いのでしょうね。

こんなテキストを
$1001:A^1,B^2,C^3;
$1002:D^4,E^5,F^6,
G^7,H^8,I^9;
$1003:J^10,K^11,L^12,M^13,
N^14,O^15;
$1004:P^16,Q^17,R^18;

こんな形式に変換したかったのですが
$1001={A-1,B-2,C-3};
$1002={D-4,E-5,F-6,G-7,H-8,I-9};
$1003={J-10,K-11,L-12,M-13,N-14,O-15};
$1004={P-16,Q-17,R-18};

パラメータは
SearchStr01=:
ReplaceStr01=={
SearchStr02=\^
ReplaceStr02=-
SearchStr03=;
ReplaceStr03=};
SearchStr04=,\n
ReplaceStr04=,
です。

パラメータをひとつずつ単独で実行すると置換が正常に出来るのに,
4つのパラメータを一括で実行すると化けてしまいます。
どこがいけないのでしょう?
教えて下さい。

No. 287 (286へのコメント)投稿者: かぶねこ HP日付: 2001/10/22 23:58:51
題名 : Re^5:\nが変換出来ないんですけど

いただいた例をマクロに入れてやってみたところ、\n では問題が生じるのをこ
ちらでも確認しました。む、バグか、と思いつつ、マクロヘルプを読んでいたら、
@@ReplaceStringMulti の項目に、「文字列に、改行(\n)を含めることはできま
せん」という1文がありました。

というわけで、QX の一括文字列置換では「\n」は扱えない、が正しかったわけ
です。最初のわたしのレスは、したがって間違いです。すいませんでした。わた
しのところで置換が可能だったのは、ひじょうにシンプルな例のみをやってみた
からかもしれません。

となると、複数文字列一括置換では \n を含むものだけは除外しておいて、別途
改行だけ処理することになってしまいますね。あ、そう言えば、複数文字列一括
置換は、ある行を読み込んで、そのなかで同時に指定された複数の文字列を探す
わけですから、しくみからも \n には対処できないのかもしれません。

マクロでやるなら、改行だけは @ReplaceString2 を使えばうまくいきます。

proc main
@UndoBlock=1
@@ReplaceStringMulti ":", "={"
@@ReplaceStringMulti "\^", "-"
@@ReplaceStringMulti ";", "};"
@ReplaceStringMultiExec 1
@MoveFileTop
@ReplaceString2 ",\n", ",", 1
@UndoBlock=0
end proc

No. 288投稿者: masa日付: 2001/10/23 03:42:20
題名 : B4縦書、袋とじ印刷は可能?

B4の縦書で袋とじ印刷、というのは可能でしょうか。これができるとワードとおさらばできるのにな〜、と思い悩むど素人です。よろしくお願い致します。

No. 289 (288へのコメント)投稿者: CINEPHILE日付: 2001/10/23 07:47:27
題名 : Re:B4縦書、袋とじ印刷は可能?

> B4の縦書で袋とじ印刷、というのは可能でしょうか。これができるとワードとおさらばできるのにな〜、と思い悩むど素人です。よろしくお願い致します。

 印刷ダイアログでまず縦書き用フォントを指定し、紙の向を「縦」、「紙内
ページ」を「2」、「ページ幅」で左右のページ間の幅を指定します。あとは、
文字数、行数、余白などを、制限範囲内の適当な値に調整して印刷します。

No. 290 (287へのコメント)投稿者: しげお日付: 2001/10/23 09:26:30
題名 : Re^6:\nが変換出来ないんですけど

自分もヘルプは確認していませんでした。
まさか"\n"が使えないとは・・・。
分かりました。マクロは直せそうもないので文字列を工夫するように気を付けます。
ありがとうございました。

次へ
現在の既読番号は 0  既読を


メールアドレスを表示するにはURLの後ろに &m=29159987 をつけてください。
ユーザー フォーラム一覧

http://www2k.biglobe.ne.jp/~araken/
http://0ban.com/araken/