Làm th? nào đ? phân tích cú pháp c?a m?t ngư?i tên thành nhi?u bi?n

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 168799 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Bài vi?t này cung c?p m?t th? t?c cho phân tích m?t bi?n duy nh?t có ch?a tên c?a m?t ngư?i thành đ?n 6 ph?n:
   Title                (Mr., Ms., etc.)
   First Name
   Middle Initial(s)
   Last Name
   Pedigree             (Jr., Sr., III, etc.)
   Degree(s)            (B.S., PhD, etc.)
				

THÔNG TIN THÊM

C?NH BÁO: B?T K? VI?C S? D?NG C?A B?N C?A CODE/V? MÔ ĐƯ?C CUNG C?P TRONG BÀI VI?T NÀY LÀ AT R?I RO C?A RIÊNG B?N. Microsoft cung c?p này m?/v? mô "như là" không có b?o hành c?a lo?i nào, th? hi?n r? ràng hay ng? ?, bao g?m nhưng không gi?i h?n đ?i v?i các b?o đ?m ng? ? kh? năng bán hàng và/ho?c t?p th? d?c cho m?t c? th? m?c đích.

Lưu ?: trong m?u m? sau đây, m?t g?ch dư?i (_) ? ph?n cu?i c?a m?t d?ng đư?c s? d?ng như m?t k? t? ti?p t?c d?ng. Đ?i v?i các phiên b?n BASIC không h? tr? k? t? ti?p t?c d?ng, lo?i b? g?ch dư?i t? các k?t thúc c?a các d?ng và h?p nh?t v?i d?ng sau khi tái t?o đi?u này M?.

Các l?nh v?c đư?c phân tích và g? b? t? tên theo th? t? sau:
Tiêu đ?-(N?u ch? đ?u tiên phù h?p v?i danh sách các tiêu đ? tiêu chu?n)
B?ng c?p-(b?t c? đi?u g? sau d?u ph?y đ?u tiên)
Pedigree – (n?u t? cu?i phù h?p v?i danh sách tiêu chu?n pedigrees)
Cu?i cùng tên-(không ch?a d?u cách, nhưng có th? đư?c hyphenated)
Tên đ?u tiên-(không ch?a d?u cách)
Trung Initial(s) – (c?n l?i)

Ví d?-by-step

  1. Nh?p m? sau đây:
          Function CutLastWord (ByVal S As String, Remainder As String) _
              As String
          ' CutLastWord: returns the last word in S.
          ' Remainder: returns the rest.
          '
          ' Words are separated by spaces
          '
          Dim  I As Integer, P As Integer
            S = Trim$(S)
            P = 1
            For I = Len(S) To 1 Step -1
              If Mid$(S, I, 1) = " " Then
                P = I + 1
                Exit For
              End If
            Next I
            If P = 1 Then
              CutLastWord = S
              Remainder = ""
            Else
              CutLastWord = Mid$(S, P)
              Remainder = Trim$(Left$(S, P - 1))
            End If
          End Function
    
          Function CutWord (ByVal S As String, Remainder As String) As String
          '
          ' CutWord: returns the first word in S.
          ' Remainder: returns the rest.
          '
          Dim P As Integer
            S = Trim$(S)
            P = InStr(S, " ")
            If P = 0 Then P = Len(S) + 1
            CutWord = Left$(S, P - 1)
            Remainder = Trim$(Mid$(S, P + 1))
          End Function
    
          Sub ParseName (ByVal S As String, Title As String, FName As String, _
                         MName As String, LName As String, _
                         Pedigree As String, Degree As String)
          Dim Word As String, P As Integer, Found As Integer
          Const Titles = "Mr.Mrs.Ms.Dr.Miss,Sir,Madam,Mayor,President"
          Const Pedigrees = "Jr.Sr.III,IV,VIII,IX,XIII"
            Title = ""
            FName = ""
            MName = ""
            LName = ""
            Pedigree = ""
            Degree = ""
          '
          ' Get Title
          '
            Word = CutWord(S, S)
            If InStr(Titles, Word) Then
              Title = Word
            Else
              S = Word & " " & S
            End If
          '
          ' Get Degree
          '
            P = InStr(S, ",")
            If P > 0 Then
              Degree = Trim$(Mid$(S, P + 1))
              S = Trim$(Left$(S, P - 1))
            End If
          '
          ' Get Pedigree
          '
            Word = CutLastWord(S, S)
            If InStr(Pedigrees, Word) Then
              Pedigree = Word
            Else
              S = S & " " & Word
            End If
          '
          ' Get the rest
          '
            LName = CutLastWord(S, S)   ' Last Name
            FName = CutWord(S, S)       ' First Name
            MName = Trim(S)             ' Initials/Middle Name(s)
          End Sub
    						
  2. Đ? ki?m tra, t?o ra m?t h?nh th?c v?i b?y h?p văn b?n (txtName, txtTitle, txtFirstName, txtMI, txtLastName, txtPedigree, txtDegree), và m?t l?nh nút. Thêm m? sau đây:
          Sub Command1_Click()
          Dim Title As String, FName As String, MI As String
          Dim LName As String, Pedigree As String, Degree As String
            ParseName txtName, Title, FName, MI, LName, Pedigree, Degree
            txtTitle = Title
            txtFirstName = FName
            txtMI = MI
            txtLastName = LName
            txtPedigree = Pedigree
            txtDegree = Degree
          End Sub
    						
  3. Hi?n th? các h?nh th?c, h?y nh?p tên vào txtName và b?m vào l?nh nút. Sáu l?nh v?c khác nên ch?a các giá tr? phân tích.

