コメントを日付で挿入

解決


よすむら  2008-02-26 15:36:51  No: 67691  IP: [192.*.*.*]

例えば、VS2003.net(VC++7.1)であれば、修正部分を以下のようにしたいのです。

  // 2008/02/26 start mod. by よすむら
  ...
  // 2008/02/26 end mod. by よすむら

現在修正開始前、IME辞書ツールで上記を毎回指導で、それぞれ『す』『え』と登録しております。
ATOKなら『今日』『今』等で日時、時刻の取得がOKのようですが、時価6千円は痛いです...。
皆さんはどうされてますでしょうか?

編集 削除
επιστημη  2008-02-26 15:42:31  No: 67692  IP: [192.*.*.*]

バージョン管理に任せておけば
コメントに日付を入れることはめったにありませんから
必要としていません。
# 入れろと言われれば"手打ち"します。

編集 削除
Grade  2008-02-26 15:47:24  No: 67693  IP: [192.*.*.*]

ワンクリックで様々な書式で日付文字をクリップボードに取得する
ツールを作って使っています。

編集 削除
よすむら  2008-02-26 16:11:30  No: 67694  IP: [192.*.*.*]

επιστημη様
># 入れろと言われれば"手打ち"します。
ありがとうございます。そのスピードが目に浮かびます。

Grade様
>ワンクリックで様々な書式で日付文字をクリップボードに取得する
>ツールを作って使っています。
ありがとうございます。
そのツール、どこかで公開されてますか。バイナリいただきたいです...がんばって辞書登録をサービスで作る?って思ったりしてたので。

編集 削除
Blue  2008-02-26 16:19:59  No: 67695  IP: [192.*.*.*]

IDE上であればマクロ作っちゃえば早いのでは?

2005ならSampleマクロにInsertDateってのがあるのでこれをまねすれば
簡単にできそう。2003はよくわかりません。

一応参考
Visual Studio 2003でマクロを組み込む方法
http://naka.wankuma.com/site/column/dotnet/00016.htm

編集 削除
 2008-02-26 16:37:14  No: 67696  IP: [192.*.*.*]

私もバージョン管理を推奨。基本方針として
・過去のソース(履歴)はバージョン管理で全部保存しておく。
・その代わり不要なソースはどんどん消す。
・必要ならソースの先頭に(CVS等の)名前と日付の自動挿入を使う。
です。
何でもかんでもコメントで残すやり方は、ソースが少なければ良いですが、10万行とかを超えると破綻します(経験上)。話がずれたかな?

編集 削除
tetrapod  2008-02-26 16:46:58  No: 67697  IP: [192.*.*.*]

1行目に .LOG と書いてあるファイルをメモ帳で開く

編集 削除
Grade  2008-02-26 17:07:32  No: 67698  IP: [192.*.*.*]

アップできる場所さえ教えてもらえたら
どこかに掲載しますよ。

編集 削除
よすむら  2008-02-26 18:10:54  No: 67699  IP: [192.*.*.*]

錚々たるかたがたにご回答いただき感謝申し上げます。
Blue様
>2005ならSampleマクロにInsertDateってのがあるのでこれをまねすれば
>簡単にできそう。2003はよくわかりません。
ありがとうございます。これでできました。

あ様
>何でもかんでもコメントで残すやり方は、ソースが少なければ良いですが、10万行とかを超えると破綻します(経験上)。話がずれたかな?
ありがとうございます。ずれておりません。επιστημη様と同じ正統なるご意見だと存じます。
ただ要請上もあり...。

tetrapod様
>1行目に .LOG と書いてあるファイルをメモ帳で開く
ありがとうございます。
この機能おもしろいですねー、なにかに使えそうな。

Grade様
>アップできる場所さえ教えてもらえたら
>どこかに掲載しますよ。
再度ありがとうございます。しばらくググったんですがそんな便利な置き場ってないんですね。
CodeProjectとかYouSendItとかは使わしてもらっているんですが。
今回はBlue様の方法で達成できましたので、あきらめます。

皆様にこころからお礼申し上げます。

編集 削除
よすむら  2008-02-26 18:12:26  No: 67700  IP: [192.*.*.*]

解決マークです。

