私はfile.exe
を閉じるたびにFile.txt
にカウンタを書きます。
たとえば、初めて閉じるときは、1を書き込む必要があります.1の代わりに2回、2にする必要があります.3回に3回する必要があります。FileStreamが終了すると同時にFileStreamリーダーとライター
しかし、問題は、任意の時点で、コンパイラはファイルに格納された番号を読み取り、インクリメントしてから書き込む必要があることです。このような
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Forms;
namespace check
{
public partial class Form1 : Form
{
public string[] line = { "1", "2", "3", "4", "5", "6", "7", "8", "9","10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" };
public int i = 0;
public Form1()
{
InitializeComponent();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
FileStream textfile = new FileStream(@"C:\TtAL.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
var Reader = new StreamReader(textfile);
var Writer = new StreamWriter(textfile);
i = Convert.ToInt32(File.ReadAllText(@"C:\TtAL.txt"));
if (File.ReadAllText(@"C:\TtAL.txt") == null) { i = -1; }
i ++;
File.WriteAllText(@"C:\TtAL.txt", line[i]);
MessageBox.Show(20 - Convert.ToUInt32(line[i]) + " times remained.");
textfile.Close();
}
}
}
私は 'using'ブロックにそのコードを置く
は、ここに私のコードです。また、同時に読んだり書いたりする必要はありません。数値を読み、変数に格納し、変数に1を加え、それを書いてください( 'using'ブロックは閉じ/破棄など)。 –