วิธีการแยกวิเคราะห์ชื่อของบุคคลที่เป็นตัวแปรหลาย

ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ

ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:168799
บทความนี้ถูกเก็บถาวรแล้วเนื้อหาของบทความจึงถูกนำเสนอ "ตามลักษณะที่เป็น" และจะไม่มีการปรับปรุงข้อมูลอีก
สรุป
บทความนี้แสดงขั้นตอนสำหรับการแยกวิเคราะห์ตัวแปรเดียวที่ประกอบด้วยชื่อของบุคคลที่เป็นส่วนที่ 6 ถึง:
   Title                (Mr., Ms., etc.)   First Name   Middle Initial(s)   Last Name   Pedigree             (Jr., Sr., III, etc.)   Degree(s)            (B.S., PhD, etc.)				
ข้อมูลเพิ่มเติม
คำเตือน: ใช้ ด้วยตัวคุณของรหัส/แมโคที่มีบทความนี้มีที่อยู่ของคุณต้องยอมรับความเสี่ยง Microsoft ให้แมโคนี้รหัส/ร "ตามที่เป็นอยู่" โดยไม่มีการรับประกันใด ๆ อย่างใดอย่างหนึ่ง หรือโดยนัย รวมถึงแต่ไม่จำกัดเพียงการรับประกันโดยนัยของสามารถเชิงพาณิชย์และ/หรือความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ

หมายเหตุ: ในโค้ดตัวอย่างต่อไปนี้ ขีดข้อล่าง (_) เมื่อสิ้นสุดของบรรทัดมีใช้เป็นอักขระที่มีต่อของบรรทัด สำหรับเวอร์ชันของ BASIC ที่ไม่สนับสนุนการมีต่อของบรรทัดอักขระ เอาการขีดล่างจากจุดสิ้นสุดของบรรทัดและผสานกับบรรทัดต่อไปนี้เมื่อ re-creating รหัสนี้

ฟิลด์จะแยกวิเคราะห์ และการเอาออกจากชื่อตามลำดับต่อไปนี้:
ชื่อเรื่อง- (ถ้าคำแรกตรงกับรายการของชื่อเรื่องที่มาตรฐาน)
ระดับ- (anything หลังเครื่องหมายจุลภาคแรก)
pedigree- (ถ้าคำสุดท้ายตรงกับรายการ pedigrees มาตรฐาน)
ชื่อที่เคย- (ต้องไม่ประกอบด้วยการเว้นวรรค แต่สามารถ hyphenated)
ชื่อแรก- (ต้องไม่ประกอบด้วยช่องว่าง)
Initial(s) กลาง- (เหลือ)

ตัวอย่าง step-by-Step

  1. ป้อนรหัสต่อไปนี้:
          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. เมื่อต้องการทดสอบ สร้างฟอร์ม ด้วยกล่องข้อความที่เจ็ด (txtName, txtTitle, txtFirstName, txtMI, txtLastName, txtPedigree, txtDegree), และปุ่มคำสั่ง เพิ่มรหัสต่อไปนี้:
          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. แสดงแบบฟอร์ม พิมพ์ชื่อลงใน txtName และคลิกที่ปุ่มคำสั่ง หกฟิลด์อื่น ๆ ควรประกอบด้วยค่า parsed

Additional information:

หมายเหตุ ข้อจำกัด และอื่น ๆ คำแนะนำสำหรับการปรับปรุง (ซ้ายไปยังอุปกรณ์ของตัวอ่าน):

  1. ขั้นตอนการแยกวิเคราะห์สันนิษฐานจุลภาค ก่อนระดับ แต่ไม่มีอยู่ ก่อน Pedigree ถ้ามีเครื่องหมายจุลภาคก่อน Pedigree จะถูกรวมเป็นส่วนหนึ่งของการ Degree(s) ถ้าคุณต้องการอนุญาต Pedigree ไปเป็นก่อนหน้า ด้วยเครื่องหมายจุลภาค คุณสามารถเพิ่มการตรวจสอบเพิ่มเติมเพื่อดูว่าหนึ่งคำ (คั่นด้วยจุลภาค) ของ ระดับอยู่ในรายการของ Pedigrees มาตรฐาน
  2. ชื่อแรก และสุดท้ายจะสันนิษฐานเพื่อให้ประกอบด้วยช่องว่างที่ไม่มี ถ้าทำ (ตัวอย่างเช่น Mary Beth เซนต์สมชาย), ส่วนของชื่อ (ตัวอย่างเช่นเซนต์ Beth) จะจบอัพในชื่อเริ่มต้น/กลางกลางคืนค่า แต่ เนื่องจากการ variability สูงของกรณีนี้ ไม่มีวิธีแก้ปัญหาที่ดีที่เหนือการขัดจังหวะโดยด้วยตนเอง
  3. ขั้นตอนการแยกวิเคราะห์ไม่ได้รับการออกแบบสำหรับชื่อของภาษาอังกฤษ/นอเมริกา ภาษาอื่น ๆ อาจมีแบบแผนการคิดต่าง ๆ ที่อาจต้องการปรับปรุงรหัสการแยกวิเคราะห์
  4. รายการของชื่อเรื่องและ Pedigrees มาตรฐานอาจจะได้อย่างง่ายดายขยาย โดยการเพิ่มรายการ declarations Const สองใน ParseName
  5. ตรวจสอบชื่อสามารถทำแบบทั่วไปมากขึ้น โดยการค้นหาระยะเวลาที่สิ้นสุดของคำแรกหากไม่อยู่ในรายการของชื่อเรื่องมาตรฐาน

คำเตือน: บทความนี้ได้รับการแปลโดยอัตโนมัติ

คุณสมบัติ

รหัสบทความ: 168799 - การตรวจสอบครั้งสุดท้าย: 12/04/2015 17:03:54 - ฉบับแก้ไข: 2.0

Microsoft Visual Basic 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

  • kbnosurvey kbarchive kbhowto kbprogramming kbmt KB168799 KbMtth
คำติชม