Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
1 / 1 / 1
Регистрация: 27.05.2014
Сообщений: 76

Найти не совпадения

04.02.2021, 13:47. Показов 1439. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день! Есть свой список:
C#
1
string[] ar = new string[] { "Cs-137", "K-40", "Ra-226", "Th-232" };
Нужно найти совпадения и выполнить определенный код, и не совпадения, бывает такое что в другом списке, есть например 232-th, нужно удалить из списка несовпадений, а оставить только те несовпадения, что есть у меня в списке.
делаю так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
for (int k = 0; k < xDoc.DocumentElement.SelectNodes("//b2/m4").Count; k++){
                            for (int kk = 0; kk < ar.Length; kk++)
                            {
                                if (xDoc.DocumentElement.SelectNodes("//b2/m4")[k].Attributes["u"].Value.Replace(" ", "").ToString() == ar[kk].ToString())
                                {
                                    if (xDoc.DocumentElement.SelectNodes("//b2/m5")[k].Attributes["u"].Value.IndexOf("<") == 0)
                                    {
                                     //   textBox2.AppendText(naiden++.ToString());
                                    }
                                    else
                                    {
                                        
                                    }
                                }else {
                                    
                                }
                            }   
                        }
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.02.2021, 13:47
Ответы с готовыми решениями:

Индексированные поля (совпадения не допускаются) длина совпадения
Столкнулся с проблемой записи в таблицу при индексации поля да (совпадения не допускаются). &quot;На танцевался&quot; здорово. Если...

Найти совпадения
Есть один целый массив, в котором есть подмассивы. Как вытащить все те подмассивы у которых содержимое 4-5 ячеек, будет совпадать. То...

Найти совпадения из массива
$arr = array( 'слово1' =&gt; '0', 'слово2' =&gt; '1', 'no' =&gt; '227', 'НеНайдено' =&gt; '054', ); $string = 'no word ?'; $cat =...

11
 Аватар для Kazbek17
1484 / 939 / 454
Регистрация: 06.02.2012
Сообщений: 2,868
04.02.2021, 14:05
stik77, Структуру документа покажите.
0
1 / 1 / 1
Регистрация: 27.05.2014
Сообщений: 76
04.02.2021, 14:10  [ТС]
Kazbek17, вы про xml?
0
 Аватар для Kazbek17
