Удаление одинаковых слов в двух ListBox - Visual Basic .NET

  1. Доброго всем времени суток! Есть предложение:"У серьезных последствий ни для кого (ни для сервисов, ни для пользователей" они пословно помещенны в листбокс1 и есть листбокс 2 в котором отсутствуют слова - "последствий ни для кого" Ищу различие между этими двумя листбоксами.vb.net1 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      Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click         ListBox1.Items.Add("У")         ListBox1.Items.Add("серьезных")         ListBox1.Items.Add("последствий")         ListBox1.Items.Add("ни")         ListBox1.Items.Add("для")         ListBox1.Items.Add("кого")         ListBox1.Items.Add(" (ни")         ListBox1.Items.Add("для")         ListBox1.Items.Add("сервисов,")         ListBox1.Items.Add("ни")         ListBox1.Items.Add("для")         ListBox1.Items.Add("пользователей")           ListBox2.Items.Add("У")         ListBox2.Items.Add("серьезных")         ListBox2.Items.Add("кого")         ListBox2.Items.Add(" (ни")         ListBox2.Items.Add("для")         ListBox2.Items.Add("сервисов,")         ListBox2.Items.Add("ни")         ListBox2.Items.Add("для")         ListBox2.Items.Add("пользователей")           For i = 0 To ListBox2.Items.Count - 1             Dim searchString As String = ListBox2.Items(i)             If searchString <> String.Empty Then                 ' Find the item in the list and store the index to the item.                 Dim index As Integer = ListBox1.FindString(searchString)                 ' Determine if a valid index is returned. Select the item if it is valid.                 If index <> -1 Then                     ListBox1.SetSelected(index, True)                     ListBox1.Items.RemoveAt(index)                 Else                     ' MessageBox.Show("The search string did not match any items in the ListBox")                 End If             End If         Next     End Subкод взят у майкрософа (ссылку давать боюсь...не знаю можно ли) и переделан. В результате работы кода, по моему мнению, я должен был получить последовательность слов - "последствий ни для кого", но получаю "последний", "кого, "ни", "для" Вопрос: Почему в результате работы кода выдается "последний", "кого", "ни", "для" т.е перепутан порядок слов?


textual

Код:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    For Each v As String In ListBox2.Items
        ListBox1.Items.Remove(v)
    Next
End Sub


