0

ユーザーがデータを入力し、ボタンを押してデータを処理するこれらのテキストボックスがあります。ユーザーが入力したデータはたくさんあり、ユーザーに余裕を持たせるために、ボタンを押すたびにアプリケーションがデータを保存できるようにしたいので、アプリケーションを閉じて再度起動すると、テキストボックスがいっぱいになります最後に入力したデータで。

.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];
        }
4

1 に答える 1