0

私はc#を使用してテキストファイルを作成しています。テキストファイルの1行に2つのレコードを書き込もうとしています。私のデータソースは、ストアドプロシージャの結果セットからのものです。

これが私が持っているコードです。現在、私はレコードごとに書いているだけです。1行に2つのレコードをテキストファイルに書き込みたいのですが。

例:

レコード1レコード6

レコード2レコード7

レコード3レコード8

レコード4レコード9

レコード5レコード10

レコード11レコード16

レコード12レコード17

レコード13レコード18

レコード14レコード19

レコード15レコード20

    public bool SalesPriceIndexProcess()
    {
        int page = 1, count = 1;
        FileStream fs = new FileStream(Properties.Settings.Default.Path + SalesPriceDirectoryReportName, FileMode.Create);
        StreamWriter sw = new StreamWriter(fs);
        foreach (ManhattanLUSESalesPriceIndex_Result s in _db.ManhattanLUSESalesPriceIndex())
        {
            if (count == 1)
            {
                SalesPriceHeaderWrite(s.BldgClassCd, ref fs, ref sw);
            }
            string saleDate = s.SaleDt.ToString();
            sw.WriteLine("{0,13:C0}{1,-5} {2,-4} {3,5} {4,3} {5,15:C0}{6} {7,-8} {8,4}"
                , s.SalePriceAmt, s.MultiSplitCd
                , Convert.ToInt16(s.StoriesNbr) + s.LandUseMajorCd
                , (s.LegalBlkId + "-"), s.LegalLot
                , s.TransAssdTotalAmt, s.BldgClassCd.PadRight(2)
                , (saleDate.Length > 6 ? saleDate.Substring(4, 2) + "/" + saleDate.Substring(6, 2) + "/" + saleDate.Substring(2, 2) : "")
                , page    
                );

            PclIdPageIndexDict.Add(s.PclId, page);
            if (count % 5 == 0)
            {
                sw.WriteLine(SalesPriceLineBreak);
            }
            if (count % 145 == 0)
            {
                sw.WriteLine(SalesPricePageBreak);
            }

            count++; //increment by 1
            page = count % 145;
        }
        return true;
4

2 に答える 2

0

最後の5行をキューに格納する必要があります。あなたがあなたの行を書き出すところ、あなたは次のようなことを言う必要があるでしょう:

while(!eof) {
  for (int i=0; i<5; i++) {
    queue.enqueue(readline());
  }

  for (int i=0; i<5; i++) {
   write(queue.dequeue());
   write(readline());
   write('\n');
  }
}

C#構文またはラインペアを実行するためのロジックについて質問がありますか?

于 2012-07-31T15:51:49.580 に答える
0
if(_db.ManhattanLUSESalesPriceIndex().Count() < 5)
{
// throw
}
else
{
    var collectionStore = _db.ManhattanLUSESalesPriceIndex().ToList();
    for(int i = 5; i < collectionStore.Count(); i++)
    {
        var recordN = collectionStore[i-5];
        // do whatever outputting you want
        var recordNPlusFive = collectionStore[i];
        // do whatever outputting you want
        }
    }
}

編集されたコード

于 2012-07-31T16:29:08.047 に答える