'-----------------------------------------------------------------
'Делит Text на элементы, разделенные строкой
символов
'Delimiters (которая может быть любой длины).
'Если параметр No=0, функцией возвращается
количество
'элементов (Integer), при других значениях -
получившаяся
'строка, отделенная первым встретившимся
элементом
'Delimiters (String).
'------------------------------------------------------------------
Function Delimit(No As Integer, DataString As String, Delimiter As String) As
Variant
Dim V As Variant, N As Integer, I As Integer, I0 As Integer
If Len(DataString) = 0 Then
If No = 0 Then
V = 0
Else
V = ""
End If
Delimit = V
Exit Function
End If
I0 = 1
If No = 0 Then
N = 1
Do
I = InStr(I0, DataString, Delimiter)
If I = 0 Then Exit Do
N = N + 1
I0 = I + Len(Delimiter)
Loop
Delimit = N
Exit Function
End If
I0 = 1
N = 1
Do
I = InStr(I0, DataString, Delimiter)
If I = 0 Then Exit Do
If N = No Then Exit Do
N = N + 1
I0 = I + Len(Delimiter)
Loop
If N < No Then
Delimit = ""
Exit Function
End If
I = InStr(I0, DataString, Delimiter)
If I = 0 Then
V = Mid$(DataString, I0)
Else
V = Mid$(DataString, I0, I - I0)
End If
Delimit = V
End Function
Все функции замены текста, удаления пробелов и
пр., я думаю,
можно синтезировать с помощью моих Delimit и Separate.
Соответственно например процедура
"делания" всех букв
каждого слова выглядит так:
Dim I as Integer,Z as String,Text as String
Text="test, test, test, test"
Z=""
For I=1 to Delimit(0,Text," ")
Z=Z & UCase$(Mid$(Delimit(I,Text," "),1,1)+LCase$(Mid$(Delimit(I,Text,"
")& " "
Next I
If Delimit(0,Text," ")>0 Then Z=Left$(Z,Len(Z)-1) 'Чтобы убрать
лишний пробел
Text=Z
Если надо сделать первые буквы предложений
заглавными, то
достаточно вместо Delimit использовать Separate, а
Delimiters=".!?".
Убрать лишние пробелы? Пожалуйста:
Dim I as Integer,Z as String,Text as String
Text="te st, t est
, test, test"
Z=""
For I=1 to Delimit(0,Text," ")
If Delimit(I,Text," ")<>"" Then Z=Z & Delimit(I,Text,"
") & " "
Next I
If Delimit(0,Text," ")>0 Then Z=Left$(Z,Len(Z)-1)
Text=Z
Если надо вырезать какие-то символы из строки ---
Delimiters=символы
и сложить все элементы.