2009-03-13 7 views
0

2つの独立したListViewに存在するデータのコレクションをループするプログラムロジックに問題があります。ループした後、ListViewからデータを抽出した後、すべてをカンマ区切りのテキストファイル(CLOSEULDCONFIG.TXT)に追加します。ListViewから誤ったデータを取得しました

初めてこのロジックを実行すると、すべてが正常に動作します。このロジックをもう一度実行すると、ListViewにある2つのコピーが取得されます。このロジックを実行するたびに、以前に追加されたListViewアイテムのコピー数が1つ増えます。

これは、ListViewにあるものと同じ数の要素を追加する場合には望ましくありません。テキストファイル。誰かが私の入れ子にされたforeachステートメントでこれを引き起こしている間違っているものを見つけることができますか?

     // HAZMAT PACKAGE ERROR LISTVIEW ITEMS    
         foreach (ListViewItem HazPackErrItems in HazmatPackageErrorListview.Items) 
         { 
          bool first = true; 
          foreach (ListViewItem.ListViewSubItem HazPackErrSub in HazPackErrItems.SubItems) 
          { 
           // removes the first element of each comma delimited string 
           if (first) 
            first = false; 
           else 
            CloseULDSubmitLogDataResponseHazpackerrCloseULDConfig += " " + HazPackErrSub.Text + ","; 
          } 
         } 

         // HAZMAT WEIGHT AND COUNT COLLECTED LISTVIEW ITEMS 
         foreach (ListViewItem HazWeightAndCountItems in HazmatWeightAndCountListview.Items) 
         { 
          bool first = true; 
          foreach (ListViewItem.ListViewSubItem HazWeightAndCountSub in HazWeightAndCountItems.SubItems) 
          { 
           // removes the first element of each comma delimited string 
           if (first) 
            first = false; 
           else 
            CloseULDSubmitLogDataResponseHazWeightAndCountCloseULDConfig += " " + HazWeightAndCountSub.Text + ","; 
          } 
         } 

         using (System.IO.StreamWriter sw = new System.IO.StreamWriter("CLOSEULDCONFIG.TXT", true)) 
         { 
          if (!AlreadyExists) 
          { 
           sw.WriteLine(PresetNameConfig + 
           CloseULDSubmitLogDataRequestCloseULDConfig + 
           CloseULDSubmitLogDataResponseCloseULDConfig + 
           CloseULDSubmitLogDataResponseHazpackerrCloseULDConfig + 
           CloseULDSubmitLogDataResponseHazWeightAndCountCloseULDConfig + 
           CloseULDDateTimeConfig); 
          } 
         } 

答えて

1

私が間違っていない場合は、上書きするのではなく、ファイルを開いて開きます。ファイル自体をチェックして、そこにデータが複製されているかどうか確認しましたか?

関連する問題