◀一般トップへ
  • 7422 初心者
    • 7423 Re:初心者
    • 7426 Re:初心者
    • 7427 Re:初心者
  • [7422] 初心者 ミヤビ 2011年09月06日 10:42

    開いているファイルからキーとなる文字列を検索して
    キー文字列のある上の行の文字列をコピーして開いて
    いる別のファイルに保存をしたいのですが、上手くいかないです。

    例)
    gakusyutyu←(コピーしたい文字列)
    00000750 4 miyabi←(キー文字) 0

    また上記のようなことをするのは可能でしょうか?
    • [7423] Re:初心者 東方朔 2011年09月06日 12:36

      ▼ ミヤビさん

      エディタでやろうとするより、スクリプト書いた方が早いような気がします。

      ↓↓↓↓↓↓ここから
      var fso = new ActiveXObject('Scripting.FileSystemObject');
      var args = WScript.Arguments;

      if (args.length != 2)
      {
      WScript.Echo("wscript search.js ファイル名 検索文字列")
      WScript.Quit();
      }

      var stream = fso.OpenTextFile(args(0), 1, false, -2);
      var text = stream.ReadAll();
      stream.Close();

      var lines = text.split(/\r\n/);

      for(var i = 0; i < lines.length; i++){
      var position = lines[i].indexOf(args(1));
      if (position != -1 && i != 0)
      WScript.Echo(lines[i-1]);
      }
      ↑↑↑↑↑↑↑↑ここまで

      を、search.js とかいうファイル名で保存して、コマンドプロンプトで

      cscript search.js ファイル名 検索文字列 > 結果.txt

      と実行すれば、結果.txt にコピーしたい文字列だけが抽出されると思います。
    • [7426] Re:初心者 じゅうじ 2011年09月18日 12:34

      ▼ ミヤビさん こゆことですね。
      sakuraでgrepしたあるテキストファイルの内容が次のようなものだったとします。
      D:\My Documents\homepage.html(24,
      D:\My Documents\homepage.html(29,
      D:\My Documents\homepage.html(30,
      この時、"ファイル名"(行番号,だったとして
      "ファイル名"で"行番号-1"の内容を、まとめて取得する方法はありますか?
      1行目なら”LINE NUMBER 0 IS'T DEFINED”を埋め込みます。
    • [7427] Re:初心者 じゅうじ 2011年09月18日 12:39

      ▼ ミヤビさん こゆことですね
      sakuraでgrepしたあるテキストファイルの内容が次のようなものだったとします。
      D:\My Documents\homepage.html(24,
      D:\My Documents\homepage.html(29,
      D:\My Documents\homepage.html(30,
      この時、"ファイル名"(行番号,だったとして
      "ファイル名"で"行番号-1"の内容を、まとめて取得する方法はありますか?
      1行目なら”LINE NUMBER 0 IS'T DEFINED”を埋め込みます。