Eng:Removing a String from a List (By Text)

Using the list block, one can remove a specified item from a list based on its numerical value in the list, but there is no individual block that removes an item (or multiple items) which contains a specified string from a list. This tutorial will show how to remove an item from a list based on the string stored within the item.

Project Situations
There could be a number of purposes why one would need to remove an item from a list based on its value (or string). The following are possible situations:
 * A list contains of items found, and the items are in random order based on when they were discovered; later, you give one item away, and the list must remove that specified item based on its name from the list.
 * A grocery list being broken down as items are bought

Programming
The following script can be used to program this. For this script, assume the following:
 * "item#" is a variable used to iterate through the list until finding the desired item.
 * the list's name is "gems".
 * the item which is desired to be removed is the string "ruby".

set [item# v] to (1) //so the process begins with the first item if <[gems v] contains [ruby]> then //if it does not, then the list cannot delete the item, and the script will not run further repeat until <(item (item#) of [gems v]) = [ruby]> //it will stop once it reaches the first item that is "ruby" change [item# v] by (1) //moves to the next item in the list to check if it is a "ruby" end delete (item#) of [gems v] end

This second method removes all items that are the specified string instead of just the first:

set [item# v] to (1) //so the process begins at item 1 of "gems" if <[gems v] contains [ruby]> then //if the list at all contains "ruby" repeat until < (item#) > (length of [gems v])> //repeat until iterated through the entire list if <(item (item#) of [gems v]) = [ruby]> then //if the current item is the specified string delete (item#) of [gems v] //then remove that item else change [item# v] by (1) //move to the next item end