'-----------------------------------------------------------------
'Делит 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=символы
и сложить все элементы.

 

Hosted by uCoz