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

Форум: MS ACCESS

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

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

 
 

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

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

тема: длина строки
 
 автор: kot_k_k   (01.03.2012 в 15:19)   личное сообщение
 
 

казалось бы функция 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) - на шо угодно, одним оператором?

  Ответить  
 
 автор: silich   (01.03.2012 в 16:02)   личное сообщение
 
 

обрати свой взор в сторону 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 правильно засунь что надо

  Ответить  
 
 автор: snipe   (01.03.2012 в 16:07)   личное сообщение
 
 

У меня так
Len(Replace(Me.Akt_Text, Chr(13) & Chr(10), " "))
работает

  Ответить  
 
 автор: kot_k_k   (01.03.2012 в 16:17)   личное сообщение
 
 

спасибо обоим - будем копать

  Ответить  
 
 автор: silich   (01.03.2012 в 16:59)   личное сообщение
 
 

а может есть смысл по отдельности реплейсить?
символ VbCr и потом VbLf
двумя реплейсами
а то вдруг они не парой в данном тексте идут?

  Ответить  
 
 автор: kot_k_k   (01.03.2012 в 18:01)   личное сообщение
 
 

я дурак - оно все работало -
форма ленточная - на текущую запись повесил проверку длины поля и увеличение размера поля если кол-во символов больше 120.
ввел строку с абзацами - а оно мне не увеличивало - протупил конкретно - строка то действительно меньше 120 символов - вот оно и отрабатывало ее.
сделал циклом нахожу кол-во ентеров в строке и тогда увеличиваю на кол-во ентеров

всем спасибо.

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