Find/Replace woes

Adrian Williams adrian at clubtype.co.uk
Sat Nov 18 12:24:56 EST 2006


On 18 Nov 2006, at 15:32, Eric Chatonet wrote:

> Hi Adrian,
>
> tText is the text of the field where you want to search/replace, right?
Yes but...
> If the search string is not in the text of this "main" field, the  
> function will return "Could not find string".
>
> Some comments about the CanReplace function:
> Each condition line is evaluated as one goes along: if true the  
> specified value is returned and if false the next line is evaluated.
> This way of scripting is efficient and easy: instead of having  
> multiple conditions, you have only simple lines.
I do like that. Its clearer to understand too.
>
> Sounds like your search string is not in your main text :-)
There is only one word in both "edtFind" and "edtReplace" fields -  
nothing else!
> Another clue: be sure to insert handlers to trap returnInField in your  
> "edtFind" and "edtReplace" fields or you may have additional carriage  
> returns in them.
> Just insert these "dead" handlers in the scripts of your fields:
>
> on returnInField
> end returnInField
OK. I'll add those, but the absence of these would not be affecting  
"Could not find find string" would it?
>
> Hope this helps.
Thanks,
Adrian
>
> Le 18 nov. 06 à 15:51, Adrian Williams a écrit :
>
>> Hi Eric,
>> Thanks for your suggestion but...
>>
>> This code produces "Could not find string".
>> All buttons and field are on same card.
>> There is text in both edtFind and edtReplace fields.
>> So why is tFindStr not in tText ???
>> Adrian
>>
>> On 18 Nov 2006, at 09:28, Eric Chatonet wrote:
>>
>>> Hi Adrian,
>>>
>>> May be you could use replaceText:
>>>
>>> on mouseUp
>>>   local tFindStr,tRepStr,tText,tHtml,tCanReplace
>>>   -----
>>>   put fld "edtFind" into tFindStr
>>>   put fld "edtReplace" into tRepStr
>>>   put fld "edtText" into tText
>>>   put the htmlText of fld "edtText" into tHtml
>>>   -----
>>>   put CanReplace(tFindStr,tRepStr,tText) into tCanReplace --
>>>   if tCanReplace then
>>>     set the htmlText of fld "edtText" to  
>>> replaceText(tHtml,tFindStr,tRepStr)
>>>   else answer tCanReplace
>>> end mouseUp
>>> ---------------------------------
>>> function CanReplace tFindStr,tRepStr,tText
>>>   if tFindStr = empty then return "Find string is empty."
>>>   if tRepStr = empty then return "Replace string is empty."
>>>   if tText = empty then return "Text is empty."
>>>   if tFindStr is not in tText then return "Could not find find  
>>> string."
>>>   return true
>>> end CanReplace
>>>
>>> Best Regards from Paris,
>>> Eric Chatonet
>>>
>>> Le 18 nov. 06 à 09:46, Adrian Williams a écrit :
>>>
>>>> Herschel,
>>>> This works fine if the only word in the "edtText" field matches the  
>>>> "edtReplace" field.
>>>> But if there are ANY other words at all in "edtText", nothing gets  
>>>> replaced.
>>>> So how can Replace be made to actually replace all instances?
>>>> Should this be Replace Text rather than Replace field?
>>>> Thanks,
>>>> Adrian
>>>>
>>>> On 16 Nov 2006, at 21:24, Hershel Fisch wrote:
>>>>> On 11/16/06 12:22 PM, "Adrian Williams" <adrian at clubtype.co.uk>  
>>>>> wrote:
>>>>>>
>>>>>> SCRIPT: FIND BUTTON
>>>>>> on mouseUp
>>>>>>  --set text of field "edtReplace" to ""
>>>>> Put "" into fld "edtReplace"
>>>>>>  --put text of field "edtFind" into tFindText
>>>>>> -- find string tFindText in field "edtText"
>>>>> Find fld "edtFind" in fld "edtText"
>>>>>> end mouseUp
>>>>>>
>>>>>> SCRIPT: REPLACE BUTTON
>>>>>> on mouseUp
>>>>>>  --get the htmlText of field "edtText"
>>>>>
>>>>>>  --replace text of field "edtFind" with text of field  
>>>>>> "edtReplace" in it
>>>>> Replace fld "edtFind" with fld "edtReplace" in fld edtText"
>>>>>>  --set the htmlText of field "edtText" to it
>>>>>> end mouseUp
>>>>>
>>>>> Whell this is my version ? Hershel
>>>>>>
>>>>>> Thanks,
>>>>>> Adrian
>>>>>> ______________________
>>>>>> Club Type
>>>>>> http://www.clubtype.co.uk
>
> Best Regards from Paris,
> Eric Chatonet
> ----------------------------------------------------------------------- 
> -----------------------
> http://www.sosmartsoftware.com/    eric.chatonet at sosmartsoftware.com/
______________________
Club Type
http://www.clubtype.co.uk
adrian at clubtype.co.uk



More information about the use-livecode mailing list