Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: есть красивенькая?
 
 автор: Силblч   (05.08.2011 в 14:22)   личное сообщение
 
 

функция, для удаления набора символов в тексте справа или слева
наподобие RTrim, только чтобы можно было свой наборчик указать
конкретно - надо удалить все спецсимволы и пробел в строке справа, до первого нормального символа :)

  Ответить  
 
 автор: snipe   (05.08.2011 в 14:43)   личное сообщение
 
 

Нормальный символ - это буковки и цифирки?

  Ответить  
 
 автор: Силblч   (05.08.2011 в 14:52)   личное сообщение
 
 

да, но уже не надо решать :)
но все равно прикольно
мабуть регэкспом :)

  Ответить  
 
 автор: osmor   (05.08.2011 в 15:17)   личное сообщение
 
 

перебирать строку по символам быстрее всего так

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 

  Ответить  
 
 автор: Силblч   (05.08.2011 в 15:56)   личное сообщение
 
 

  Ответить  
 
 автор: Дядя Федор   (17.08.2011 в 14:34)   личное сообщение
 
 

А почему не описано U()? У меня не работает.
это, надо полагать, массив..

  Ответить  
 
 автор: Дядя Федор   (18.08.2011 в 11:20)   личное сообщение
 
 

Почему нет ответа?

  Ответить  
 
 автор: час   (18.08.2011 в 12:02)   личное сообщение
 
 

напишите
Dim i As Integer
Dim intStep As Integer
Dim U(254) as String

  Ответить  
 
 автор: Дядя Федор   (18.08.2011 в 12:09)   личное сообщение
35 Кб.
 
 

Вот
Ну просто иснтересно.

  Ответить  
 
 автор: час   (18.08.2011 в 12:56)   личное сообщение
 
 

Может надо писать через запятую "СЛОВО1, слово2, слово3, "

  Ответить  
 
 автор: Дядя Федор   (18.08.2011 в 13:04)   личное сообщение
 
 

Не думаю. Ошибка вываливается при компиляции.
И потом, пример дан для ЛЮБОЙ строки.

  Ответить  
 
 автор: lukas   (18.08.2011 в 14:05)   личное сообщение
 
 

Dim U() as byte ?

  Ответить  
 
 автор: Дядя Федор   (18.08.2011 в 15:37)   личное сообщение
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?)
СМ. ВЛОЖЕНИЕ.

  Ответить  
 
 автор: Дядя Федор   (18.08.2011 в 16:00)   личное сообщение
 
 

Вот рабочий вариант

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

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList