0

私はファイルに情報を書き込んでおり、それを"//Average+DateTime.txt";と名付けています。私のコードは、私が明確にしようとするよりも簡単になると思います:

String path=bama();

if(path.Contains(".txt")) {
    StreamWriter sw=
        new StreamWriter(
            "C:/Users/msilliman11/Average"
            +DateTime.Now.ToString("yyyyMMdd")
            +".txt"
            );
}

String ElementsNum=RoundedValues.Count.ToString();
DateTime dt=System.DateTime.Now;

using(var NewFile=File.Create(path)) {
    using(var writeIt=new StreamWriter(NewFile)) {
        writeIt.Write(
            "NA"+","
            +dt.Hour.ToString()+","+dt.Minute+","
            +dt.Day+","+dt.Month.ToString()+","+dt.Year.ToString()+","
            +"ALTEST "+","+"ALTEST "+","+heatgrade
            +"    "+","+"        "+","+heatname+","
            +DT2.Columns[3].ToString()+","+heatgrade+","
            +"OE2"+","+","+","+","+","+","+","+" "+ElementsNum+","
            );

        foreach(
            var pair in
            RoundedValues.Zip(
                Elements, (a, b) => new {
                    A=a,
                    B=b
                })) {
            writeIt.Write(pair.B.ToString()+","+pair.A.ToString()+",");
        }
    }
}

私が抱えている問題は、"Average"ファイルに名前を付ける必要があり、外側の using ブロックのコードをファイルに書き込む必要があることです...

私はこれらの質問を説明するのがかなり苦手ですが、基本的には 2 番目の using ブロックで情報を取得して"4222013Average.txt"、出力ファイルに名前を付けようとしています ...

4

2 に答える 2

1

あなたの質問を正しく理解できれば、これはあなたにとってより良いものになると思います。

var toFile = Path.Combine(@"C:\Users\msilliman11\", 
    string.Format("Average{0}.txt", DateTime.Now.ToString("yyyyMMdd")));
var dt = DateTime.Now;
using (var fs = File.OpenWrite(toFile))
using (TextWriter sw = new StreamWriter(fs))
{
    sw.Write(string.Join(",", 
        "NA", 
        dt.Hour, 
        dt.Minute, 
        dt.Day,
        dt.Month,
        dt.Year,
        "ALTEST ",
        "ALTEST ",
        heatgrade, 
        "    ",
        "        ", 
        heatname,
        DT2.Columns[3],
        heatgrade,
        "OE2",
        string.Empty,
        string.Empty,
        string.Empty,
        string.Empty,
        string.Empty,
        string.Empty,
        string.Empty,
        " ",
        ","));

    foreach (var pair in RoundedValues.Zip(Elements, (a, b) => new { A = a, B = b }))
    {
        writeIt.Write(pair.B.ToString() + "," + pair.A.ToString() + ",");
    }
}
于 2013-04-23T01:44:26.723 に答える