Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [VB6] Задача с функциями по работе с текстом


Автор: RazAl 7.3.2008, 09:00
Добрый день.
Помогите решить задачу...
На форму нужно кинуть 1 текстовое поле и 3 объекта lable
В текстовом поле можно писать тоолько русские, заглавные и строчные буквы

После ввода в текстовое поле ФИО(фамилия имя очество) человека в произвольном регистре с пробелами и по нажатию клавиши ENTER из исходной строки, нужно отделить фамилию, имя и очество и вывести их в поля lable(в 1 lable фамилию, во 2-ю lable имя и в 3 очество)

Я только сумел написать код для ввода в текствое поле ФИО...

Код

Private Sub txtFIO_KeyPress(KeyAscii As Integer)
    Select Case KeyAscii
    Case 8, 32, 45, 192 To 255
    Case 13
        Call findFIO
    Case Else
        KeyAscii = 0
    End Select
End Sub


Прошу помочь...За раннее спасибо.

Автор: Akina 7.3.2008, 09:43
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Автор: RazAl 7.3.2008, 10:35
 smile помогите пожалуйста

Автор: kapbepucm 7.3.2008, 16:45
То, что первое на ум пришло:
Код
Public Sub findFIO()
  Dim I As Long, S As String
  S = Trim(txtFIO.Value)
  I = InStr(1, S, " ", 0)
  If I <> 0 Then
    Label1.Caption = Left(S, I - 1)
    S = LTrim(Mid(S, I + 1))
    I = InStr(1, S, " ", 0)
    If I <> 0 Then
      Label2.Caption = Left(S, I - 1)
      S = LTrim(Mid(S, I + 1))
      I = InStr(1, S, " ", 0)
      If I = 0 Then
        Label3.Caption = S
      Else
        Label1.Caption = ""
        Label2.Caption = ""
        Label3.Caption = ""
      End If
    Else
      Label2.Caption = ""
    End If
  Else
    Label1.Caption = ""
  End If
End Sub
Вообще, надо будет что нибудь менее кривое написать smile

Автор: admsasha 9.3.2008, 08:38
Если правильно понял, то можно так

Код

Public Sub findFIO()
   tmparr=split(txtFIO.Value," ")
   label1.Caption = tmparr(0)
   label2.Caption = tmparr(1)
   label3.Caption = tmparr(2)
End Sub


P.S. код не проверял, но смыл думаю понятен

Автор: RazAl 9.3.2008, 20:00
Немогли бы еще помочь, вот в чем.
Когда напишешь фамилию и имя и очство и нажиает на интер, он выдает их по одному в lable. Но нужно обязательно что бы в lable Фамлия и имя и очество должно быть загалвными буквами.

Автор: admsasha 10.3.2008, 05:57
Если взять мой код, то примено так

Код

 Public Sub findFIO()
   tmparr=split(txtFIO.Value," ")
   label1.Caption = ucase(mid(tmparr(0),1,1)) & lcase(mid(tmparr(0),2))
   label2.Caption =ucase(mid(tmparr(1),1,1)) & lcase(mid(tmparr(1),2))
   label3.Caption =ucase(mid(tmparr(2),1,1)) & lcase(mid(tmparr(2),2))
End Sub 

Автор: RazAl 19.3.2008, 16:49
Код

Private Sub txtFIO_KeyPress(KeyAscii As Integer)
    Select Case KeyAscii
    Case 8, 32, 45, 192 To 255
    Case 13
        Call findFIO
    Case Else
        KeyAscii = 0
    End Select
End Sub

Sub findFIO()
Dim I As Long, S As String
   S = Trim(txtFIO.Text)
   I = InStr(1, S, " ", 0)
   If I <> 0 Then
     Label1.Caption = Left(S, I - 1)
     S = LTrim(Mid(S, I + 1))
     I = InStr(1, S, " ", 0)
     If I <> 0 Then
       Label2.Caption = Left(S, I - 1)
       S = LTrim(Mid(S, I + 1))
       I = InStr(1, S, " ", 0)
       If I = 0 Then
         Label3.Caption = S
       Else
         Label1.Caption = ""
         Label2.Caption = ""
         Label3.Caption = ""
       End If
     Else
       Label2.Caption = ""
     End If
   Else
     Label1.Caption = ""
   End If
End Sub

подскажите как в этоу программу вставить еще функции, что бы при нажатии на ИНТЕР выводлись ФИО с больших букв.?
Только пожалуйста напишите код именно по моему коду.
За ранее спасибо!

Автор: RazAl 19.3.2008, 19:38
все спасибо сам написал!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)