1484 / 939 / 454
Регистрация: 06.02.2012
Сообщений: 2,868
04.02.2021, 14:11
Цитата Сообщение от stik77 Посмотреть сообщение
вы про xml?
Да, именно про него.
0
1 / 1 / 1
Регистрация: 27.05.2014
Сообщений: 76
04.02.2021, 14:12  [ТС]
Kazbek17,
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="utf-8" standalone="no"?><preparedreport><previewpages><page0><b3 t="0"><m7 u="C:\Radfordate\konfigurations\Гамма-1П №0095-15 - NEW\Spe\20201030-1009_2.spe"/><m8 u="0021836"/><m9 u="Ba-133 A=7010 Бк/кг dA=6% 26.05.2008
Cs-137 A=4450 Бк/кг dA=5% 26.05.2008
Eu-152 A=5660 Бк/кг dA=7% 26.05.2008
Am-241 A=4650 Бк/кг dA=9% 26.05.2008 Ba-133 A=7010 Бк/кг dA=6% 26-05-2008
Cs-137 A=4450 Бк/кг dA=5% 26-05-2008
Eu-152 A=5660 Бк/кг dA=7% 26-05-2008
Am-241 A=4650 Бк/кг dA=9% 26-05-2008"/><m10 u="200mlNV"/><m11 u="49.05"/><m12 u="406.68   c."/><m13 u="Карпов А.Д."/><m14 u="01-06-2020"/><m15 u="GCD-40190 #1173"/><m16 u="Отдел Радиоэкологии ВНИИЛМ, г.Пушкино
Отчет гамма-спектрометра на основе ОЧГ."/><m17 u="Имя файла:"/><m18 u="Имя спектра:"/><m19 u="Описание пробы:"/><m20 u="Геометрия:"/><m21 u="Масса, г:"/><m22 u="Время реал,с:"/><m23 u="Оператор:"/><m24 u="Дата отбора:"/><m25 u="Детектор:"/><m26 u="Описание пробы 1:"/><m27 u="пдл"/><m28 u="Участок отбора:"/><m29 u="СУ-02Р"/><m30 u="Описание пробы 2:"/><m31 u="Крушина"/><m32 u="Описание пробы 3:"/><m33 u="Листья"/><m34 u="Описание прочее:"/><m35 u=""/></b3><TfrxNullBand Height="978.89827" Left="0" Top="0" Width="718.1107" l="0" t="0"/><b1 t="754.14193"><m1 u="Радионуклиды"/><m2 u="Активность,
Бк/кг"/><m3 u="Относительная
погрешность,
%"/></b1><b2 t="814.14193"><m4 u="   Cs-137"/><m5 u="5900"/><m6 u="9"/></b2><b2 t="838.14193"><m4 u="   K-40"/><m5 u="< 1100"/><m6 u=" "/></b2><b2 t="862.14193"><m4 u="   Background"/><m5 u=""/><m6 u=" "/></b2><b2 t="886.14193"><m4 u="   Ra-226"/><m5 u="< 600"/><m6 u=" "/></b2></page0></previewpages><logicalpagenumbers><page n="1"/></logicalpagenumbers><outline/><report><TfrxReport DotMatrixReport="0" PreviewOptions.OutlineVisible="0" PreviewOptions.OutlineWidth="120" ReportOptions.Name=""/></report><sourcepages><TfrxReportPage PaperWidth="210" PaperHeight="279" PaperSize="256" LeftMargin="10" RightMargin="10" TopMargin="10" BottomMargin="10" ColumnWidth="0" ColumnPositions.Text="" HGuides.Text="" VGuides.Text="0"><TfrxHeader Name="Header1" Height="60" Left="0" Top="835.27613" Width="718.1107" ReprintOnNewPage="True"><TfrxMemoView Name="Memo10" Left="0" Top="12" Width="116.22047" Height="48" ShowHint="False" Color="16777215" Font.Charset="1" Font.Color="0" Font.Height="-13" Font.Name="Arial" Font.Style="1" Frame.Typ="15" HAlign="haCenter" ParentFont="False" VAlign="vaCenter" Text="Радионуклиды"/><TfrxMemoView Name="Memo14" Left="115.65337" Top="12" Width="136" Height="48" ShowHint="False" Color="16777215" Font.Charset="1" Font.Color="0" Font.Height="-13" Font.Name="Arial" Font.Style="1" Frame.Typ="15" HAlign="haCenter" ParentFont="False" VAlign="vaCenter" Text="Активность,
[Bk]"/><TfrxMemoView Name="Memo18" Left="251.65337" Top="12" Width="136" Height="48" ShowHint="False" Color="16777215" Font.Charset="1" Font.Color="0" Font.Height="-13" Font.Name="Arial" Font.Style="1" Frame.Typ="15" HAlign="haCenter" ParentFont="False" VAlign="vaCenter" Text="Относительная
погрешность,
%"/></TfrxHeader><TfrxMasterData Name="MasterData1" Height="24" Left="0" Top="918.42579" Width="718.1107" Columns="1" ColumnWidth="200" ColumnGap="20" DataSetName="frxMainDataSet" RowCount="0"><TfrxMemoView Name="Memo8" Left="0" Top="0" Width="115.77953" Height="24" ShowHint="False" Font.Charset="1" Font.Color="0" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" Frame.Width="0.5" HAlign="haCenter" ParentFont="False" VAlign="vaCenter" Text="   [NUCLID]"/><TfrxMemoView Name="Memo13" Left="115.65337" Top="0" Width="136" Height="24" ShowHint="False" Font.Charset="1" Font.Color="0" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" Frame.Width="0.5" HAlign="haCenter" ParentFont="False" VAlign="vaCenter" Text="[ACTIVITY]"/><TfrxMemoView Name="Memo17" Left="251.65337" Top="0" Width="136" Height="24" ShowHint="False" Font.Charset="1" Font.Color="0" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" Frame.Width="0.5" HAlign="haCenter" ParentFont="False" VAlign="vaCenter" Text="[DACTIVITY]"/></TfrxMasterData><TfrxReportTitle Name="ReportTitle1" Height="754.14193" Left="0" Top="18.89765" Width="718.1107"><TfrxMemoView Name="Memo2" Left="166.29932" Top="90.70872" Width="506.45702" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="[SPE_NAME]"/><TfrxMemoView Name="Memo3" Left="166.29932" Top="132.70349778" Width="506.45702" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="[SPE_CODE]"/><TfrxMemoView Name="Memo1" Left="166.29932" Top="174.69827556" Width="506.45702" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="[COMMENT]"/><TfrxMemoView Name="Memo4" Left="166.29932" Top="258.68783111" Width="506.45702" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="[GEOM_NAME]"/><TfrxMemoView Name="Memo5" Left="166.29932" Top="300.68260889" Width="506.45702" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="[SP_MASS]"/><TfrxMemoView Name="Memo6" Left="166.29932" Top="342.67738667" Width="506.45702" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="[TIME_REAL]"/><TfrxMemoView Name="Memo7" Left="166.29932" Top="426.66694222" Width="506.45702" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="[OPERATOR]"/><TfrxMemoView Name="Memo9" Left="166.29932" Top="216.69305333" Width="506.45702" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="[PREPBEGIN_DATE]"/><TfrxMemoView Name="Memo12" Left="166.29932" Top="384.67216444" Width="506.45702" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="[DET_NAME]"/><TfrxMemoView Name="Memo11" Left="0" Top="7.55906" Width="287.24428" Height="49.13389" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" ParentFont="False" Text="Отдел Радиоэкологии ВНИИЛМ, г.Пушкино
Отчет гамма-спектрометра на основе ОЧГ."/><TfrxMemoView Name="Memo26" Left="11.33859" Top="90.70872" Width="154.96073" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="Имя файла:"/><TfrxMemoView Name="Memo27" Left="11.33859" Top="132.70349778" Width="154.96073" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="Имя спектра:"/><TfrxMemoView Name="Memo28" Left="11.33859" Top="174.69827556" Width="154.96073" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="Описание пробы:"/><TfrxMemoView Name="Memo29" Left="11.33859" Top="258.68783111" Width="154.96073" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="Геометрия:"/><TfrxMemoView Name="Memo30" Left="11.33859" Top="300.68260889" Width="154.96073" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="Масса, г:"/><TfrxMemoView Name="Memo31" Left="11.33859" Top="342.67738667" Width="154.96073" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="Время реал,с:"/><TfrxMemoView Name="Memo32" Left="11.33859" Top="426.66694222" Width="154.96073" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="Оператор:"/><TfrxMemoView Name="Memo33" Left="11.33859" Top="216.69305333" Width="154.96073" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="Дата отбора:"/><TfrxMemoView Name="Memo34" Left="11.33859" Top="384.67216444" Width="154.96073" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="Детектор:"/><TfrxMemoView Name="Memo15" Left="11.33859" Top="544.25232" Width="154.96073" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="Описание пробы 1:"/><TfrxMemoView Name="Memo16" Left="166.29932" Top="544.25232" Width="506.45702" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="[Comment1]"/><TfrxMemoView Name="Memo19" Left="11.33859" Top="502.67749" Width="154.96073" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="Участок отбора:"/><TfrxMemoView Name="Memo20" Left="166.29932" Top="502.67749" Width="506.45702" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="[Sample site]"/><TfrxMemoView Name="Memo21" Left="11.33859" Top="585.82715" Width="154.96073" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="Описание пробы 2:"/><TfrxMemoView Name="Memo22" Left="166.29932" Top="585.82715" Width="506.45702" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="[Comment2]"/><TfrxMemoView Name="Memo23" Left="11.33859" Top="627.40198" Width="154.96073" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="Описание пробы 3:"/><TfrxMemoView Name="Memo24" Left="166.29932" Top="627.40198" Width="506.45702" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="[Comment3]"/><TfrxMemoView Name="Memo25" Left="11.33859" Top="668.97681" Width="154.96073" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="Описание прочее:"/><TfrxMemoView Name="Memo35" Left="166.29932" Top="668.97681" Width="506.45702" Height="41.99477778" ShowHint="False" Font.Charset="1" Font.Color="-16777208" Font.Height="-13" Font.Name="Arial" Font.Style="0" Frame.Typ="15" ParentFont="False" VAlign="vaCenter" Text="[Sample description]"/></TfrxReportTitle></TfrxReportPage></sourcepages><dictionary><b1 name="Page0.Header1"/><b2 name="Page0.MasterData1"/><b3 name="Page0.ReportTitle1"/><m1 name="Page0.Memo10"/><m10 name="Page0.Memo4"/><m11 name="Page0.Memo5"/><m12 name="Page0.Memo6"/><m13 name="Page0.Memo7"/><m14 name="Page0.Memo9"/><m15 name="Page0.Memo12"/><m16 name="Page0.Memo11"/><m17 name="Page0.Memo26"/><m18 name="Page0.Memo27"/><m19 name="Page0.Memo28"/><m2 name="Page0.Memo14"/><m20 name="Page0.Memo29"/><m21 name="Page0.Memo30"/><m22 name="Page0.Memo31"/><m23 name="Page0.Memo32"/><m24 name="Page0.Memo33"/><m25 name="Page0.Memo34"/><m26 name="Page0.Memo15"/><m27 name="Page0.Memo16"/><m28 name="Page0.Memo19"/><m29 name="Page0.Memo20"/><m3 name="Page0.Memo18"/><m30 name="Page0.Memo21"/><m31 name="Page0.Memo22"/><m32 name="Page0.Memo23"/><m33 name="Page0.Memo24"/><m34 name="Page0.Memo25"/><m35 name="Page0.Memo35"/><m4 name="Page0.Memo8"/><m5 name="Page0.Memo13"/><m6 name="Page0.Memo17"/><m7 name="Page0.Memo2"/><m8 name="Page0.Memo3"/><m9 name="Page0.Memo1"/></dictionary><picturecache/></preparedreport>
0
 Аватар для Kazbek17
