Последнее обновление 11/21/02.
| |
Функция Delimit(No,Text,Delimiters)
делит Text на элементы, разделенные
строкой символов Delimiters (которая может
быть любой длины). Если параметр No=0,
функцией возвращается количество
элементов (Integer), при других значениях -
получившаяся строка, отделенная первым
встретившимся элементом Delimiters (String).
Здесь же некоторые примеры
использования функции. |
'-----------------------------------------------------------------
'Делит 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=символы
и сложить все элементы. |
| |
|