◀一般トップへ
  • 4180 タイムスタンプについて
    • 4181 Re:タイムスタンプについて
    • 4183 RE: タイムスタンプについて
      • 4186 Re2: タイムスタンプについて
  • [4180] タイムスタンプについて Tiger 2004年12月13日 12:51

    お世話になります。
    こういう事を聞くのは恥ずかしいのですが、
    サクラエディタでタイムスタンプのマクロはどうやって
    作ったらいいのでしょうか?
    2004/12/13(Mon) 04:43:33
    のようにしたいのです。
    曜日は日本語ではなく上記のようにしたいのですが、
    どうしたらいいのでしょうか?

    また、このようなマクロはどうやって覚えていったら
    いいのでしょうか?
    宜しくお願い致します。
    • [4181] Re:タイムスタンプについて しみづ 2004年12月13日 16:45


      >どうしたらいいのでしょうか?

       InsertDateを実行した後、カーソルを戻して曜日を選択して、GetSelectedStringで変数に入れたら、その内容を判定して対応する英語をInsTextする、というのも一つの方法です。


      >また、このようなマクロはどうやって覚えていったら
      >いいのでしょうか?

       急ぎでないのでしたら、マクロBBS http://sakura-editor.sourceforge.net/cgi-bin/cyclamen/cyclamen.cgi?log=macro をじっくり読んでみたらいかがでしょうか。
    • [4183] RE: タイムスタンプについて すい 2004年12月14日 04:59

      >サクラエディタでタイムスタンプのマクロはどうやって
      >作ったらいいのでしょうか?

      そもそも Tigerさん がおっしゃる「タイムスタンプのマクロ」というのは どういう物でしょう?
      「タイムスタンプ」をどうしたいのやら。
      単に日時文字列を書き出せば良いのなら↓こんな
      -----
      // 実行には PPA.DLL が必須です。sakura.exe と同じフォルダに PPA.DLL を入れておいてください。
      // マクロファイルの拡張子は .PPA でなくてはなりません。
      // TAB=4

      // 共通設定→[書式] にて
      //
      // 日付書式
      // ○ 標準(S) ◎ カスタム(C) D[yyyy'/'MM'/'dd'('ddd')'  ]
      //
      // 時刻書式
      // ○ 標準(S) ◎ カスタム(U) T[HH':'mm':'ss       ]
      //
      // に設定しておくこと。

      var
      str1,str2:String; // 文字列型変数 str1,str2 を用意
      wk:String; // 文字列型変数 wk を用意
      pts,pte:Integer; // 整数数値型変数 pts,pte を用意
      begin
      // str1 := S_ExpandParameter('$d $t'); // 現在日時の文字列を str1 に取得・格納する
      str1 := S_ExpandParameter('$D $T'); // 開いているファイルのタイムスタンプの文字列を str1 に取得・格納する

      // str1 内部の (~) 部の先頭2バイトを wk に取り出す。
      pts := Pos('(',str1); // '(' を探して位置を pts に格納する
      pte := Pos(')',str1); // ')' を探して位置を pte に格納する
      if( (pts = 0) or (pte = 0) ) then Exit; // '(' ')' どちらかが見つからなければマクロ終了(中断)
      wk := Copy(str1,pts+1,2); // '(' の次の位置から 2バイトを wk に取得

      // wk を英曜日に変換する
      if (wk = '日') then wk := 'Sun'
      else if(wk = '月') then wk := 'Mon'
      else if(wk = '火') then wk := 'Tue'
      else if(wk = '水') then wk := 'Wed'
      else if(wk = '木') then wk := 'Thu'
      else if(wk = '金') then wk := 'Fri'
      else if(wk = '土') then wk := 'Sat'
      ;

      // 出力する文字列 str2 を用意する。
      // str2 := 「先頭 ~ '(' まで」+「英曜日文字列」+「 '(' ~ 文字列末尾まで」
      str2 := Copy(str1,1,pts) + wk + Copy(str1,pte,Length(str1));

      // MessageBox(str2,'',0); // ダイアログ表示
      S_InsText( str2 ); // 書き出す

      end;
      -----
      • [4186] Re2: タイムスタンプについて げんた 2004年12月14日 22:58

        >>サクラエディタでタイムスタンプのマクロはどうやって
        >>作ったらいいのでしょうか?
        >
        >そもそも Tigerさん がおっしゃる「タイムスタンプのマクロ」というのは どういう物でしょう?
        >「タイムスタンプ」をどうしたいのやら。
        そもそもタイムスタンプの入力はALT+; で出来ますし,その形式を変更するのが「カスタム」形式で書式はAPIのGetDateFormat()参照...と書こうとして内容を見たら,日本語環境では曜日は日本語になっちゃうんですね...○| ̄|__

        マクロでごそごそやるより本体を機能拡張した方がいいかも...