0

私は現在、テキストボックスフィールドを持っています。変更が行われるたびに、誰がいつ更新したかを追加します

今、そのテキストを追加し続けます

「LastEdited:」という行を見つけて、タイムスタンプ値のみを置き換えるにはどうすればよいですか?

これは私が今やっていることです多分誰かが私にタイムスタンプをつかんでそれを置き換える方法のコード例を投稿できますか?

if (txtMemberNotesOriginally != txtMemberNotesChanged) {
            txtMemberNotes.AppendText("LastEdited: " + DateTime.Now.ToString() + " By: " + MyProgramName.Username + Environment.NewLine);

私は専門家ではないので、コードの例は非常に役立ちます

私はこのテキストボックスを使用して他のメモも保存します (これは失いたくありません)。

私はこれを行うことができます

foreach (var line in txtMemberNotes.Lines) {
                if (line.StartsWith("Last Edited: "))
                {
                    txtMemberNotes.Text = txtMemberNotes.Text.Replace(line, "Last Edited: " + DateTime.Now.ToString() + " By: " + MyProgramName.Username + Environment.NewLine);
                }
                else 
                {
                    txtMemberNotes.AppendText("Last Edited: " + DateTime.Now.ToString() + " By: " + MyProgramName.Username + Environment.NewLine);
                }
            }
4

2 に答える 2

1

問題を解決する最も簡単な方法は、テキストの追加を停止し、テキスト値を設定することです。解析は必要ありません。既存の値を新しい値で上書きするだけです。

if (txtMemberNotesOriginally != txtMemberNotesChanged) {
            txtMemberNotes.Text = "LastEdited: " + DateTime.Now.ToString() + " By: " + MyProgramName.Username + Environment.NewLine;
于 2012-11-08T04:00:56.413 に答える
0

本当に必要な場合は、常に正規表現があると思います。

string s = @"Some notes here etc etc..

              Last edited: 12/12/2012 12:00:00 AM";

Console.Write(Regex.Replace(s, @"Last edited: .*$", "Lasted edited: " + DateTime.Now.ToString()));

またはより具体的には、コードを使用して:

txtMemberNotes.Text = Regex.Replace(txtMemberNotes.Text, @"Last edited: .*$", "Lasted edited: " + DateTime.Now.ToString());
于 2012-11-08T05:02:23.117 に答える