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

  • Автор темы IsAvailable
  • Дата начала
I

IsAvailable

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

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

morpheus

скриптописец
07.08.2006
3 915
1
#2
перед выполнение эвалюате, использхуйте переменную


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



Код:
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
использование
Код:
...
If Instr(s1, |"|)>0 Then s1 = StrReplace( Cstr(s1) , |"|, {\"})
...
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#3
Почему бы просто не сделать Replace(строка_с_кавычками, {"}, " ") ?
 
O

oshmianski

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

Для: IsAvailable

Код:
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
 
I

IsAvailable

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

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

Всем большое спасибо : )
 
I

IsAvailable

#6
Для: oshmianski
Про ограничение версии - сенкс!
С текущей базой работают только с 6-ки, но на будущее - полезно знать, где могут оказаться подводные камни.
 
30.05.2006
1 345
11
#7
Необходимо в строке заменить кавычки (") на пробелы. Почему-то нашел функцию стандартную для выполнения операции замены только в @-формулах. Однако и Evaluate у меня сделать не получается. Вот код:
Код:
s$ = doc.GetFirstItem("org_name").text
s$ = {@ReplaceSubstring(} & {"} & s$ & {"} & {;"\"";" ")}
v = Evaluate({@ReplaceSubstring(} & {"} & s$ & {"} & {;"\"";" ")})
А почему не так:
Код:
v = Evaluate({@ReplaceSubstring(org_name;"\"";" ")}, doc)
Ы?
 
I

IsAvailable

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