Кавычка

  • Автор темы Grrr
  • Дата начала
G

Grrr

#1
Подскажите Уважаемые, как заменить символ " в строке, Лотус ругается при передаче в поиск такого рода строки: "Это был я, "Вася"" и сравнить его с таким же полем? Думаю, надо заменять этим символы в обеих строках? Кодик бы помог.
 

abbatik

Lotus team
20.10.2008
277
0
#2
на собаках \"
в скрипте "", еще в скрипте ковычку можно заменить символом | и {
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#3
ты б лучше тот код, что ругается запостил, а то не ясно как ты добиваешься ошибки
 
G

Grrr

#4
Сорри провадал долгое время.
По теме, делается запрос на отбор в папку:
flag = doc.GetItemValue("Tema")(0) = "1"
if flag Then
Call AddSearchParam(searchParam, {(Tema= "} & doc.GetItemValue("Tematika")(0) & {")})
End If,
Tematika - поле в форме поиска, которой присваивается значение через кнопку на форме (там какой то ужасный код).
При назначении полю обычных значений типа "Тема разная", поиск проходит на ура, а вот при значениях типа "Самое "Важное"", вываливается в ошибкой в формуле. Как исправить?
Ещё раз, нормальная тематика, на которую можно изменить - Разное
Неправильная тема (как мне кажется из за кавычек - Привет "Медвед"
 

abbatik

Lotus team
20.10.2008
277
0
#5
Чего ты тут накрутил...

"(Tema=" & doc.GetItemValue("Tematika")(0) & ")"

Попробуй так.
 
G

Grrr

#6
Не работает.. :/
Решил проверить через msgbox строку запроса, получается:
Tema = Самое "Важное"
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#7
не, там все нормально в коде, проблема в строке для поиска.
я так понял используется db.Search
попробуй в строке, которую ты формируешь предварительно менять кавычки на двойные

Код:
Call AddSearchParam(searchParam, {(Tema= "} & Replace(doc.GetItemValue("Tematika")(0), {"}, {""}) & {")})
 
G
#10
В обоих случаях:
Самое "Важное", да и..
Sub AddSearchParam(AParamArray As Variant, AParam As String)
If Isarray(AParamArray) Then
Redim Preserve AParamArray (Lbound(AParamArray) To Ubound(AParamArray) + 1)
Else
Redim AParamArray (0 To 0)
End If
AParamArray(Ubound(AParamArray)) = AParam
End Sub
Кхм.. Не совсем уверен, но кажется
Call AddSearchParam(searchParam, {(Tema = "} & Replace(doc.GetItemValue("Tematika")(0), {"}, {\"}) & {")})
Решило проблему с
Самое "Важное", но появилась другая:
Самое "Важное"\Очень

Неужели ещё доделывать обратную косую? {\\} ?? Подскажите, как написать правильно.

Неужели?..
T = Replace(doc.GetItemValue("Tematika")(0), {\}, {\\})
Call AddSearchParam(searchParam, {(Tema= "} & Replace(T, {"}, {\"}) & {")})
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#12
во-первых, это не слеш, а, во-вторых, обратный слеш, являясь по-умолчанию управляющим символом требует специального написания себя любимого, а именно в двойном виде (\\) ;)
 

abbatik

Lotus team
20.10.2008
277
0
#13
во-первых, это не слеш, а, во-вторых, обратный слеш, являясь по-умолчанию управляющим символом требует специального написания себя любимого, а именно в двойном виде (\\) ;)
ну извините ;) :)
в общем не так важно как он называется, а главное как используется :)