Image     Buku Tamu   Humor    Buku Tamu   Site Map

10 Feb 2010

Pemisahan String

Fungsi pemisahan string adalah untuk memisahkan kata dalam suatu kalimat. Dalam suatu kalimat misalnya : "Balon warna biru, bola warna putih." hal itu disebut sebagai suatu kalimat. Dua kalimat ditu dipisahkan dengan titik. sedangkan antar kata dalam kalimat dipisahkan oleh spasi. maka di dalam proses pendeteksian

Pada prosedure pemisahan string ini, dipakai untuk

Public Function PemisahString(ByVal toSplit As String, _
Optional ByVal PemisahKar As String = " ", _
Optional ByVal BatalKar As String = "\", _
Optional ByVal TrimStrings As Boolean = True) _
As String()

Dim retArray() As String
Dim tempString As String
Dim arrLength As Long
Dim isBatalKar As Boolean
Dim FoundPos As Long

ReDim retArray(0 To 0)
arrLength = -1

If BatalKar <> "" Then
BatalKar = Left$(BatalKar, 1)
End If

If BatalKar <> " " Then
BatalKar = Left$(BatalKar, 1)
End If

If Len(toSplit) = 0 Then
PemisahString = retArray
Exit Function
End If

If Len(PemisahKar) = 0 Then
PemisahString = retArray
Exit Function
End If
ReDim retArray(0 To 10)

toSplit = toSplit & Chr$(0)
PemisahKar = PemisahKar & Chr$(0)

Do
FoundPos = StrCSpnI(toSplit, PemisahKar)
FoundPos = FoundPos + 1

Select Case FoundPos
Case Len(toSplit), 0
arrLength = arrLength + 1

If arrLength > UBound(retArray) Then
ReDim Preserve retArray(arrLength + 5)
End If

If isBatalKar Then
retArray(arrLength) = tempString & toSplit
Else
retArray(arrLength) = toSplit
End If

If TrimStrings Then retArray(arrLength) = Trim$(retArray(arrLength))
Exit Do

Case Is > 1
If Mid$(toSplit, FoundPos - 1, 1) = BatalKar Then
isBatalKar = True

If Len(toSplit) > 2 Then
tempString = Left$(toSplit, FoundPos - 2) & Mid$(toSplit, FoundPos, 1)
Else
tempString = Mid$(toSplit, FoundPos)
End If


If Len(toSplit) > FoundPos + 1 Then
toSplit = Mid$(toSplit, FoundPos + 1)
Else
arrLength = arrLength + 1

If arrLength > UBound(retArray) Then
ReDim Preserve retArray(arrLength + 5)
End If

retArray(arrLength) = tempString
If TrimStrings Then retArray(arrLength) = Trim$(retArray(arrLength))
Exit Do
End If

Else
arrLength = arrLength + 1

If arrLength > UBound(retArray) Then
ReDim Preserve retArray(arrLength + 5)
End If


If isBatalKar Then
retArray(arrLength) = tempString & Left$(toSplit, FoundPos - 1)
isBatalKar = False
Else
retArray(arrLength) = Left$(toSplit, FoundPos - 1)
End If

If TrimStrings Then retArray(arrLength) = Trim$(retArray(arrLength))


If Len(toSplit) > FoundPos + 1 Then
toSplit = Mid$(toSplit, FoundPos + 1)
Else

Exit Do
End If
End If

Case 1

If Len(toSplit) > 1 Then
toSplit = Mid$(toSplit, 2)
Else
Exit Do
End If
End Select
Loop

ReDim Preserve retArray(arrLength)
toSplit = ""

PemisahString = retArray

End Function

ntar dulu lah pembahasannya belakangan ... aku mau ke toilet dulu .. wokaey..
untuk versi pdf-nya / download pdf - nya dapat di klik kanan terus safe as di sini

Tidak ada komentar:

Posting Komentar

Tinggalkan Komentar :