Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
38 / 38 / 16
Регистрация: 14.03.2012
Сообщений: 168

Сортировка текста в RichTextBox

04.08.2013, 17:15. Показов 1838. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Текст в RichTextBox:

Code
1
2
3
4
5
6
7
200 - jsadg
100 - jkasdg
800 - lcvbxdf
10 - kmfgbbtr
1000 - jlcxihu
7 - kncvuc
56 - vbdigfo
Как отсортировать в RichTextBox текст по первым цифрам по возростанию или убыванию (без разницы)
Чтоб получилось

Code
1
2
3
4
5
6
7
7 - kncvuc
10 - kmfgbbtr
56 - vbdigfo
100 - jkasdg
200 - jsadg
800 - lcvbxdf
1000 - jlcxihu
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.08.2013, 17:15
Ответы с готовыми решениями:

RichTextBox ерунда в строках после вордИскажение форматирования при вставке текста в RichTextBox из MS Word
Суть в следующем: 1) Имеется статья формата doc (заголовки, абзацы, списки) 2) Копируется текст стати в буфер обмена и затем в...

Форматирование текста в RichTextBox
Есть ли в что-то готовое чтобы прикрутить к RichTextbox вот этот функционал? (см.скриншот) Или только самому делать?

Добавление текста в RichTextBox
Есть RichTextBox1 и три текстбокса... Код записи с текстбоксов такой RichTextBox1.Text = RichTextBox1.Text & TextBox1.Text &...

5
11 / 11 / 5
Регистрация: 22.08.2013
Сообщений: 77
22.08.2013, 10:27
На форме Richtextbox и кнопка
VB.NET
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
Public Class Form1
    Dim otv As String
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim kstr As Int32 = RichTextBox1.Lines.Length - 1 'Кол-во строк - 1
        Dim a As Int32 = 0
        Dim c As Int32 = 0 ' Прошдое значение a
        Dim max As Int32 ' Максимальное значение
        Dim maxs As Int32 ' Номер строки с максимальным значением
        Dim nstr As Int32 'Номер обрабатываемой строки  
        Dim b As Int32 ' нужна для отделения числа и строки
 
        For i = 0 To kstr ' Ищем максимальное значение
            b = InStr(RichTextBox1.Lines(i), " ") 'Находим первый пробел
            If a < Microsoft.VisualBasic.Left(RichTextBox1.Lines(i), b) Then 'Если число больше, чем в a
                a = Microsoft.VisualBasic.Left(RichTextBox1.Lines(i), b) 'Записываем число в a
                maxs = i 'Записываем номер строки с максимальным числом
            End If
        Next
        max = a 'Чтобы а было максимальным
 
        For t = 0 To kstr - 1 'Перебираем все строки -1 т.к. максимальную уже нашли
            For i = 0 To kstr 'Здесь аналогично ищем меньшее
                b = InStr(RichTextBox1.Lines(i), " ")
                If a > Microsoft.VisualBasic.Left(RichTextBox1.Lines(i), b) And Microsoft.VisualBasic.Left(RichTextBox1.Lines(i), b) > c Then
                    a = Microsoft.VisualBasic.Left(RichTextBox1.Lines(i), b)
                    nstr = i
                End If
            Next
            c = a 'Прошлое меньшее, чтобы найти больше его
            If otv = "" Then ' Если это первая запись, то не переводим каретку на новую строку
                otv &= RichTextBox1.Lines(nstr)
            Else
                otv &= vbNewLine & RichTextBox1.Lines(nstr)
            End If
            a = max 'Чтобы а было максимальным
        Next
 
        otv &= vbNewLine & RichTextBox1.Lines(maxs) 'Последним записываем максимальное значение
        RichTextBox1.Text = otv '  Выводим ответ
    End Sub
End Class
Надеюсь всё понятно

Добавлено через 2 минуты
Один нюанс, если будет две(или больше) одинаковых цифры, то он выкинет все, кроме первой!
0
 Аватар для KolunyaZ
140 / 98 / 20
Регистрация: 11.03.2013
Сообщений: 147
22.08.2013, 14:46
С массивами побыстрее будет, наверное

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        Dim D() As String = Split(RichTextBox1.Text, vbLf) 'Массив со строками из rtb
        Dim K() As Integer ' Массив с "цифрами" 
        Dim T() As String ' Массив с "буквами"
        Dim tmpS() As String 'Временный массив, чтоб разбить строку на цифры и буквы
        Dim Result_Text As String 
 
        ReDim K(UBound(D))
        ReDim T(UBound(D))
 
        For i = 0 To D.Length - 1
            tmpS = Split(D(i), " - ") 'разбираем строку
            K(i) = CInt(tmpS(0)) 'сюда цифры
            T(i) = tmpS(1)'сюда буквы
        Next
 
        Array.Sort(K, T) 'сортируем связанные массивы 
 
        For i = 0 To T.Length - 1
            Result_Text += K(i) & " - " & T(i).ToString & vbLf 'Собираем строки обратно 
        Next
        RichTextBox1.Text = Result_Text
2
38 / 38 / 16
Регистрация: 14.03.2012
Сообщений: 168
22.08.2013, 15:03  [ТС]
KolunyaZ, СПАСИБО все робит. Но есть одно НО! Второй раз сортировать уже нельзя( Не знаете как исправить. Ругается на строку
VB.NET
1
K(i) = CInt(tmpS(0))
Code
1
Приведение строки "" к типу "Integer" является недопустимым.
0
 Аватар для KolunyaZ
140 / 98 / 20
Регистрация: 11.03.2013
Сообщений: 147
22.08.2013, 15:11
После сортировки "приляпывается" лишний символ "перевода каретки"
При повторном разборе строки получается пустой набор букв и цифр, что и вызывает ошибку, исправил на скорую руку:
VB.NET
1
2
3
4
5
6
7
8
        For i = 0 To T.Length - 1
            If i = T.Length - 1 Then
                Result_Text += K(i) & " - " & T(i).ToString
            Else
                Result_Text += K(i) & " - " & T(i).ToString & vbLf
            End If
 
        Next
1
38 / 38 / 16
Регистрация: 14.03.2012
Сообщений: 168
22.08.2013, 15:15  [ТС]
KolunyaZ, Спасибо огромное!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.08.2013, 15:15
Помогаю со студенческими работами здесь

Сортировка текста в richTextBox
Добрый вечер. Подскажите пожалуйста как можно отсортировать текст в richTextBox1. Желательно методом методом прямого включения, но можно и...

Выделение текста при постоянном добавлении текста в RichTextBox
Делаю программу которая получает данные по Serial порту и выводит их в RichTextBox. Проблема у меня заключается в том, что когда данные...

Сортировка в richtextbox
Доброго времени суток, есть проблема, сделал код по ентропии, там есть подсчет количества символов в ентропии в richtextbox, не могу...

Сортировка richtextbox по алфавиту
Здравствуйте! Помогите с решением одной задачи: В richTextBox1 вводятся следующие данные: Фамилия, инициалы, место работы и год. Нужно...

Сортировка строк в RichTextBox
Помогите пожалуйста закончить программу. В форме есть 4 текстовых поля в которые вписываем имена. Кнопка1 выводит имена в richTextBox1 (это...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru