UYARI: TÜM, BU MAKALEDE SAĞLANAN KODU/MAKRO TARAFINDAN KENDİ SORUMLULUà ° UNUZDADýR KULLANILIR. Microsoft, bu kod / "olduğu gibi" makro hiçbir garanti, ya da veya zımni, dahil ancak bunlarla sınırlı olmamak satılabilirlik ve/veya belirli bir amaca uygunluk zımni hiçbir garanti olmadan sağlar.
Not: Aşağıdaki örnek kodda, bir satır devam karakteri olarak bir satır sonunda alt çizgi (_) kullanılır. Satır devam karakterleri desteklemeyen sürümleri BASIC, alt çizgi sonuna satır ve aşağıdaki satırı birleştirmeye zaman, bu kodu yeniden kaldırın.
Alanları ayrıştırılır ve aşağıdaki sırada adından kaldırıldı:
Başlık-(ilk sözcük standart başlıkların listesi eşleşiyorsa) Derece-(sonra değer ilk virgül) Pedigree-(son sözcük listesi, standart pedigrees eşleşiyorsa) Soyadı-(boşluk içermelidir, ancak hecelenmiş) Ad-(boşluk içermemelidir) Orta Initial(s)-(geri kalan)
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
Sınamak için <a0></a0>, metin kutuları yedi (txtName txtTitle, txtFirstName, txtMI, txtLastName, txtPedigree, txtDegree) form ve komut düğmesi oluşturun. Aşağıdaki kodu ekleyin:
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
Formun görüntülemek, txtName bir ad yazın ve komut düğmesini tıklatın. Altı diğer alanları çözümlenmi? değerler içermelidir.
Diğer Notlar, sınırlamaları ve önerileri iyileştirme (okuyucunun aygıt için sol):
Ayrıştırma yordamına derecesini önce ancak değil Pedigree önce virgül varsayar. Pedigree önce virgül ise Degree(s) bir parçası olarak dahil edilir. Pedigree, virgülle önlerine izin vermek istiyorsanız, ilk, (virgülle ayrılmış), word, derecesini standart Pedigrees listesinde görmek için ek bir denetim ekleyebilirsiniz.
Ilk ve son adları, boşluk içeren varsayılır. (Örneğin Mary Ayşe Saint Gamze) oluşuyorsa, adı (örneğin, Ayşe Saint) bir parçası Orta başlangıç/Göbek Adı dönüş değerinde sona erdirir. Ne yazık ki, bu durumda yüksek çeşitliliği nedeniyle, el ile müdahale dışındaki hiçbir bir iyi geçici çözüm vardır.
Ayrıştırma yordamına ingiliz/Amerikan adları için tasarlanmıştır. Diğer diller ayrıştırma kodunun ayarlamalar gerektiren farklı kurallarına sahip olabilir.
Standart başlıklar ve Pedigrees listesini kolayca ParseName iki eşitlenir bildirimlerinde girdileri ekleyerek uzatılabilir.
Başlık denetle bir dönemin ilk sözcüğün sonunda, standart başlık listesinde yoksa bakarak daha genel kullanıma açılabilir.
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:168799
(http://support.microsoft.com/kb/168799/en-us/
)
Bu makaleyi kullanabilmek için kişisel olarak ne kadar çaba harcadınız?
Çok az
Az
Ne Az, Ne Fazla
Fazla
Çok fazla
Bu bilgiyi geliştirmek için ne yapabiliriz?
Gizliliğinizi korumak için, irtibat bilgilerinizi görüşlerinize eklemeyin.
Teşekkür ederiz! Görüşleriniz, destek içeriğimizi geliştirmek amacıyla kullanılacaktır. Daha fazla yardım seçeneği için lütfen, Yardım ve Destek Ana Sayfası’nı ziyaret edin.