Thông tin b? sung

Các ghi chú, h?n ch? và góp ? cho các c?i ti?n (trái đ? các thi?t b? c?a ngư?i đ?c):

  1. Nh?ng thói quen phân tích cú pháp gi? đ?nh m?t d?u ph?y trư?c khi m?c đ?, nhưng không ph?i trư?c khi các Pedigree. N?u có m?t d?u ph?y trư?c khi Pedigree, nó s? đư?c bao g?m như m?t ph?n c?a các Degree(s). N?u b?n mu?n cho phép Pedigree đư?c d?n trư?c b?i m?t d?u ph?y, b?n có th? thêm m?t ki?m tra b? sung đ? xem n?u là ngư?i đ?u tiên t? (cách nhau b?ng d?u ph?y) c?a b?ng c?p là trong danh sách tiêu chu?n Pedigrees.
  2. Tên đ?u tiên và cu?i cùng đư?c cho là ch?a kho?ng tr?ng không có. N?u h? làm (ví d? như Mary Beth Saint John), m?t ph?n c?a tên (ví d? như Beth Saint) s? k?t thúc lên trong tên ban đ?u/Trung Trung tr? v? giá tr?. Th?t không may, nh? bi?n đ?i cao c?a trư?ng h?p này, không có không có t?t workaround khác so v?i hư?ng d?n s? d?ng can thi?p.
  3. Nh?ng thói quen phân tích cú pháp đư?c thi?t k? cho ti?ng Anh/M? tên. Khác ngôn ng? có th? có công ư?c khác nhau mà có th? yêu c?u đi?u ch?nh đ? phân tích cú pháp m?.
  4. Danh sách tiêu chu?n tiêu đ? và Pedigrees có th? kéo dài m?t cách d? dàng b?i thêm m?c vào t? khai Const hai trong ParseName.
  5. Ki?m tra cho tiêu đ? có th? đư?c th?c hi?n hơn chung b?ng cách t?m ki?m m?t kho?ng th?i gian k?t thúc t? đ?u tiên n?u nó chưa đư?c trong danh sách tiêu chu?n Tiêu đ?.

Thu?c tính

ID c?a bài: 168799 - L?n xem xét sau cùng: 19 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft Visual Basic 5.0 Control Creation Edition
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 2.0 Standard Edition
  • Microsoft Visual Basic 3.0 Professional Edition
  • Microsoft Visual Basic 2.0 Professional Edition
  • Microsoft Access 1.0 Standard Edition
  • Microsoft Access 1.1 Standard Edition
  • Microsoft Access 2.0 Standard Edition
  • Microsoft Access 97 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Word 97 Standard Edition
  • Microsoft PowerPoint 97 Standard Edition
T? khóa: 
kbhowto kbprogramming kbmt KB168799 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:168799

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com