4

配列の内容をテキスト ファイルに書き込もうとしています。ファイルを作成し、テキスト ボックスを配列に割り当てました (正しいかどうかはわかりません)。次に、配列の内容をテキスト ファイルに書き込みます。ストリームライターの部分は、私が一番下で立ち往生しているところです。構文がわかりません。

if ((!File.Exists("scores.txt"))) //Checking if scores.txt exists or not
{
    FileStream fs = File.Create("scores.txt"); //Creates Scores.txt
    fs.Close(); //Closes file stream
}
List<double> scoreArray = new List<double>();
TextBox[] textBoxes = { week1Box, week2Box, week3Box, week4Box, week5Box, week6Box, week7Box, week8Box, week9Box, week10Box, week11Box, week12Box, week13Box };

for (int i = 0; i < textBoxes.Length; i++)
{
    scoreArray.Add(Convert.ToDouble(textBoxes[i].Text));
}
StreamWriter sw = new StreamWriter("scores.txt", true);
4

5 に答える 5

15

あなたはこれを行うことができます:

System.IO.File.WriteAllLines("scores.txt",
    textBoxes.Select(tb => (double.Parse(tb.Text)).ToString()));
于 2012-10-23T03:33:35.553 に答える
6
using (FileStream fs = File.Open("scores.txt"))
{
    StreamWriter sw = new StreamWriter(fs);
    scoreArray.ForEach(r=>sw.WriteLine(r));
}
于 2012-10-23T03:31:43.303 に答える
1

ファイルを閉じる前にファイルに書き込もうとするかもしれません...FileStream fs = File.Create("scores.txt");コード行の後。

そのために a を使用することもできますusing。このような:

if ((!File.Exists("scores.txt"))) //Checking if scores.txt exists or not
    {
        using (FileStream fs = File.Create("scores.txt")) //Creates Scores.txt
        {
            // Write to the file here!
        }
    }
于 2012-10-23T03:31:39.780 に答える
0

あなたをList配列に変換してから、配列をテキストファイルに書き込むことができます

double[] myArray = scoreArray.ToArray();
File.WriteAllLines("scores.txt",
  Array.ConvertAll(myArray, x => x.ToString()));
于 2020-03-13T17:56:54.100 に答える