2009-03-13 10 views
0

Ich habe einige Probleme mit meiner Programmlogik, die eine Sammlung von Daten in zwei separaten ListViews durchläuft. Nach dem Durchschleifen und Extrahieren der Daten aus der ListView füge ich dann alles in eine durch Komma getrennte Textdatei ein (CLOSEULDCONFIG.TXT).Fehlerhafte Daten aus ListView

Das erste Mal, dass ich diese Logik ausführen, funktioniert alles wie es sollte. Wenn ich diese Logik erneut ausführe, bekomme ich 2 Kopien von dem, was in der ListView ist. Jedes Mal, wenn ich diese Logik durchführe, wird die Anzahl der Kopien der zuvor hinzugefügten ListView-Elemente um 1 erhöht.

Dies ist unerwünscht, da ich die gleiche Anzahl von Elementen hinzufügen möchte, die ich in meinem ListView zu meinem habe Textdatei. Kann jemand herausfinden, was mit meinen verschachtelten foreach-Aussagen falsch ist, die das verursachen?

     // 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); 
          } 
         } 

Antwort

1

Wenn ich mich nicht irre, öffnen Sie die Datei zum Anhängen, anstatt zu überschreiben. Haben Sie die Datei selbst überprüft, um zu sehen, ob die Daten dort dupliziert werden?