|
|
|
| функция, для удаления набора символов в тексте справа или слева
наподобие RTrim, только чтобы можно было свой наборчик указать
конкретно - надо удалить все спецсимволы и пробел в строке справа, до первого нормального символа :) | |
|
| |
|
|
|
| Нормальный символ - это буковки и цифирки? | |
|
| |
|
|
|
| да, но уже не надо решать :)
но все равно прикольно
мабуть регэкспом :) | |
|
| |
|
|
|
| перебирать строку по символам быстрее всего так
Public Function string2shar(strParam As String)
Dim i As Integer
Dim intStep As Integer
intStep = LenB("A")
U() = strParam
For i = UBound(U) to 0 Step intStep * (-1)
debug.print U(i)
'здесь можно проверку на качественность символа и выход из цикла отрезав по нужный символ
Next
End Function
|
| |
|
| |
|
|
|
|
| А почему не описано U()? У меня не работает.
это, надо полагать, массив.. | |
|
| |
|
|
|
|
| напишите
Dim i As Integer
Dim intStep As Integer
Dim U(254) as String | |
|
| |
|
35 Кб. |
|
| Вот
Ну просто иснтересно. | |
|
| |
|
|
|
| Может надо писать через запятую "СЛОВО1, слово2, слово3, " | |
|
| |
|
|
|
| Не думаю. Ошибка вываливается при компиляции.
И потом, пример дан для ЛЮБОЙ строки. | |
|
| |
|
|
22 Кб. |
|
| Уже ближе.
Public Function string2shar(strParam As String)
Dim i As Integer
Dim intStep As Integer
Dim U() As Byte
intStep = LenB("A")
U() = strParam
For i = UBound(U) - 1 To 0 Step intStep * (-1)
Debug.Print i, Chr((U(i)))
'здесь можно проверку на качественность символа и выход из цикла отрезав по нужный символ
Next
End Function
Public Sub tst1()
Dim s$
s = "РусLat123"
string2shar (s)
End Sub
|
Результаты
16 3
14 2
12 1
10 t
8 a
6 L
4 A
2 C
0
16 3
Т.е. надо анализировать все байты, т.к. 4-6 - латин
0-2 - рус (UNICODE?)
СМ. ВЛОЖЕНИЕ. | |
|
| |
|
|
|
| Вот рабочий вариант
Public Function string2shar(strParam As String)
Dim i As Integer
Dim intStep As Integer
Dim U() As Byte
intStep = Len("A")
U() = StrConv(strParam, vbFromUnicode)
For i = UBound(U) To 0 Step intStep * (-1)
Debug.Print i, U(i), Chr((U(i)))
Next
End Function
Public Sub tst1()
Dim s$
s = "РусLat123"
string2shar s
End Sub
| | |
|
| |