Ошибочные данные, полученные из ListView - PullRequest
0 голосов
/ 13 марта 2009

У меня возникли некоторые проблемы с моей программной логикой, которая перебирает коллекцию данных, которая существует в двух отдельных ListViews. После зацикливания и извлечения данных из ListView я затем добавляю все в текстовый файл с разделителями-запятыми ( CLOSEULDCONFIG.TXT ).

В первый раз, когда я выполняю эту логику, все работает как надо. Если я снова выполню эту логику, я получу 2 копии того, что находится в ListView. Каждый раз, когда я запускаю эту логику, количество копий ранее добавленных элементов 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 Ответ

1 голос
/ 13 марта 2009

Если я не ошибаюсь, вы открываете файл для добавления, а не перезаписи. Вы проверили сам файл, чтобы увидеть, дублируются ли там данные?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...