Консультация № 42041
04.05.2006, 13:18
0.00 руб.
0 3 2
Добрый день.
Помогите пожалуйста решить небольшую задачу на VB:
Есть предложение, нужно в каждом слове поменять местами 1-ю и последнюю букву.
Заранее благодарна.

Обсуждение

Неизвестный
04.05.2006, 13:56
общий
это ответ
Здравствуйте, Iris!

Помещаем на форме Form1 объект Text1, куда будем вносить данные.
Под ним Label1, где выводится результат.
В код формы помещаем

Private Sub Form_Load( )
Form1.Label1 = ""
Form1.Text1 = ""
End Sub

Private Sub Text1_Change( )
If Len(Trim(Form1.Text1 ) ) > 1 Then
‘сначала проверяем, чтобы длина строки была не менее 2 символов.
Form1.Label1 = Right(Trim(Form1.Text1 ), 1 ) & Mid(Trim(Form1.Text1 ), 2, Len(Trim(Form1.Text1 ) ) - 2 ) & Left(Trim(Form1.Text1 ), 1 )
‘сначала подсчитывается результат операции, а затем он заносится в переменную.
Else
Form1.Label1 = ""
End If
End Sub

С уважением.
давно
Профессионал
848
1596
04.05.2006, 14:56
общий
это ответ
Здравствуйте, Iris!
В дополнению к предыдущему ответу.
Предыдущий пример работает только если введено одно слово. Следующий пример обрабатывает все слова в предложении. На форме размещаем Text1,Label1,Command1.
====================================================
Option Explicit
Private Sub Command1_Click()
Dim strText As String
Dim vWord As Variant
Dim vWords As Variant
Dim strWord As String
Dim strNewText As String

strText = Trim(Text1.Text)
strNewText = ""

If Len(strText) > 1 Then
vWords = Split(strText, Chr(32)) ‘32-space
For Each vWord In vWords
strWord = CStr(vWord)
strWord = Right(strWord, 1) & Mid(strWord, 2, Len(strWord) - 2) & Left(strWord, 1)
strNewText = strNewText + strWord + Chr(32)
Next
strNewText = RTrim(strNewText) ‘обрезка лишнего пробела
End If
Label1.Caption = strNewText
End Sub
====================================================
Неизвестный
05.05.2006, 11:17
общий
Спасибо большое!!!
Форма ответа