1 件の投稿を表示中 (合計 4 個)
  • 作成者
    投稿
  • #7642
    M6White
    メンバー

    こんにちは。早速ですが質問の本題から。

     以下のような日付毎に二つの数値データのある一ヶ月分のテキストデータがあります。

    —————————————-
    2009/06/01  ←日付
    100       ←一行目のデータ
    20         ←二行目のデータ

    2009/06/14
    200
    21

    2009/06/30
    300
    25
    —————————————-
     上記のような、一ヶ月分のデータを、31個のカンマで区切ったデータに置き換えます。
    カンマ「,」が31個あり、01日から31日までを、一つ目のカンマの後が01日のデータ、31個目のカンマの後が31日のデータ
    というように振り分ける処理です。データがない日付には数値をいれずカンマだけが並びます。

    以下に例示。
    —————————————-
    日付毎にある二つの数値を

    一行目のデータの振り分け

    ,100,,,,,,,,,,,,,200,,,,,,,,,,,,,,,,300,

    二行目のデータの振り分け

    ,20,,,,,,,,,,,,,21,,,,,,,,,,,,,,,,25,
    —————————————-

     以上、このような処理は EmEditor のマクロで可能なのでしょうか?
    わたしは普段マクロを常用していますが、マクロ記録ボタンで記録したものを実行しているだけです。
    このような処理はそのやり方でできる範疇を超えているため、EmEditor でできる処理なのかできない処理なのかさえわかりません。

     教えていただきたいのは、
    できる処理なのか、あるいはできないのか?
    できない処理なら、他にふさわしいソフトをご存知なら教えて頂きたいです。
    できる処理なら、ヒントだけでも教えて頂きたいです。

     質問者としてわたしの理解度を申します。
    正規表現はわかります。VBScriptはある程度わかります。
    JavaScript と JScript はまだわかりません。
    というレベルです。お時間のある時にご助言頂けると、とても助かります。

    #7643
    snow
    参加者

    いまいちご要望を理解せずに書いている気がしますが…。

    var dt1 = new Array(32), dt2 = new Array(32);
    for (var i = 1, d = document, n = d.getLines(), idx; i <= n; i+= 4) {
    idx = parseInt(d.getLine(i).split('/')[2]);
    dt1[idx] = d.getLine(i + 1);
    dt2[idx] = d.getLine(i + 2);
    }
    editor.newfile();
    document.writeln(dt1.join(','));
    document.writeln(dt2.join(','));

    こういうものでしょうか?
    JavaScriptを勉強すれば、ご自分でできるようになると思います。

    #7667
    M6White
    メンバー

    snow 様ありがとうございます。

    >要望を理解せずに書いている気がしますが…。
     むしろ、当方の上手でない説明の意図を汲んでいただいて感謝いたします。
     さて、教えていただいたマクロを前投稿例に対して実行しますと、まさしく求めていた出力が得られました。
     ですので「マクロでできるか?」の疑問は解決いたしました。

     それで、自分でもこのような JavaScript を書けるようになりたいと思ったのですが、やはり JavaScript はウェブで使うことが前提の解説が多いです。
    そこで、 EmEditor マクロのようにローカルで使う用途として勉強する方法を知りたいと思いました。

     もしよろしければ、「自分はこうして習得した」という方法や、良い書籍などございましたら教えていただけせんか?
     
     ちなみに、今回教えて頂いたマクロで、実際の数年間分のデータを希望通りの形式に置き換えることができました。
    本当に感謝です。ありがとうございます。

    #7668
    snow
    参加者

    たしかに、「JavaScriptの」書籍を探すと、Webページを動的にいじるものが多いと思います。
    ただ、JavaScriptでもCでもPerlでもCOBOLでもなんでもいいんですが、この手のプログラミングは、実際には数十年変わっていないのです(全然違う言語も少しはありますが)。

    まずは、「こういう動きをすればいいはず」という論理を組み立てます。次にインターフェース(言語ごと、環境ごと)に当てはめて実際に動作させ、最後にもっとうまく書けないかを考えます。
    肝心なのは、1番目のステップが言語に依存しないということです。
    いろいろ作ってみることでしかこの力は養えないと思うのですが、今回のものであれば比較的すぐに、分かるようになると思います。

    なお、2番目については、私はほとんど毎回ヘルプやWebを当たります。最近は言語や環境の知識を増やすのがつらいので…。
    書籍はこの10年以上買ったことがないので、なんとも言えません。

    参考にならない返信ですみません…。

1 件の投稿を表示中 (合計 4 個)
  • このトピックに返信するにはログインしてください。