Не получается удалить кавычки из стринга

Тема в разделе "Lotus - Программирование", создана пользователем IsAvailable, 16 янв 2007.

  1. IsAvailable

    IsAvailable Гость

    Необходимо в строке заменить кавычки (") на пробелы. Почему-то нашел функцию стандартную для выполнения операции замены только в @-формулах. Однако и Evaluate у меня сделать не получается. Вот код:
    Код (Text):
    s$ = doc.GetFirstItem("org_name").text
    s$ = {@ReplaceSubstring(} & {"} & s$ & {"} & {;"\"";" ")}
    v = Evaluate({@ReplaceSubstring(} & {"} & s$ & {"} & {;"\"";" ")})
    Ошибка вываливается: Operation failed

    Пожалуйста, подскажите, как можно решить эту проблему.
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    перед выполнение эвалюате, использхуйте переменную


    Код (Text):
    kkk = {@ReplaceSubstring(} & {"} & s$ & {"} & {;} & {\"} & {;" ")}
    v = Evaluate(kkk)
    - может так сразу глянете чему равен "ккк", а вообще я использую свою отдельную функцию по замене любых символов в строке



    Код (Text):
    Function StrReplace(str1 As String, str2 As String, str3 As String)
    Dim stroka As String
    stroka = str1
    Dim i As Integer
    i = Instr(stroka, str2)
    If i<1 Or Len(str1)<1 Then
    StrReplace = str1
    Exit Function
    End If

    StrReplace = ""
    EE1:
    i = Instr(stroka, str2)
    If i>0 Then
    If i-Len(str2)>0 Then
    StrReplace = StrReplace + Left(stroka, i-Len(str2))+str3
    Else
    StrReplace = StrReplace + str3
    End If

    If Len(stroka) > (i-Len(str2)+1) Then
    stroka = Right(stroka, (Len(stroka)-i-Len(str2)+1))
    Else
    stroka = ""
    End If

    Goto EE1
    End If
    StrReplace = StrReplace + stroka
    End Function
    использование
    Код (Text):
    ...
    If Instr(s1, |"|)>0 Then s1 = StrReplace( Cstr(s1) , |"|, {\"})
    ...
     
  3. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Почему бы просто не сделать Replace(строка_с_кавычками, {"}, " ") ?
     
  4. oshmianski

    oshmianski Гость

    Для: Medevic
    начиная только с 6-ки

    Для: IsAvailable

    Код (Text):
    Function ChangeInString(source As String, string1 As String, string2 As String, sensitive As Integer) As String
    %REM
    'source - строка, в которой надо заменить символы
    'string1 - символ в source, который надо заменить
    'string2 - символ, на который надо заменить string1
    'sensitive - CaseAndPitch = 0; PitchNoCase = 1; CaseNoPitch = 4; NoCaseNoPitch = 5

    'пример:
    'Dim strA As String
    'strA = ChangeInString({Oshmianski"ищет"работу}, {"}, " ", 5)
    'strA = Oshmianski ищет работу
    %END REM
    ChangeInString = source
    On Error Goto errorhandler 

    If string1 = string2 Then
    Print "Эта операция не имеет смысла"
    Exit Function
    End If

    While Instr(1, source, string1, sensitive)
    source = Left(source, Instr(1, source, string1, sensitive) - 1) + string2 + Mid(source, Instr(1, source, string1, sensitive) + Len(string1))
    Wend
    ChangeInString = source
    ex:
    Exit Function
    errorhandler:
    Print "ChangeInString: " & Error, Erl
    Resume ex
    End Function
     
  5. IsAvailable

    IsAvailable Гость

    Для: Morpheus
    В общем, полагаю, что мне просто не хватило разных разделителей для определения строковых переменных :p
    Вот это работает на "ура":
    Код (Text):
    s$ = doc.GetFirstItem("org_name").text
    kkk$ = |@ReplaceSubstring(| & |{| & s$ & |}| & |;| & |{\"}| & |;{ })|
    Messagebox kkk$
    v = Evaluate(kkk$)
    А то там и кавычки... и фигурные скобки...

    Для: Medevic
    Дико извиняюсь! В самом деле! Поражаюсь самому себе, как умудрился мимо этой функции в Хэлпе промахнуться!!! :blink:

    Всем большое спасибо : )
     
  6. IsAvailable

    IsAvailable Гость

    Для: oshmianski
    Про ограничение версии - сенкс!
    С текущей базой работают только с 6-ки, но на будущее - полезно знать, где могут оказаться подводные камни.
     
  7. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.291
    Симпатии:
    0
    А почему не так:
    Код (Text):
    v = Evaluate({@ReplaceSubstring(org_name;"\"";" ")}, doc)
    Ы?
     
  8. IsAvailable

    IsAvailable Гость

    Для: Constantin A Chervonenko
    Нда... Хороший вопрос... Видимо, такое решение на подсознательном уровне было отвергнуто сразу как слишком простое... ;)
    А ведь в самом деле простое решение, дающее нужный результат. Не знаю, что меня понесло куда-то в дебри... :( Но с другой стороны - зато узнал пару полезных вещей :)
     
Загрузка...

Поделиться этой страницей