1484 / 939 / 454
Регистрация: 06.02.2012
Сообщений: 2,868
04.02.2021, 14:55
stik77,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    string[] arr = new string[] { "Cs-137", "K-40", "Ra-226", "Th-232" };
 
                                    //или парсим XDocument.Parse("")
    XDocument doc =  XDocument.Load("Путь к файлу");
    for(int i =0; i < arr.Length; i++)
    {
        XElement result = doc.Descendants("b2").Elements().
                                                Where(x => x.Attribute("u").
                                                Value.Trim() == arr[i]).FirstOrDefault();
 
        if (result != null)
        {
            //получаем значение
            string value = result.Attribute("u").Value.Trim();
            //Выполняем какое-то действие
 
        }
 
    }
0
1 / 1 / 1
Регистрация: 27.05.2014
Сообщений: 76
04.02.2021, 15:40  [ТС]
Kazbek17, а можно как-то подправить мой код, а то получается все переписывать с 0
0
 Аватар для Kazbek17
1484 / 939 / 454
Регистрация: 06.02.2012
Сообщений: 2,868
04.02.2021, 15:42
stik77, Я вам дал наводку, там правьте под себя.
Цитата Сообщение от stik77 Посмотреть сообщение
а то получается все переписывать с 0
Что тут переписывать? 5 строк кода.
0
1 / 1 / 1
Регистрация: 27.05.2014
Сообщений: 76
04.02.2021, 15:49  [ТС]
Kazbek17,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
 int dublicat = 0;
            string nesov = "";
            folderBrowserDialog1.ShowDialog();
            string path = folderBrowserDialog1.SelectedPath;
            string[] file_list = Directory.GetFiles(path, "*.fp3");
            if (file_list.Length != file_list.Length || file_list.Length == 0) // проверяем количество файлов
            {
                MessageBox.Show("Проверьте файлы");
                return;
            }
            for (int i = 0; i < file_list.Length; i++)
            {
                string[] ar = new string[] { "Cs-137", "K-40", "Ra-226", "Th-232" };
                XmlDocument xDoc = new XmlDocument();
                xDoc.Load(file_list[i]);
                string _m7 = xDoc.DocumentElement.SelectNodes("//b3/m7")[0].Attributes["u"].Value;
                string[] folders = _m7.Split('\\');
                string _m8 = xDoc.DocumentElement.SelectNodes("//b3/m8")[0].Attributes["u"].Value;
                string _m29 = xDoc.DocumentElement.SelectNodes("//b3/m29")[0].Attributes["u"].Value;
                string _m27 = xDoc.DocumentElement.SelectNodes("//b3/m27")[0].Attributes["u"].Value;
                string _m31 = xDoc.DocumentElement.SelectNodes("//b3/m31")[0].Attributes["u"].Value;
                string _m33 = xDoc.DocumentElement.SelectNodes("//b3/m33")[0].Attributes["u"].Value;
                string _m35 = xDoc.DocumentElement.SelectNodes("//b3/m35")[0].Attributes["u"].Value;
                string _m14 = xDoc.DocumentElement.SelectNodes("//b3/m14")[0].Attributes["u"].Value;
                string _m10 = xDoc.DocumentElement.SelectNodes("//b3/m10")[0].Attributes["u"].Value;
                string _m11 = xDoc.DocumentElement.SelectNodes("//b3/m11")[0].Attributes["u"].Value;
                string _m12 = xDoc.DocumentElement.SelectNodes("//b3/m12")[0].Attributes["u"].Value;
                string _m15 = xDoc.DocumentElement.SelectNodes("//b3/m15")[0].Attributes["u"].Value;
                string _m13 = xDoc.DocumentElement.SelectNodes("//b3/m13")[0].Attributes["u"].Value;
                SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\gamma.db");
                SQLiteCommand check = new SQLiteCommand("SELECT * FROM gamma WHERE field1 = '" + folders.Last() + "'", cnn);
                cnn.Open();
                SQLiteDataReader reader = check.ExecuteReader();
 
                if (reader.HasRows)
                {
                    dublicat++;
                }
                else
                {
                    int naiden = 0;
                    for (int i = 0; i < ar.Length; i++)
                    {
                        XmlDocument result = xDoc.DocumentElement.SelectNodes("//b2/m4").
                                                                Where(x => x.Attribute("u").
                                                                Value.Trim() == ar[i]).FirstOrDefault();
 
                        if (result != null)
                        {
                            //получаем значение
                            string value = result.Attribute("u").Value.Trim();
                            //Выполняем какое-то действие
 
                        }
 
 
                    }
                }
                MessageBox.Show("Дубликатов:" + dublicat);
            }
        }
С xml первый раз работаю, поэтому как-то будет по другому все)
0
 Аватар для Kazbek17
1484 / 939 / 454
Регистрация: 06.02.2012
Сообщений: 2,868
04.02.2021, 15:54
stik77, А если было бы 5000 тысяч узлов, вы бы тоже писали переменные?
что то подход странный немного.
Да и зачем проверять тогда содержимое на дубли, если у вас есть БД? Тоже не понятно.
0
1 / 1 / 1
Регистрация: 27.05.2014
Сообщений: 76
04.02.2021, 16:01  [ТС]
Kazbek17, для того, что я беру из xml "20201030-1009_2.spe", после проверяю в бд есть ли такая строка, если нет, собираю данные из файла и записываю в бд)
0
 Аватар для Kazbek17
1484 / 939 / 454
Регистрация: 06.02.2012
Сообщений: 2,868
04.02.2021, 19:19
Лучший ответ Сообщение было отмечено stik77 как решение

Решение

Вот это, сокращаем.
C#
1
2
3
4
5
6
7
8
9
10
11
                string _m8 = xDoc.DocumentElement.SelectNodes("//b3/m8")[0].Attributes["u"].Value;
                string _m29 = xDoc.DocumentElement.SelectNodes("//b3/m29")[0].Attributes["u"].Value;
                string _m27 = xDoc.DocumentElement.SelectNodes("//b3/m27")[0].Attributes["u"].Value;
                string _m31 = xDoc.DocumentElement.SelectNodes("//b3/m31")[0].Attributes["u"].Value;
                string _m33 = xDoc.DocumentElement.SelectNodes("//b3/m33")[0].Attributes["u"].Value;
                string _m35 = xDoc.DocumentElement.SelectNodes("//b3/m35")[0].Attributes["u"].Value;
                string _m14 = xDoc.DocumentElement.SelectNodes("//b3/m14")[0].Attributes["u"].Value;
                string _m10 = xDoc.DocumentElement.SelectNodes("//b3/m10")[0].Attributes["u"].Value;
                string _m11 = xDoc.DocumentElement.SelectNodes("//b3/m11")[0].Attributes["u"].Value;
                string _m12 = xDoc.DocumentElement.SelectNodes("//b3/m12")[0].Attributes["u"].Value;
                string _m15 = xDoc.DocumentElement.SelectNodes("//b3/m15")[0].Attributes["u"].Value;
Я не знаю какие у вас там колонки для ввода данных в бд, но принцип я думаю будет понятен.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
XDocument doc = XDocument.Load("Путь к файлу");
//Метод для объедения значений. 
public string JoinNode(params string[] node)
{
    string str = string.Empty;
    for (int i = 0; i < node.Length; i++)
    {
        XElement result = doc.Descendants("b3").Elements(node[i]).FirstOrDefault();
        if (result != null)
            str += $"'{result.Attribute("u").Value.Trim()}',";
    }
    return str.TrimEnd(',');
}
 
//Это код вешаем на кнопку, внести данные в бд
string Values = JoinNode("m8", "m29", "m27", "m31", "m33", "m35", "m14", "m10", "m11", "m12", "m15", "m13");
string cmd = $"INSERT INTO TABLE1(col1,col2,col3,col4,col5 и.т.д){nameof(Values)}({Values});";
 
//Результат будет такой, после объединения
//INSERT INTO TABLE1(col1,col2,col3,col4,col5 и.т.д)Values('0021836','СУ-02Р','пдл','Крушина','Листья','','01-06-//2020','200mlNV','49.05','406.68   c.','GCD-40190 #1173','Карпов А.Д.')
 
cmd - отправляем уже SqlCommandTex-ту
Это заменяет вам создавать кучу переменных.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.02.2021, 19:19
Помогаю со студенческими работами здесь

Найти совпадения в строке
Как найти сопадение в строке так, чтобы искал как в вернем так и в нижнем регистре. strops не выход поскольку приходится дублировать для...

Найти совпадения в таблице БД
Доброго времени суток. Есть таблица БД в ацессе по названием Врачи. Нужно найти тех врачей которые работают в нескольких отделениях. Сама...

Найти все совпадения
Есть ли в C++ аналог Python'овского re.findall(regex, string) ? Добавлено через 6 минут Простите, увидел что такая тема уже есть

Найти совпадения, заменить
'#\&quot;#i' В тексте присутствуют &quot;, как его через регулярку найти? Слеш для экранирования, но как его экранировать?

Найти совпадения в тексте
Доброго времени суток, ребята. Прошу прощения, если повторюсь и такой вопрос уже звучал. Не хватило сил перелопатить весь форум) Пишу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru