Форум программистов, компьютерный форум CyberForum.ru

Удвоение букв - Visual Basic

Восстановить пароль Регистрация
 
Viktor Grishko
 Аватар для Viktor Grishko
0 / 0 / 0
Регистрация: 20.12.2016
Сообщений: 26
03.01.2017, 15:59     Удвоение букв #1
При вводе фамилии, имени, отчества. Выводится Фамилия и инициалы(код ниже)только , не могу понять, каким методом, командой или способом можно сделать удвоение букв в нужном для этого окна(Text)
Удвоение букв

Visual Basic
1
2
3
4
5
Private Sub Go_Click()
 
    Text4.Text = Text1.Text & " " & Left(Text2.Text, 1) & "." & Left(Text3.Text, 1) & "."
   
End Sub
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fever brain
Экстрасенс
 Аватар для fever brain
639 / 200 / 58
Регистрация: 05.01.2016
Сообщений: 590
Записей в блоге: 3
04.01.2017, 11:10     Удвоение букв #2
Вопрос очень легкий, странно что вам никто не хочет отвечать
мож... обидели кого ??

Ответ:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Private Sub Form_Load()
    Dim s$, i&, j&
    s = InputBox("Введите чтото такое ..", , "Удвоение буквъ")
    j = Len(s): s = s & s
    For i = 1 To j: j = j + 1
        Mid(s, i * 2 - 1, 1) = Mid(s, j, 1)
        Mid(s, i * 2, 1) = Mid(s, j, 1)
    Next
    MsgBox s
    End
End Sub
Viktor Grishko
 Аватар для Viktor Grishko
0 / 0 / 0
Регистрация: 20.12.2016
Сообщений: 26
04.01.2017, 11:37  [ТС]     Удвоение букв #3
Ваш код рабочий., только он выводит в отдельном от формы окне. Мне надо, чтобы удвоение выводилось на text5(нижнее окно на фото). И при этом не надо было вводить повторно, что мне надо удвоить.
fever brain
Экстрасенс
 Аватар для fever brain
639 / 200 / 58
Регистрация: 05.01.2016
Сообщений: 590
Записей в блоге: 3
04.01.2017, 11:57     Удвоение букв #4
Ну так и есть, вот чем объясняется нежелание тебе помогать.
Тебе хочется чтобы я с нуля все написал, наверное у тебя чтото с руками что сам не можешь
прикрутить этот рабочий код к своей программе, о которой кстати я не имею ни малейшего представления

Выкладывай исходник. и вместе посмотрим на твои творчества что ты там напрогал
я и так проявляю свои экстрасенсорные способности чтобы понять. что должно получиться
Viktor Grishko
 Аватар для Viktor Grishko
0 / 0 / 0
Регистрация: 20.12.2016
Сообщений: 26
04.01.2017, 12:01  [ТС]     Удвоение букв #5
Хотя мне так больше нравится)
Если не трудно, можно все таки показать мне как сделать так, чтобы удвоение выводилось в окно text5(нижнее окно)

Добавлено через 2 минуты
Visual Basic
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
Private Sub Cls_Click()
 
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
 
Text1.BackColor = vbWhite
Text2.BackColor = vbWhite
Text3.BackColor = vbWhite
Text4.BackColor = vbWhite
Text5.BackColor = vbWhite
 
End Sub
 
Private Sub Go_Click()
Dim s$, i&, j&
    Text4.Text = Text1.Text & " " & Left(Text2.Text, 1) & "." & Left(Text3.Text, 1) & "."
        s = InputBox("Ââåäèòå ГЁГ*èöèГ*ëû", , "")
        j = Len(s): s = s & s
        For i = 1 To j: j = j + 1
            Mid(s, i * 2 - 1, 1) = Mid(s, j, 1)
            Mid(s, i * 2, 1) = Mid(s, j, 1)
        Next
        MsgBox s
        End
End Sub
Простите. МЫ эти темы просто еще не проходили и я ищу все возможные пути сделать рабочую программу.

Добавлено через 1 минуту
Я понимаю, что это не очень приятно, когда просят сделать все с нуля. Еще раз простите..
fever brain
Экстрасенс
 Аватар для fever brain
639 / 200 / 58
Регистрация: 05.01.2016
Сообщений: 590
Записей в блоге: 3
04.01.2017, 12:10     Удвоение букв #6
Исходник это папка с файлами, там дожна быть форма с кнопками, иль ты предлогаешь мне самому все накидать
на картинке же у тебя чтото есть, или это бутафория у тебя?

папка с проектом в архиве, выложи её сюда
fever brain
Экстрасенс
 Аватар для fever brain
639 / 200 / 58
Регистрация: 05.01.2016
Сообщений: 590
Записей в блоге: 3
04.01.2017, 13:00     Удвоение букв #7
Похоже твоих наработак не дождусь
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Option Explicit
Dim i&, j&, s$, v
 
Private Sub Default()
    Dim i&
    For Each v In Array(28, 3, 1998, "Нихер Изя Магомедович", ""): i = i + 1
        CallByName(Me, "Text" & i, VbGet).Text = v
    Next
End Sub
Private Sub Form_Load()
    Default
End Sub
 
Private Sub GO_Click()
    s = Text4
    j = Len(s): s = s & s
    For i = 1 To j: j = j + 1
        Mid(s, i * 2 - 1, 1) = Mid(s, j, 1)
        Mid(s, i * 2, 1) = Mid(s, j, 1)
    Next
    Text5 = s
End Sub
Миниатюры
Удвоение букв  
Вложения
Тип файла: rar Удвоение.rar (1.4 Кб, 1 просмотров)
fever brain
Экстрасенс
 Аватар для fever brain
639 / 200 / 58
Регистрация: 05.01.2016
Сообщений: 590
Записей в блоге: 3
04.01.2017, 13:16     Удвоение букв #8
Упс... Там же дату не надо вводить (не запомнил что было на картинке)

Ну.. кнопки я уже расставил, а код будет такой:
Visual Basic
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 i&, j&, s$, v
 
Private Sub Default()
    Dim i&
    For Each v In Array("Нихер", "Изя", "Магомедович", "", ""): i = i + 1
        CallByName(Me, "Text" & i, VbGet).Text = v
    Next
End Sub
Private Sub Form_Load()
    Default
End Sub
 
Private Sub GO_Click()
    Text4 = Text1 & " " & Text2 & " " & Text3
    s = Text4
    j = Len(s): s = s & s
    For i = 1 To j: j = j + 1
        Mid(s, i * 2 - 1, 1) = Mid(s, j, 1)
        Mid(s, i * 2, 1) = Mid(s, j, 1)
    Next
    Text5 = s
End Sub
Миниатюры
Удвоение букв  
gaw
6590 / 1474 / 148
Регистрация: 09.01.2010
Сообщений: 4,204
04.01.2017, 15:50     Удвоение букв #9
Visual Basic
1
2
3
4
5
6
s = "12345"
s1 = ""
For i = 1 To Len(s)
s1 = s1 + Mid(s, i, 1) + Mid(s, i, 1)
Next i
Text5 = s1
Viktor Grishko
 Аватар для Viktor Grishko
0 / 0 / 0
Регистрация: 20.12.2016
Сообщений: 26
04.01.2017, 16:10  [ТС]     Удвоение букв #10
Спасибо большое!

Добавлено через 6 минут
Спасибо большое еще раз)) Я разобрался))
Сделал немного по другому))
Visual Basic
1
2
3
4
5
6
7
8
9
Dim s$, i&, j&
    Text4 = Text1 & " " & Left(Text2, 1) & "." & Left(Text3, 1) & "."
        s = Text4
        j = Len(s): s = s & s
        For i = 1 To j: j = j + 1
            Mid(s, i * 2 - 1, 1) = Mid(s, j, 1)
            Mid(s, i * 2, 1) = Mid(s, j, 1)
        Next
        Text5 = s
Спасибо вам)

Добавлено через 3 минуты
Цитата Сообщение от fever brain Посмотреть сообщение
Похоже твоих наработак не дождусь
Они выше. Я не игнорю...
fever brain
Экстрасенс
 Аватар для fever brain
639 / 200 / 58
Регистрация: 05.01.2016
Сообщений: 590
Записей в блоге: 3
04.01.2017, 16:21     Удвоение букв #11
gaw, Ваш код выглядет проще но проще не значит лучше
Цитата Сообщение от gaw Посмотреть сообщение
s1 = s1 + Mid(s, i, 1) + Mid(s, i, 1)
Обратите внимание коллега. что у меня не присоединяются символы темболее таким способом [+]
а сразу же удваеваеться строка в 2 раза, не задействуя при этом лишних переменных
Цитата Сообщение от fever brain Посмотреть сообщение
s = s & s
а перестановка производиться последовательно переписывая правую часть в два знакоместа левой части
это будет работать быстрее в разы... а в нашем деле скорость это далеко не последний аргумент

Строка это тотже самый массив только в представлении IDE выглядит удобнее
так вот., что быстрее будет работать если при каждом действии нужно увеличить массив а затем вписать туда чтото
или сразу переписывать из одного места в другое ?
gaw
6590 / 1474 / 148
Регистрация: 09.01.2010
Сообщений: 4,204
04.01.2017, 16:36     Удвоение букв #12
Цитата Сообщение от fever brain Посмотреть сообщение
но проще не значит лучше
вне всякого сомнения.
в Вашем коде меня не устраивает то, что в самом цикле меняется переменная цикла, т.е. , предельное значение.
fever brain
Экстрасенс
 Аватар для fever brain
639 / 200 / 58
Регистрация: 05.01.2016
Сообщений: 590
Записей в блоге: 3
04.01.2017, 16:49     Удвоение букв #13
Цитата Сообщение от gaw Посмотреть сообщение
не устраивает то, что в самом цикле меняется переменная цикла
Она роли не играет, при объявлении цикла играет роль только первая переменная
а предельное значение может быть любым выражением, например For i = 1 to (2 * 3) ^ 2 + 3
предельное значение сохраняеться неизменным в памяти. пока не объявить цикл заново..
gaw
6590 / 1474 / 148
Регистрация: 09.01.2010
Сообщений: 4,204
04.01.2017, 16:55     Удвоение букв #14
Цитата Сообщение от fever brain Посмотреть сообщение
предельное значение сохраняется неизменным в памяти
а в самом цикле меняется

Добавлено через 13 секунд
Цитата Сообщение от fever brain Посмотреть сообщение
предельное значение сохраняется неизменным в памяти
а в самом цикле меняется
mobile
18451 / 10487 / 1955
Регистрация: 28.04.2012
Сообщений: 11,610
04.01.2017, 16:58     Удвоение букв #15
Еще вариант. Для коллекции
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Public Function udv(stroka) As String
    Dim a() As Byte, i%
    a() = stroka
    For i = 0 To UBound(a) - 1 Step 2
        udv = udv & Chr(a(i))
        udv = udv & Chr(a(i))
    Next
End Function
 
?udv( "abcd")
aabbccdd
fever brain
Экстрасенс
 Аватар для fever brain
639 / 200 / 58
Регистрация: 05.01.2016
Сообщений: 590
Записей в блоге: 3
04.01.2017, 17:05     Удвоение букв #16

Не по теме:

Что сегодня с киберфорумом... чтото страница медленно открываеться...


Хорошо устроим тест
Код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Option Explicit
Dim i&, j&
 
Private Sub Form_Load()
    j = 10
    For i = 0 To j
        j = 0 'Предельное значение о котором упоминалось храниться гдето еще не так ли ?
        Debug.Print i, j
    Next
    End
End Sub
Миниатюры
Удвоение букв  
fever brain
Экстрасенс
 Аватар для fever brain
639 / 200 / 58
Регистрация: 05.01.2016
Сообщений: 590
Записей в блоге: 3
04.01.2017, 18:18     Удвоение букв #17
Цитата Сообщение от mobile Посмотреть сообщение
Еще вариант. Для коллекции
Ну вот о чем я и говорил... строка это байтовый массив который легко присваиваеться из строки и обратно

Добавлено через 26 минут
тоже для коллекции:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Option Explicit
 
Private Sub Form_Load()
    Debug.Print U("Удвоение текста")
    MsgBox U("Удвоение текста")
    End
End Sub
 
Function U(ByVal t$) As String
    Dim i&, j&, a() As String
    a = Split(t, Chr(0))
    j = Len(a(0)): ReDim Preserve a(j - 1)
    For i = j To 1 Step -1
        a(i - 1) = Mid(a(0), i, 1) & Mid(a(0), i, 1)
    Next
    U = Join(a, "")
End Function
УУддввооееннииее ттееккссттаа


MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2017, 19:16     Удвоение букв
Еще ссылки по теме:

Visual Basic Ввод букв
Найти все комбинации из трех букв, входящих в заданное слово Visual Basic
Visual Basic Запрет ввода букв с FlexGrid
Visual Basic Подсчет букв в загруженном файле
Прямоугольник состоящий из букв Visual Basic

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

Или воспользуйтесь поиском по форуму:
gaw
6590 / 1474 / 148
Регистрация: 09.01.2010
Сообщений: 4,204
04.01.2017, 19:16     Удвоение букв #18
Цитата Сообщение от fever brain Посмотреть сообщение
Хорошо устроим тест
это лишнее
Yandex
Объявления
04.01.2017, 19:16     Удвоение букв
Ответ Создать тему
Опции темы

Текущее время: 14:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru