Форумы caduser.ru

 
Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти  
Страницы: 1
RSS
Текст без символов форматирования
Добрый вечер уважаемые коллеги, как получить текст из ячейки таблицы без символов форматирования?
Метод objEnt.GetText(n, c) возвращает значение {\C4;Свайное основание}, как получить только текстовое значение строки?
отрезать левую часть... или разбить split-ом на массив...
Изменено: Agens - - 29-08-2016 18:41:12
Как быть с такой строкой {\fTimes New Roman|b0|i0|c204|p18;\C7;тест}. Split по разделителю ";" лишнего нарежет.?Как идея Right при поиске inStrRev..Но тоже есть шанс отрезать лишнего - залезть в нужный текст к примеру {\fTimes New Roman|b0|i0|c204|p18;\C7;-тест; тест 2}... {\fTimes New Roman|b0|i0|c204|p18;\C7;тест\fTimes New Roman|b0|i0|c0|p18;; \fTimes New Roman|b0|i0|c204|p18;тест 2\fTimes New Roman|b0|i0|c0|p18;; \fTimes New Roman|b0|i0|c204|p18;тест 3}
Коллеги - неужели больше никаких идей!
я вроде взрывал текст, но иногда его приходилось несколько раз взрывать. но это было давно...
Не претендую на оригинальность, но раз других идей нет то..
Код

Public Function StrReplaceFormat(str As String)
  Dim strArr  As Variant
  Dim strArrW  As Variant
  Dim str_itog As String
  Dim stfindOk As String
  Dim strfindWOk As String
  Dim strfind
  Dim strfindW
  str_itog = ""
  If InStr(str, "{") > 0 And InStrRev(str, "}") > 0 Then
      str = Replace(str, "{", "")
      str = Replace(str, "}", "")
      str = Replace(str, "\P", "")
      strArr = Split(str, ";")
      stfindOk = ""
       For Each strfind In strArr
        If InStr(strfind, "\C") = 0 _
          And InStr(strfind, "\T") = 0 _
          And InStr(strfind, "\f") = 0 _
          And InStr(strfind, "\F") = 0 Then
          stfindOk = strfind
          If InStr(stfindOk, "\W") > 0 Then
             strArrW = Split(stfindOk, " ")
             strfindWOk = ""
            For Each strfindW In strArrW
               If InStr(strfindW, "\W") = 0 Then
                 strfindWOk = strfindWOk + " " + strfindW
               End If
            Next strfindW
             stfindOk = strfindWOk
          End If
         str_itog = str_itog + " " + stfindOk
        End If
       Next strfind
   Else
    str_itog = str
  End If
       StrReplaceFormatColor = str_itog
End Function
Страницы: 1
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)