編集 削除
Blue  2008-02-26 18:27:17  No: 67701  IP: [192.*.*.*]

ついでにマクロのコードも書いてもらえると同じことをやりたい人が
参考になると思います。

ちなみに2005だと

    Sub AddUpdateComment()
        Dim textSelection As EnvDTE.TextSelection
        Dim org As String

        textSelection = CType(DTE.ActiveDocument.Selection(), EnvDTE.TextSelection)

        org = textSelection.Text
        ' 改行で終わっていない場合は改行文字をつける
        If Not org.EndsWith(Environment.NewLine) Then
            org &= Environment.NewLine
        End If


        textSelection.Text = "// " & System.DateTime.Now.ToString("yyyy/MM/dd") & " start mod. by " & Environment.UserName & Environment.NewLine & _
                             org & _
                             "// " & System.DateTime.Now.ToString("yyyy/MM/dd") & " end mod. by " & Environment.UserName & Environment.NewLine
    End Sub

てなかんじかなと。(Environment.UserNameが微妙そうだけど)



ちなみに、私もこの手のコメントはあまりよろしくないかなぁと思っています。
ソース管理ツール(CVSとかVSSとか)をつかっているならやらないほうが良いでしょう。
(書くのであれば、ソースの最初のほうに変更履歴みたいなのを書くだけにする。)
ソース管理ツールを使っていない場合は、いたしかたないですがうまいこと書いていかないとコメントだらけで読みづらくなるのだけは避けてください。

編集 削除
よすむら  2008-02-26 21:04:22  No: 67702  IP: [192.*.*.*]

最初からの手順を書かせていただきました。

VS2003.netメニューより『表示』→『その他のウィンドウ』→『マクロエクスプローラ』でマクロエクスプローラを起動してください。
ついでマクロエクスプローラメニューより『プロジェクト』→『モジュールの追加』→『ファイル名の追加』で(例えば)InsertDateを入力してください。
その定義欄に以下をコピーしてください。
そして保存します。
VS2003.netメニューより『ツール』→『オプション』→『キーボード』→『Macros.MyMacros.InsertDateStart』を選択してください。
オプションダイアログより『ショートカットキー(P)』エディットコントロールにフォーカスを移動し、(例えば)CTRL+'*'を押し、その後『割り当てボタン』を押してください。
『Macros.MyMacros.InsertDateStart』でも同様に(例えば)CTRL+'-'を押して同様に処理してください。
これでC++ソースエディット画面で、ショートカットで可能となります。
------------------------------------------------------------
Imports EnvDTE
Imports System.Diagnostics

Public Module InsertDate
    Sub InsertDateStart()
        Dim objTextSelection As TextSelection
        objTextSelection = CType(DTE.ActiveDocument.Selection(), EnvDTE.TextSelection)
        ' objTextSelection.Text = "// " + System.DateTime.Now.ToLongDateString()
        objTextSelection.Text = "// " + System.DateTime.Now.Today + " start mod. by よすむら"
    End Sub
    Sub InsertDateEnd()
        Dim objTextSelection As TextSelection
        objTextSelection = CType(DTE.ActiveDocument.Selection(), EnvDTE.TextSelection)
        ' objTextSelection.Text = "// " + System.DateTime.Now.ToLongDateString()
        objTextSelection.Text = "// " + System.DateTime.Now.Today + " end mod. by よすむら"
    End Sub
End Module
------------------------------------------------------------

編集 削除
Grade  2008-02-27 09:17:13  No: 67703  IP: [192.*.*.*]

メールアドレスなど教えていただければお送りします。

この手のコメントは
何重にもなる場合があって怖いですよね。

私も引き継ぎ仕事でついついそういうコメントのつけかたの
仕事をしてしまいますが
そういえば、自分で1〜10まで全部わかっているソースの場合は
こういうコメントは付けないですね。

編集 削除
Grade  2008-02-27 17:58:30  No: 67704  IP: [192.*.*.*]

そういえば、
KeiziWeb ver 4.3
http://keiziweb.com/software.html

このCharu3というソフトを使えば
ソースを選択して、キーを押して選択したら
お望みのテキストを貼り付ける事ができると思います。

日付時刻マクロがあるとのことです。

編集 削除