powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Перебор символов в строке
5 сообщений из 5, страница 1 из 1
Перебор символов в строке
    #37391733
Eugen2011
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток! Как организовать перебор символов без повтора и вывести все варианты в ListBox?!!! Весь инет облазил для VB ни одного примера не нашёл.
Задача такова, на форме Text1.Text, Text2.Text, ListBox, Label и кнопка CommandButton. В Text1.Text вводим символы, значение Text2.Text должен равнятся мин. длине выводимых слов, а значение Text1.Text = макс. длине, т.е. если ввести "ABC" и поставить значение Text2.Text = "1", то результат должен получится примерно такой:

A
B
C
AB
AC
BA
BC
CA
CB
ABC
ACB
BCA
BAC
CAB
CBA

Есть код, (писал не я), отлично работает, но выводит только слова равные длине Text1.Text.
Может кто подскажет что в этом коде нужно изменить чтобы выводились все нужные мне варианты, или может у кого-то есть готовый пример?
Заранее спасибо!
Собственно вот код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Option Explicit
Dim s As String
Dim x As Long


Private Sub Command1_Click()
List1.Clear
x =  0 
s = Text1.Text
Sm "", s
End Sub
Sub Sm(AlreadyS As String, s As String)
Dim i As Integer
  If Len(s) =  1  Then
    List1.AddItem AlreadyS + s
    DoEvents
    x = x +  1 
    Label1.Caption = x
    Exit Sub
  End If
  For i =  1  To Len(s)
    Sm AlreadyS + Mid$(s, i,  1 ), Left$(s, i -  1 ) + Mid$(s, i +  1 )
  Next
End Sub

Модератор: учимся оформлять код тэгами SRC
...
Рейтинг: 0 / 0
Перебор символов в строке
    #37391746
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugen2011,
в цикле
Накопитель = Накопитель & "&" & переменная & "&"
то есть как накопитель в одну строку все данные, и затем на сравнение через Like
If Накопитель Like "&" & переменная & "&" Then Beep
обрамляем амперсандами или чем то другим, чтобы не было подвоха
...
Рейтинг: 0 / 0
Перебор символов в строке
    #37391753
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрю,
Не надо отвечать, если не понял вопрос.
...
Рейтинг: 0 / 0
Перебор символов в строке
    #37391791
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Eugen2011,
добавил в Ваш код две переменные, цикл и процедуру
Код: plaintext
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.
Option Explicit
Dim s As String
Dim x As Long

'*******************************
Private Sub Command1_Click()
Dim i0%, i%
List1.Clear
x =  0 
s = Text1.Text
i0 = Int(Val(Text2.Text))
For i = i0 To Len(s)
    combo s, i
Next
End Sub
'*******************************
Sub Sm(AlreadyS As String, s As String)
Dim i As Integer
  If Len(s) =  1  Then
    List1.AddItem AlreadyS + s
    DoEvents
    x = x +  1 
    Label1.Caption = x
    Exit Sub
  End If
  For i =  1  To Len(s)
    Sm AlreadyS + Mid$(s, i,  1 ), Left$(s, i -  1 ) + Mid$(s, i +  1 )
  Next
End Sub
'*******************************
Sub combo(ss$, k%)
Dim i%, j%
If Len(ss) = k Then
    Sm "", ss
Else
    For i =  1  To Len(ss) - k +  1 
    If k =  1  Then
        combo Mid(ss, i,  1 ),  1 
    Else
    For j = i +  1  To Len(s) - k +  2 
        combo Mid(ss, i,  1 ) & Mid(ss, j, k -  1 ), k
    Next j
    End If
    Next i
End If
End Sub
...
Рейтинг: 0 / 0
Перебор символов в строке
    #37391802
Eugen2011
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища
Огромнейшее Вам спасибо!!! Именно то что мне было нужно.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Перебор символов в строке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]