ユーザーがデータを入力し、ボタンを押してデータを処理するこれらのテキストボックスがあります。ユーザーが入力したデータはたくさんあり、ユーザーに余裕を持たせるために、ボタンを押すたびにアプリケーションがデータを保存できるようにしたいので、アプリケーションを閉じて再度起動すると、テキストボックスがいっぱいになります最後に入力したデータで。
.txt ファイルを使用してデータを保存することを考えていました。私だけがこれにいくつかの問題を発見しました。問題の 1 つは、アプリケーションを実行しようとするたびに、Microsoft .NET Framework からメッセージ ボックスが表示されることです。メッセージボックスには、インデックスが配列の範囲外であることが示されています。私のコードは私の配列の境界を超えていないと思いますが。
そして、ここに私が使用するコードがあります:
まず、配列を宣言し、テキスト ボックスの内容を含む変数を入力しました。
string[]settings = new string[5];
settings[0] = openKey;
settings[1] = secretKey;
settings[2] = statusRequestPath;
settings[3] = statusRequestAPI;
settings[4] = setSeconds.ToString();
次に、次のコードを使用してデータをテキスト ファイルに書き込みます。
using (StreamWriter writeFile = new StreamWriter(@"C:\Audio Silence Detector\AudioSilenceDetector.txt"))
{
foreach (string line in settings)
{
writeFile.WriteLine(line);
}
}
.txt ファイルのテキストをアプリケーションに戻すために、これをフォームロードに入れました。
string[] lines = System.IO.File.ReadAllLines(@"C:\Audio Silence Detector\AudioSilenceDetector.txt");
tbOpenKey.Text = lines[0];
tbSecretKey.Text = lines[1];
tbStatusRequestPath.Text = lines[2];
tbStatusRequestAPI.Text = lines[3];
tbSeconds.Text = lines[4];
コードをこれに変更したところ、私が抱えていた問題が修正されたようです:
if (lines.LongLength == 5)
{
tbOpenKey.Text = lines[0];
tbSecretKey.Text = lines[1];
tbStatusRequestPath.Text = lines[2];
tbStatusRequestAPI.Text = lines[3];
tbSeconds.Text = lines[4];
}