An example of when a backwards search would be useful is the following:

In the app, you have to find command environments. Environments are delimited 
by an opening string and a closing string.

Usually, I search forward for the opening string, then search for the closing 
string afterwards. Once this occurrence is processed, the app goes on with a 
forward search.

Now another problem: I want to see in which environment a text position is in, 
i.e. finding the enclosing opening and closing strings.

Looking for the closing string is a no brainer. Looking for the opening string 
is no more difficult if I can do a backwards search.

However, if I can only search forward, I must start the search at the beginning 
of the text to scan all the occurrences of the opening string that stand before 
the text position (if any). The complexity of this approach is not the same as 
in the case where a backwards search is available.

François

> Le 23 mars 2023 à 16:48, Craig Newman via use-livecode 
> <[email protected]> a écrit :
> 
> Francois.
> 
> I am sure you know what you have and what you need.
> 
> But just for my curiosity, if I had to do what you want, I would have used 
> the “offset” function and its “charsToSkip” parameter to find all instances 
> of the text to find, and then use those values in sequence to work backwards. 
> But then how do you know when to stop?
> 
> Craig
> 
>> On Mar 23, 2023, at 11:30 AM, François via use-livecode 
>> <[email protected]> wrote:
>> 
>> The text source is not very big.
>> 
>> However I implement transcoding from one language to another and I do an 
>> VERY large amount of search and replace.
>> 
>> I think I have quite optimized my LC code but transcoding can take 5 minutes 
>> to do, and I need the whole process to chase unexpected bugs. This is using 
>> the forward search (offset) most of the time.
>> 
>> Using a standalone app takes the time down to 4 minutes, which is not a 
>> sufficient gain for my usage.
>> 
>> François
>> 
>>> Le 23 mars 2023 à 16:21, Craig Newman via use-livecode 
>>> <[email protected]> a écrit :
>>> 
>>> Francois.
>>> 
>>> Who wouldn’t?
>>> 
>>> But unless you are working with VERY large datasets, I bet a handler would 
>>> process quickly.
>>> 
>>> Craig
>>> 
>>>> On Mar 23, 2023, at 10:58 AM, François via use-livecode 
>>>> <[email protected]> wrote:
>>>> 
>>>> @Ben
>>>> 
>>>> Too bad…
>>>> 
>>>> @ Craig
>>>> 
>>>> I would rather have an optimized version, I do a lot of text processing in 
>>>> my app.
>>>> 
>>>> Thanks to both of you!
>>>> François
>>>> 
>>>>> Le 23 mars 2023 à 14:43, Craig Newman via use-livecode 
>>>>> <[email protected]> a écrit :
>>>>> 
>>>>> @Ben.
>>>>> 
>>>>> 20 years! Congratulations!.
>>>>> 
>>>>> @Francois
>>>>> 
>>>>> This can be scripted easily. Do you need help with that?
>>>>> 
>>>>> Craig
>>>>> 
>>>>>> On Mar 23, 2023, at 8:21 AM, Ben Rubinstein via use-livecode 
>>>>>> <[email protected]> wrote:
>>>>>> 
>>>>>> https://quality.livecode.com/show_bug.cgi?id=584 (20th anniversary this 
>>>>>> September!)
>>>>>> 
>>>>>> Also
>>>>>> https://quality.livecode.com/show_bug.cgi?id=8353
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On 23/03/2023 11:35, François via use-livecode wrote:
>>>>>>> I would like to search for a string within another string, starting at 
>>>>>>> a given position, but backward.
>>>>>>> In some languages, you can achieve that by providing a negative number 
>>>>>>> for the initial position of the search.
>>>>>>> Is this possible in LiveCode?
>>>>>>> TIA
>>>>>>> François
>>>>>>> _______________________________________________
>>>>>>> use-livecode mailing list
>>>>>>> [email protected]
>>>>>>> Please visit this url to subscribe, unsubscribe and manage your 
>>>>>>> subscription preferences:
>>>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>>>> 
>>>>>> _______________________________________________
>>>>>> use-livecode mailing list
>>>>>> [email protected]
>>>>>> Please visit this url to subscribe, unsubscribe and manage your 
>>>>>> subscription preferences:
>>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> use-livecode mailing list
>>>>> [email protected]
>>>>> Please visit this url to subscribe, unsubscribe and manage your 
>>>>> subscription preferences:
>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>> 
>>>> 
>>>> _______________________________________________
>>>> use-livecode mailing list
>>>> [email protected]
>>>> Please visit this url to subscribe, unsubscribe and manage your 
>>>> subscription preferences:
>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>> 
>>> 
>>> _______________________________________________
>>> use-livecode mailing list
>>> [email protected]
>>> Please visit this url to subscribe, unsubscribe and manage your 
>>> subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>> 
>> 
>> _______________________________________________
>> use-livecode mailing list
>> [email protected]
>> Please visit this url to subscribe, unsubscribe and manage your subscription 
>> preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
> 
> 
> _______________________________________________
> use-livecode mailing list
> [email protected]
> Please visit this url to subscribe, unsubscribe and manage your subscription 
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode


_______________________________________________
use-livecode mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to