====== Locate...By statement ====== ==== Description ==== Use this version of Locate when you are dealing with sorted data. This statement returns the location where a specified string should be inserted, according to the specified sorting consideration. The By clause in the BASIC+ Locate...By statement locates the sorted position (index) of a value. ==== Syntax ==== **Locate** //substring// **In** //string// **By** //seq// [Using //delim//] Setting POS Then Else //statements// ==== Parameters ==== The Locate...By statement has the following parameters. ^Parameter^Description^ |//substring//|Specifies the value whose position is to be located in //string.//| |//String//|Designates the string that is to be searched.| |//Seq//|Locate...By uses //seq// to determine placement of //substring//. The By clause must follow the in clause in this general format. The //seq// parameter may have any of the following values:\\ \\ __Value__ - __Justification__\\ AL - Ascending, Left-justified.\\ AR - Ascending, Right-justified (numeric).\\ DL - Descending, Left-justified.\\ DR - Descending, Right-justified (numeric).| |//delim//|Specifies the character that is to be used in the search for the substring. It may be any ASCII character. If dynamic arrays\\ are being searched, //delim// should be a field mark (@FM),\\ value mark (@VM), or a subvalue mark (@SVM). If a Using clause is not specified, a value mark is assumed.\\ \\ Do not include a //delim// character in a string expression.| ==== See Also ==== [[index|Index()]], [[locate|Locate]], [[inlist|InList()]] ==== Example ==== * This internal subroutine sorts a list. Sort_List: * LIST is an @FM-delimited list of names. transfer list to old * find out how many names numNames = dcount( old, @fm) for i = 1 to numNames Locate old in list By "AL" Using @fm Setting pos else List = Insert(list, pos, 0, 0, OLD) end next i return