Deleting 1 line from a long list

Jan Schenkel janschenkel at yahoo.com
Tue Oct 21 05:11:40 EDT 2003


--- Igor Couto <igor at pixelmedia.com.au> wrote:
> Hi all!
> 
> I was wondering if the way that I'm going about a
> certain task is 
> actually the easiest/fastest way. The task is: I
> have a list 
> (return-delimited) of several hundred words. I need
> to delete ONE 
> specific word from the list.
> 
> Right now, I'm using a repeat loop, iterating
> through the list until I 
> find the string, then deleting it:
> 
> # PRE: pLIst should be a return-delimited list of
> strings. pString 
> should be the text of one of the items in pList.
> # POST: pList is returned, minus the line that
> contains/is pString.
> function fDeleteLine pList,pString
> 	if pList is empty then return empty
> 	if pString is empty then return pList
> 	repeat with x = 1 to number of lines in pList
> 		if line x of pList is pString then
> 			delete line x of pList
> 			exit repeat
> 	end repeat
> 	return pList
> end fDeleteLine
> 
> I know that the "repeat with x" structure is
> supposed to be slower than 
> other forms of repeat, and I also seem to remember
> some experienced 
> users in this list recommending using arrays in some
> way to speed up 
> search and replace functions in lists.
> 
> So: is there a faster way to do this?
> 
> Many thanks for any hints!
> 
> Kindest regards,
> --
> Igor de Oliveira Couto
> 

Hi Igor,

Try the following :

function fDeleteLine pList,pString
  if pList is empty then return empty
  if pString is empty then return pList
  set the wholeMatches to true
  put lineOffset(pString, pList) into tOffset
  return line 1 to (tOffset - 1) of pList & \
     return & line (tOffset + 1) to -1 of pList
end fDeleteLine

No testing occured while writing this email *grin* so
I'm not sure if it will be faster.

Hope this helped nonetheless,

Jan Schenkel.

=====
"As we grow older, we grow both wiser and more foolish at the same time."  (La Rochefoucauld)

__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com


More information about the Use-livecode mailing list