0

blah_blah_blah_blah_number という名前の XML ファイルに一連のテスト ケースがあります。

テストケースには、次のように数字がすべて台無しになっています。

blah_3
blah_1
blah_7
....

番号を付け直す必要があります。最初の番号は 1 に、2 番目の番号は 2 に、というように番号が付け直されます。このためのマクロを作成したいのですが、開始方法がわかりません。与えられたパターンに移動できるある種の検索機能が必要であり、その数値を変数に保持しているカウントに置き換えます。私は Slick-C にまったく習熟していないので、これをすぐにやりたいと思っています :\

どんな助けでも感謝します、

テッド

4

1 に答える 1

1

よりタイムリーな回答を得るには、slickedit.com の SlickEdit フォーラムを検討してください。
ファイルをバッファにロードし、次の行に沿ってマクロを作成します。

  • カウンターをインクリメントする while ループを作成する
  • while ループではsearch、正規表現を使用して次のオカレンスを検索します
  • 次の出現が見つかったときに、search_replace見つかった文字列をカウンター変数を使用して構成された新しい文字列に置き換え、前の検索を繰り返すために使用します
  • 何も見つからなくなったら、ループを終了します

XML ファイルでテストせずに、これで関数の開始点が得られるはずです (マクロ ファイルを作成して SE にロードする方法を知っていると仮定します)。でも:

/* Demo for StackOverflow question 14205293 */
_command my_renumber() name_info(','VSARG2_MARK|VSARG2_REQUIRES_EDITORCTL)
{
  int not_found = 0; /* boolean to terminate loop */
  int iLoop = 0;     /* Counter to renumber items */

  /* Use search initially; if that call doen't find an item, we're done. */
  if (search('blah_:i', 'R') != 0)
  {
    not_found = 1;
  }

  while (!not_found)
  {
    if (search_replace('blah_' :+ iLoop, 'R') == STRING_NOT_FOUND_RC)
    {
      not_found = 1;
    }
    iLoop++;
  }
}
于 2013-01-23T05:31:12.923 に答える