|
|
|
| казалось бы функция LEN - но возникла жопка
если в MEMO-Поле есть Enter, т.е. последовательность Chr(13) Chr(10) - длина строки выдает только до первого Chr(13) - дальше все, нет ее нет длины строки, попытался сделать
Len(Replace(Me.Akt_Text, vbCrLf, " "))
Len(Replace(Me.Akt_Text, Chr(13) & Chr(10), " "))
результат тот-же
понятно что строку можно циклом пробить и посчитать кол-во символов, но как-то оно не кошерно.
какие есть способы посчитать длину строки?
или как заменить последовательность Chr(13) & Chr(10) - на шо угодно, одним оператором? | |
|
| |
|
|
|
| обрати свой взор в сторону Regexp
например
'-- убирает лишние символы для сохранения числа в базе Oracle
Public Function Num4Ora(param)
Dim rg As Object
On Error GoTo err12345
Num4Ora = Null
If Nz(param, "") = "" Then Exit Function
Set rg = CreateObject("VBScript.RegExp")
rg.Global = True
rg.Pattern = "[^(0-9)|\-|\,|\.]": param = rg.Replace(param, "")
rg.Pattern = "\,": param = rg.Replace(param, ".")
param = Replace(param, "..", ".")
Num4Ora = param
Exit Function
err12345:
MsgBox Error, vbExclamation, "Num4Ora #" & Err.Number
Exit Function
End Function
|
лишь в Pattern правильно засунь что надо | |
|
| |
|
|
|
| У меня так
Len(Replace(Me.Akt_Text, Chr(13) & Chr(10), " "))
работает | |
|
| |
|
|
|
| спасибо обоим - будем копать | |
|
| |
|
|
|
| а может есть смысл по отдельности реплейсить?
символ VbCr и потом VbLf
двумя реплейсами
а то вдруг они не парой в данном тексте идут? | |
|
| |
|
|
|
| я дурак - оно все работало -
форма ленточная - на текущую запись повесил проверку длины поля и увеличение размера поля если кол-во символов больше 120.
ввел строку с абзацами - а оно мне не увеличивало - протупил конкретно - строка то действительно меньше 120 символов - вот оно и отрабатывало ее.
сделал циклом нахожу кол-во ентеров в строке и тогда увеличиваю на кол-во ентеров
всем спасибо. | |
|
| |