2017-07-28 27 views
0

から1行を削除します。は、私はこのコードを持っている私のテキストファイル

using (StreamWriter writer = new StreamWriter("C:\\Users\\HP8200\\Desktop\\teste.txt")) 
{    
    string numcont = _transaction.PartyFederalTaxID; 
    double numenc = _transaction.BillToPartyID; 
    double numfatura = _transaction.TransDocNumber; 
    DateTime data = _transaction.CreateDate; 
    double valor = _transaction.TotalAmount; 
    short zona = transaction.Zone.ZoneID; 
    //preçoantesdisc mal 
    double precoantesdisc = _transaction.TotalPaymentDiscountAmount; 
    double preconet = transaction.Details.TotalAdvancementNetAmount; 
    double quantidade = transaction.Details.Count; 
    double bonus = _transaction.TotalPaymentDiscountAmount; 
    string valorStr = valor.ToString(CultureInfo.InvariantCulture); 

    foreach (ItemTransactionDetail detail in transaction.Details) 
    { 
     var item = MyApp.DSOCache.ItemProvider.GetItem(detail.ItemID, MyApp.SystemSettings.BaseCurrency); 
     double taxRate = MyApp.DSOCache.TaxesProvider.GetTaxRateFromTaxableGroupID(detail.TaxableGroupID, "PRT", "CON"); 
     string barcode = item.BarCode; 
     item = null; 

     writer.WriteLine($"{numcont};{numenc};{numfatura};{data.ToString("dd/MM/yyyy")};{valorStr};{zona};{Environment.NewLine}{barcode};{taxRate};{precoantesdisc};{preconet};{quantidade};{bonus}"); 
    } 

} 
MessageBox.Show("gravou"); 

これは、テキストファイルにいくつかの変数を書き込みます。 2つ以上の項目を追加すると、テキストが最初の行を繰り返します。私は3行目の最初の行を削除する必要があります。 (1行目と2行目は、{Environment.NewLine}まで)。 可能ですか?

+0

はあなたが何を現在の結果の一例を与えることができますそれは何であるべきですか? – Laoujin

+0

プロセスを変更します。ループ外にトランザクション項目を書き、ループ内にトランザクション詳細を書き込みます。その後、テキストファイルを使用して戻ってくる必要はありません。 –

+0

@ラウジンはい、確かに、このようなものです: 123456789; 0; 126; 28-07-2017; 7.98; 5; hdaz; 23; 0; 0; 3; 0 123456789; 0; 126; 28-07-2017; 7.98; 5; hdazs; 23; 0; 0; 3; 0 "123456789; 0; 126; 28-07-2017; 7.98; 5;" –

答えて

3

あなたは重複行を完全に制御しているので、あなたは戻って、その結果から削除しようとしているのではなく、ことを修正する必要があります。

writer.WriteLine($"{numcont};{numenc};{numfatura};{data:dd/MM/yyyy)};{valorStr};{zona};"); 
foreach (ItemTransactionDetail detail in transaction.Details) 
{ 
    var item = MyApp.DSOCache.ItemProvider.GetItem(detail.ItemID, MyApp.SystemSettings.BaseCurrency); 
    double taxRate = MyApp.DSOCache.TaxesProvider.GetTaxRateFromTaxableGroupID(detail.TaxableGroupID, "PRT", "CON"); 
    string barcode = item.BarCode; 
    //item = null; //not necessary - GC will take care of this 

    writer.WriteLine($"{barcode};{taxRate};{precoantesdisc};{preconet};{quantidade};{bonus}"); 
} 
+0

それは働いて、ありがとう –

関連する問題