Похожие ответы
  1. Доброго времени суток всем! Такой вопрос: Возможно ли как-нибудь зная путь до папки в реестре и зная имя компьютера в сети удалить папку из реестра? Вводим в текстовое поле имя компьютера, и при нажатии на кнопку запись из реестра на удаленном компьютере удаляется. Заранее спасибо за ответы!

  1. В Visual Basic 2010 создаю текстовый редактор. Не выходит с "Правкой". Скину то, что есть, помогите кто может с "Копировать", "Вставить", "Вырезать", "Удалить" и Выравниванием по центру, слева, справа. Заранее спасибо!vb.net1 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 62 63 64 65 66 67 68 69 70 71 Public Class Form1       Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load         TextBox1.multiline = True         TextBox1.Clear()         Me.Text = "Простой текстовый редактор"         OpenFileDialog1.FileName = Nothing         OpenFileDialog1.Filter = "Текстовые файлы (*.txt) |'.txt|A11 files (*.*)|*.*"         SaveFileDialog1.Filter = "Текстовые файлы (f.txt) |*.txt|A11 files (*.*)|*.*"     End Sub     Private Sub ФайлToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ФайлToolStripMenuItem.Click         OpenFileDialog1.ShowDialog()         If OpenFileDialog1.FileName = Nothing Then Exit Sub         Try             Dim Читатель As New IO.StreamReader(OpenFileDialog1.FileName, System.Text.Encoding.GetEncoding(1251))             Читатель.Close()         Catch Exc As System.IO.FileNotFoundException             MessageBox.Show("Нет такого файла", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)         Catch Exc As Exception             MessageBox.Show(Exc.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)           End Try     End Sub     Private Sub СохранитьКакToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles СохранитьКакToolStripMenuItem.Click         SaveFileDialog1.FileName = SaveFileDialog1.FileName         If SaveFileDialog1.ShowDialog = DialogResult.OK Then Запись()     End Sub     Sub Запись()         Try             Dim Писатель As New IO.StreamWriter(SaveFileDialog1.FileName, False, System.Text.Encoding.GetEncoding(1251))             Писатель.Write(TextBox1.Text)             Писатель.Close()             TextBox1.Modified = False         Catch Exc As Exception             MessageBox.Show(Exc.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)         End Try     End Sub     Private Sub ВыходToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ВыходToolStripMenuItem.Click         Me.Close()     End Sub     Private Sub Form1_Closeing(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing         If TextBox1.Modified - False Then Exit Sub         Dim MBox As DialogResult         MessageBox.Show("Текст был изменен." & vbCrLf & "Сохранить изменения?", "Простой редактор", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation)         If MBox = DialogResult.No Then Exit Sub         If MBox = DialogResult.Cancel Then e.Cancel = True         If MBox = DialogResult.Yes Then             If SaveFileDialog1.ShowDialog = DialogResult.OK Then                 Запись() : Exit Sub             Else                 e.Cancel = True             End If         End If     End Sub         Private Sub ВставитьToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ВставитьToolStripMenuItem.Click         Clipboard.Clear()         Clipboard.SetText(RichTextBox1.SelectedText)         RichTextBox1.SelectedText = Clipboard.GetText()     End Sub       Private Sub ШрифтToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ШрифтToolStripMenuItem.Click         FontDialog1.ShowColor = True         FontDialog1.ShowDialog()         RichTextBox1.SelectionFont = FontDialog1.Font         RichTextBox1.SelectionColor = FontDialog1.Color     End Sub       Private Function FontDialog1() As Object         Throw New NotImplementedException     End Function

  1. К примеру есть массивvb.net1  Dim d As Integer() = {1, 2, 3, 4, 5, 6, 7, 8, 9}Как мне "положить" в него ещё одно число? к Примеру 3, между 6 и 7? Чтобы вышло {1, 2, 3, 4, 5, 6, 3, 7, 8, 9} А так же как его оттуда удалить потом? Просто до этого пользовался конструкциями типа list(of) Но в данный момент нужен именно массив

  1. vb.net1 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 Public Class Form1     Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted         TextBox1.Text = WebBrowser1.Document.Body.InnerText           '-------------------------Алгебра-------------------------'           Dim a As Integer         Dim b, c, d, d1, f As String         a = TextBox1.Lines.Count - 1         For x = 0 To a Step 1             If TextBox1.Lines(x) = "Предметы" Then                 b = TextBox1.Lines(x + 4)                 c = Replace(b, "+", "")                 d = Replace(c, "H", "")                 d1 = Replace(d, " ", "")             End If         Next         '--------Среднее значение---------'         Dim aa, ss, Ost, Prov As Long, SRZN As Double         aa = d ' Вводим исходное число в текстовое поле на форме.         ss = 0         Do             Ost = aa - Int(aa / 10) * 10 ' Вычисляем очередную цифру как остаток от деления на 10.             If Ost > 0 Then ss = ss + Ost Else Exit Do ' Прибавляем остаток к сумме.             aa = Int(aa / 10) ' Отбрасываем последнюю цифру.         Loop         SRZN = ss / Len(d1)         Algebra.Text = d1       End Sub       Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load         WebBrowser1.ScriptErrorsSuppressed = True         WebBrowser1.Navigate(adress.Text)     End Sub       Private Sub WebBrowser1_ProgressChanged(sender As Object, e As WebBrowserProgressChangedEventArgs) Handles WebBrowser1.ProgressChanged         Try             ProgressBar1.Value = CType((e.CurrentProgress / e.MaximumProgress * 100), Integer)         Catch Ex As Exception         End Try         If ProgressBar1.Value = 100 Then             Label3.Text = "Успешно!"         End If     End Sub End ClassЧто сделать, чтобы данные вносились 1 раз(на одну строчку). Эта форма выводится по нажатию на кнопку войти на другой форме

  1. Доброго времени суток! Прошу помощи в удалении программно созданных Label. Создать получилось, а вот с удалением как то не задалось. Создаю таким образом:vb.net1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Sub daty()           Dim mas(0 To kolvo - 1) As Label         For i = 0 To kolvo - 1             mas(i) = New Label             mas(i).Text = i + 1             mas(i).Left = 160             mas(i).Top = 30             mas(i).Height = 20             mas(i).Width = 20             mas(i).AutoSize = False               'mas(i).BorderStyle = BorderStyle.FixedSingle             If i > 0 Then                 mas(i).Left = 25 * i + 170             Else                 mas(i).Left = 170             End If             mas(i).Visible = True             Me.Controls.Add(mas(i))         Next     End SubПотом в событии Button_Click пытаюсь удалить:vb.net1 2 3 4 5 6 7 8 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click           Dim mas(0 To kolvo - 1) As Label         For Each lb As Label In mas             lb.Dispose()         Next       End SubВозникает ошибка: "Ссылка на объект не указывает на экземпляр объекта" Как правильно удалить? Заранее признателен!

  1. Написал программу по сканированию папки и извлечению их txt файлов ней текста и импорта его в DataGridView Дальше по нажатию кнопки идет подсчет и удаление повторяющихся строк Кликните здесь для просмотра всего текста vb.net1 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   Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click   Dim lr&         Dim i, j, f As Integer         Dim a, b, c As Object         c = 0         lr = DataGridView1.RowCount         f = 0           For i = 0 To lr - 1             ProgressBar1.Maximum = lr             If i >= lr Then Exit Sub             ProgressBar1.Value = i             Label2.Text = "Пройдено " & i & " из " & lr               If DataGridView1.Item(4, i).Value = "" And DataGridView1.Item(0, i).Value <> "" Then DataGridView1.Item(4, i).Value = 1             ProgressBar2.Maximum = 0             c = 1             For j = lr - 1 To i + 1 Step -1                 c = c + 1                   ProgressBar2.Maximum = j                 If c <= j Then ProgressBar2.Value = c                   a = DataGridView1.Item(0, i).Value                 b = DataGridView1.Item(0, j).Value                   If a = b Then                     DataGridView1.Item(4, i).Value = DataGridView1.Item(4, i).Value + 1                     DataGridView1.Rows.RemoveAt(j)                     If f >= 2 Then                         Label3.Text = "Удалено " & f = f + 1                     Else                         Label3.Text = "Удалено " & f                     End If                 End If             Next j               lr = DataGridView1.RowCount           Next i     End Sub Время его выполнения около 20 минут, возможно ли каким-нибудь образом ускорить сие дело? Или нужно по другому выполнить эти задачи? суть программы - сканирование плей-листов за 3 месяца за каждый день и составление отчета по количеству выходов песен за этот срок, импорт из базы недостающих данных и экспорт в ексель

  1. Всем доброго здоровичка!!! Такая проблема: VB2008 Удаляю файлы из папки.vb.net1 2 3 For Each txt$ In IO.Directory.GetFiles(p.SelectedPath, s2)             IO.File.Delete(txt)         NextРасширения беру из комбокса. Проблема в том, что он удаляет не нужные файлы; напр. выбираю *.doc, а он удаляет ещё и docx, выбираю *.htm, он удаляет ещё и html. Как сделать удаление только указанных файлов. Спасибо!!!

  1. Привет всем. Есть одна проблемка в vb.net. Помогите пожалуйста. Так вот, есть на форме datagridview. А также есть кнопка для очищения значений datagridview. При нажатии на эту кнопку, все данные datagridview обнуляются, за исключением первого и второго поля. В первом и втором полях всегда одни и те же записи. Их количество занимает 10 срок и два столбца. Мне надо сделать так, чтобы при обнулении (очищении) datagridview от лишних записей, те записи (сроки datagridview), которые были записаны ниже этих 10-и строк были автоматически удалены. То есть в итоге мне нужно чтобы в datagridview отображались обнуленные значения 10-строк, а нижеследующие строки были удалены. Думаю смог правильно пояснить свой вопрос? Спасибо заранее.

  1. Приветствую, товарищи. Существует ветка в реестре: HKEY_Current_User\Software\D2MO\ А в ней собрались папочки, созданные Data.Today, что привело к виду: HKEY_Current_User\Software\D2MO\08.06.2016 HKEY_Current_User\Software\D2MO\07.06.2016 HKEY_Current_User\Software\D2MO\06.06.2016 HKEY_Current_User\Software\D2MO\... HKEY_Current_User\Software\D2MO\... HKEY_Current_User\Software\D2MO\... Вопрос: как удалить все эти "папки" кроме той, что актуальна Data.Today?

  1. Здравствуйте! Имею таблицу в 2 столбца. Хочу удалить строки, в которых имеются одинаковые значения в первом столбце (у меня он называется Names). Накидал вот такую функцию, она работает, но медленно. Наверняка есть способ быстрее и красивее. Подскажите, пожалуйста.vb.net1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23     'Функция, сжимающая таблицы и убирающая из них повторы по первому столбцу с названием Names     Private Function CropeArr(ByVal Arr As System.Data.DataTable) As System.Data.DataTable         Dim o As Integer = 0         Dim d(0) As Long         Dim Hs As New HashSet(Of String)         'Первый цикл. Пробегаем по всем строкам в таблице и пытаемся добавить в хэшсет значения из столбца Names         'Если не получается (т.е. такое значение уже есть) - добавляем индекс строки в массив         For Each eRow As System.Data.DataRow In Arr.Rows             If Hs.Add(eRow!Names) = False Then                 Array.Resize(d, d.Count + 1)                 d(d.GetUpperBound(0)) = Arr.Rows.IndexOf(eRow)             End If         Next         'Второй цикл. По всем индексам в созданном в предыдущем цикле массиве удаляем строку с нужным индексом.         'Поскольку, с каждым удалением номера следующих строк уменьшаются на 1, добавляем переменную. которая компенсирует это уменьшение         For Each sD In d             Arr.Rows(sD - o).Delete()             o = o + 1           Next         Hs.Clear()         Return Arr     End Function