◀ANSI版開発トップへ
  • 1461 PPA.DLL対応パッチ
    • 1463 マクロ新コマンド一覧
      • 1466 Re: マクロ新コマンド一覧
        • 1468 Re2: マクロ新コマンド一覧
      • 1497 Re:マクロ新コマンド一覧
        • 1501 Re2:マクロ新コマンド一覧
          • 1504 Re3:マクロ新コマンド一覧
            • 1506 Re4:マクロ新コマンド一覧
              • 1510 Re5:マクロ新コマンド一覧
    • 1464 Re:PPA.DLL対応パッチ
    • 1541 Re: PPA.DLL対応パッチ
      • 1542 Re2: PPA.DLL対応パッチ
  • [1461] PPA.DLL対応パッチ やざき 2002年02月03日 18:32

    PPA.DLL対応パッチをアップロードしました。

    -----PPA.DLLに対応させるときにとった方針-----
    ダイアログを表示させて何かする機能を、すべてダイアログ表示と、機能実行部を分けるように努力した。

    ※いまのところ、マクロから、ダイアログ表示コマンドを呼び出すことはできません。

    具体的には、
    ・F_EXECCOMMAND→F_EXECCOMMAND_DIALOGに変更し、外部コマンド実行ダイアログ表示コマンドとした。
     F_EXECCOMMANDを新設し、外部コマンド実行コマンドとした。
    ・F_GREP→F_GREP_DIALOGに変更し、GREPダイアログ表示コマンドとした。
     F_GREPを新設し、GREP実行コマンドとした。
    ・F_REPLACE→F_REPLACE_DIALOGに変更し、置換ダイアログ表示コマンドとした。
     F_REPLACEを新設し、置換実行コマンドとした。
     置換実行コマンドは、CEditViewに移動した。
    ・F_JUMP→F_JUMP_DIALOGに変更し、指定行へジャンプダイアログ表示コマンドとした。
     F_JUMPを新設し、指定行へジャンプ実行コマンドとした。
    ・m_pcOpeBlkがNULLか否かで困ったことがあったので、とりあえず、
     1.m_pcOpeBlk == NULLのとき
      m_pcOpeBlkを作成。
     2.m_pcOpeBlk != NULLのとき
      何もしない。
     という方針にしてみた。

    ・マクロをCSMacroMgrに統一。PPA.DLLアリ/ナシを極力統一するように努力する。(引き続き努力する)

    -----ほかの修正-----
    ・CDlgFind::AddToSearchKeyArr()を、CShareData::AddToSearchKeyArr()に移動し、置換ダイアログ、GREPダイアログなどから使えるようにした。
     同様に、CShareData::AddToReplaceKeyArr()、を追加。

    ・マクロを別フォルダに保存すると、マクロフォルダが変わってしまうバグ修正。

    ・文字をたくさん入れると折り返して1文字目に同じ文字が繰り返し表示されてしまうバグ修正(したつもり)

    ・Windowsでフォントを大きくしておくと、メニューが窮屈になる問題に対処。
     ステータスバーとか、ほかの部分も変えたほうが親切かもね。

    です。

    diff形式がいいそうなので、リリース版からのdiffが、diff_2002_2_3.zip。更新したソースはppa_2002_2_3.zip。
    です。
    私はdiffを渡されても管理する自信が無いので、今回から一式をアップロードするのはやめました。
    ではよろしくお願いします。
    • [1463] マクロ新コマンド一覧 やざき 2002年02月03日 18:50

      マクロで用意されているコマンド。
      どこかにアップロードすればよかったかも。

      引数が無いものについては、頭に「S_」が付くだけで以前と同様です。
      文字列は''で囲む必要があります。あわせて\でエスケープする必要があるのは"ではなく'になります。
      コメントは//のみ。/* */は使えません。

      以下、今回追加されたコマンドです。
      なお、「フラグ」の部分は、「キーマクロを記録」機能を使って記録すれば、ダイアログのチェックなどから、必要な数値が記録されます(されるはずです)

      ・S_AddTail('文字列'); // テキストの最後に文字列を追加する。
       S_InsText()より早いはず。

      ・S_Jump(行番号, フラグ); // 指定行へジャンプ
       例:S_Jump(10, 1);
       フラグ部分は次の数値の和。
       ******** 以下「行番号の単位」 ********
       0 折り返し単位の行番号
       1 改行単位の行番号
       **************************************
       0x02 PL/SQLコンパイルエラー行を処理する
       未定義 テキストの□行目をブロックの1行目とする
       未定義 検出されたPL/SQLパッケージのブロックから選択

      ・S_SearchNext('文字列', フラグ); // 下検索
       S_SearchPrev('文字列', フラグ); // 上検索
       フラグ部分は、次の数値の和
       1 単語単位で探す
       2 英大文字と小文字を区別する
       4 正規表現
       8 見つからないときにメッセージを表示
       16 検索ダイアログを自動的に閉じる
       32 先頭(末尾)から再検索する

      ・S_ExecCommand('文字列', フラグ); // 外部コマンド実行
       フラグ部分は、次の数値の和
       1 標準出力を得る

      ・S_Replace('置換前文字列', '置換後文字列', フラグ); // 置換
       フラグ部分は、次の数値の和
       1 単語単位で探す
       2 英大文字と小文字を区別する
       4 正規表現
       8 見つからないときにメッセージを表示
       16 検索ダイアログを自動的に閉じる
       32 先頭(末尾)から再検索する
       64 クリップボードから貼り付ける
       ******** 以下「置換範囲」 ********
       0 ファイル全体
       128 選択範囲
       **********************************
       ******** 以下「置換対象」 ********
       0 見つかった文字列と置換
       256 見つかった文字列の前に挿入
       512 見つかった文字列の後に追加
       **********************************

      ・S_Grep('検索文字列', 'ファイル名(パターン)', '検索対象フォルダ', フラグ);
       フラグ部分は、次の数値の和
       1 サブフォルダからも検索する
       2 この編集中のテキストから検索する(未実装)
       4 英大文字と英小文字を区別する
       8 正規表現
       16 文字コード自動判別
       ******** 以下「結果出力」 ********
       0 該当行
       32 該当部分
       **********************************
       ******** 以下「出力形式」 ********
       0 ノーマル
       64 ファイル毎
       **********************************

      以上です。
      • [1466] Re: マクロ新コマンド一覧 げんた 2002年02月04日 12:53

        ・S_Jump(行番号, フラグ); // 指定行へジャンプ
        これと対になる機能として,キャレットの現在位置を取得というのはできないでしょうか.

        ・S_SearchNext('文字列', フラグ); // 下検索
        > S_SearchPrev('文字列', フラグ); // 上検索
        見つかったかどうかを戻り値で得ることはできないんでしょうか.

        ・S_ExecCommand('文字列', フラグ); // 外部コマンド実行
        > フラグ部分は、次の数値の和
        > 1 標準出力を得る
        実行するディレクトリの指定もできればあった方がいいと思います.
        • [1468] Re2: マクロ新コマンド一覧 やざき 2002年02月04日 16:16

          ▼ げんたさん
          > ・S_Jump(行番号, フラグ); // 指定行へジャンプ
          > これと対になる機能として,キャレットの現在位置を取得というのはできないでしょうか.
          >
          > ・S_SearchNext('文字列', フラグ); // 下検索
          > > S_SearchPrev('文字列', フラグ); // 上検索
          > 見つかったかどうかを戻り値で得ることはできないんでしょうか.
          >
          > ・S_ExecCommand('文字列', フラグ); // 外部コマンド実行
          > > フラグ部分は、次の数値の和
          > > 1 標準出力を得る
          > 実行するディレクトリの指定もできればあった方がいいと思います.

          ああ、いきなり要望さんくす。
          ほかのコメントが付くかもしれないので、とりあえず保留にしておきます。

          次は、ヘッダとフッタか~。どなたか手つけてます?
      • [1497] Re:マクロ新コマンド一覧 hor 2002年02月07日 20:44

        ▼ やざきさん
        > 文字列は''で囲む必要があります。あわせて\でエスケープする必要があるのは"ではなく'になります。

        キーマクロの記録時に「"」を含むコマンドを使うと、
        記録の終了時に死んでしまいます。

        ・・・エスケープした方がよさそうな気がします・・・
        • [1501] Re2:マクロ新コマンド一覧 やざき 2002年02月07日 23:43

          ▼ horさん
          > ▼ やざきさん
          > > 文字列は''で囲む必要があります。あわせて\でエスケープする必要があるのは"ではなく'になります。
          >
          > キーマクロの記録時に「"」を含むコマンドを使うと、
          > 記録の終了時に死んでしまいます。
          >
          > ・・・エスケープした方がよさそうな気がします・・・

          例えばどんなので死にました?
          手元では「あ"い」を検索したのも記録できたし、「あ'い」も大丈夫。
          でも後者は再生できなかったけど(汗)
          • [1504] Re3:マクロ新コマンド一覧 hor 2002年02月08日 09:03

            ▼ やざきさん
            > 例えばどんなので死にました?
            > 手元では「あ"い」を検索したのも記録できたし、「あ'い」も大丈夫。
            > でも後者は再生できなかったけど(汗)

            外部コマンド実行で echo "test" や echo 'test' を実行して記録するとおなくなりになります。
            他のコマンドでも同じだと思い込んでいましたが、やざきさんのご指摘どおり検索は大丈夫でした。
            ・・・外部コマンド実行のときだけに起る問題なのかもしれません。
            • [1506] Re4:マクロ新コマンド一覧 やざき 2002年02月08日 21:45

              ▼ horさん
              > ▼ やざきさん
              > > 例えばどんなので死にました?
              > > 手元では「あ"い」を検索したのも記録できたし、「あ'い」も大丈夫。
              > > でも後者は再生できなかったけど(汗)
              >
              > 外部コマンド実行で echo "test" や echo 'test' を実行して記録するとおなくなりになります。
              > 他のコマンドでも同じだと思い込んでいましたが、やざきさんのご指摘どおり検索は大丈夫でした。
              > ・・・外部コマンド実行のときだけに起る問題なのかもしれません。

              !
              どんなコマンドでもお亡くなりになるかも?
              ExecCommandだけ、間違ってました。
              case F_EXECCOMMAND:
              // 引数ひとつ分だけ保存
              pText = m_pParamTop->m_pData;
              nTextLen = strlen(pText);
              cmemWork.SetData( pText, nTextLen );
              cmemWork.Replace( "\\\'", "\'" );
              cmemWork.Replace( "\\\\", "\\" );
              wsprintf( szLine, "%s(\'%s\', %d);\t// %s\r\n", szFuncName, cmemWork.GetPtr( NULL ), m_pParamTop->m_pNext->m_pData ? atoi(m_pParamTop->m_pNext->m_pData) : 0, szFuncNameJapanese );
              _lwrite( hFile, szLine, strlen( szLine ) );
              break;

              こんな感じにしたら、うごきます?
              • [1510] Re5:マクロ新コマンド一覧 hor 2002年02月09日 00:00

                ▼ やざきさん
                > ExecCommandだけ、間違ってました。
                (中略)
                > こんな感じにしたら、うごきます?

                いけました。ありがとうございます。
                もう少ししたらUpします。
    • [1464] Re:PPA.DLL対応パッチ やざき 2002年02月03日 18:55

      PPA.DLL対応パッチの補足。

      PPA.DLLがあれば、変数や制御コマンドが使えます。
      PPA.DLLがなければ、制御コマンドが使えません。

      キーマクロの記録は、PPA.DLLのありなしに関係なくできます。
      記録したマクロは、PPA.DLLのありなしに関係なく実行できます。

      という違いしかありません。
      では動作報告、バグ報告、お待ちしております~。
    • [1541] Re: PPA.DLL対応パッチ げんた 2002年02月10日 18:29

      >・マクロを別フォルダに保存すると、マクロフォルダが変わってしまうバグ修正。
      元々マクロの保存先を入れておく場所だったのを私が流用したのでこうなっていました.

      >・文字をたくさん入れると折り返して1文字目に同じ文字が繰り返し表示されてしまうバグ修正(したつもり)
      これは2/1版で既に入れたはずですが...

      --
      PPAを既に使っているTEADというエディタにマクロ名称やパラメータを極力合わせるというのも1つの方針かとおもいます.
      • [1542] Re2: PPA.DLL対応パッチ やざき 2002年02月10日 21:35

        ▼ げんたさん
        > >・文字をたくさん入れると折り返して1文字目に同じ文字が繰り返し表示されてしまうバグ修正(したつもり)
        > これは2/1版で既に入れたはずですが...

        私の意図したとおりに直されていなかったので、さらに修正したのでした。


        > PPAを既に使っているTEADというエディタにマクロ名称やパラメータを極力合わせるというのも1つの方針かとおもいます.

        見てみます。