3.7.5.59 StringArrayStringArray-obj
The following methods are supported for StringArray type in LabTalk:
Add
Add a string to a StringArray variable.
Syntax
strArray.Add(arg$);
Examples
StringArray aa;
aa.Add("Boston");
aa.Add("New York");
type "aa has $(aa.GetSize()) strings in it";
//should print aa has 2 strings in it
Append
Append from
- Another StringArray.
- datasets
- A stringarray, which is created from a delimiter-separated string. The default delimiter is a whitespace character (space, tab, newline, etc.). (8.0 SR6)
- A treenode. (8.1 SR1)
Syntax
-
int Append(arg$[, chDelimiter]);
Returns
- Returns 0 if success, otherwise return negative error codes.
Examples
Example1
StringArray aa;
StringArray bb;
aa.Add("Boston");
aa.Add("New York");
bb.Add("London");
bb.Add("Paris");
aa.Append(bb);
loop(ii,1,aa.GetSize())
{
string str$=aa.GetAt(ii)$;
str$=;
}
//should print:
//Boston
//New York
//London
//Paris
Example2 (If there are two cell values "Rome", "Tokyo" in the first two cell on Col 1 of the active workbook layer.)
StringArray aa;
StringArray bb;
aa.Add("Boston");
aa.Add("New York");
Range c1 = 1;
aa.Append(c1);
loop(ii,1,aa.GetSize())
{
string str$=aa.GetAt(ii)$;
str$=;
}
//should print:
//Boston
//New York
//Rome
//Tokyo
Example3 (8.0 SR6)
StringArray sa;
sa.Append("Boston|New York|DC", "|");
loop(ii,1,sa.GetSize())
{
string str$=sa.GetAt(ii)$;
str$=;
}
//should print:
//Boston
//New York
//DC
Example4, appending treenode: (8.1 SR1)
newbook;
string fn$=system.path.program$ + "\samples\statistics\automobile.dat";
impasc fname:=fn$;
tree mytree;
// Perform descriptive statistics
discfreqs 2 rd:=mytree;
// Append result to stringarray
StringArray sa;
sa.append(mytree.freqcount1.data1);
ty "There are $(sa.getSize()) Makes";
// Should print:
// There are 18 Makes
Copy
Copy the source StringArray.
Syntax
-
int Copy(StringArray);
Returns
- Returns 0 if success, otherwise return negative error codes.
Examples
StringArray aa;
aa.Add("Boston");
aa.Add("New York");
StringArray bb;
if(bb.Copy(aa)==0)
type "Done!";
else
type "Error!";
loop(ii,1,bb.GetSize())
{
string str$=bb.GetAt(ii)$;
str$=;
}
//Should print:
//Done!
//Boston
//New York
CopyFrom
Copy the contents of a dataset to this string array.
Syntax
int [, Row=1, TranslateLink=0]);
//Row is dataset row index
Returns
- Returns 0 if success, otherwise return negative error codes.
Examples
StringArray aa;
if(aa.CopyFrom(col(a))==0)
{
aa.Sort();
aa.CopyTo(col(B));
}
else
type "Error!";
CopyTo
Copy the StringArray to a dataset.
Syntax
int CopyTo(Dataset[, Row=1, CheckNumeric=0]);
//Row is dataset row index
CheckNumeric is an optional argument (default = false) to allow numerics to be set into cells as numeric cells. If false, even numeric will be set into cells as text.
Returns
- Returns 0 if success, otherwise return negative error codes.
Examples
//example 1
StringArray sa;
sa = unique(col(a)); // assign unique values from col(a) to stringArray sa
range bb=col(b);
sa.CopyTo(bb); // copy contents of stringArray sa to col(b)
// example 2
StringArray aa;
aa.Add("Boston");
aa.Add("New York");
aa.Add("123");
Range c1 = 1; // first column of active sheet
if(aa.CopyTo(c1)==0)
type "Done!";
else
type "Error!";
//With workbook active, should print Done.
//Boston,New York and 123 should show in first column
//and even the "123" cell should be justified left as Text cells
To see how CheckNumeric is used, try the following:
//example 3
StringArray aa;
aa.Add("Boston");
aa.Add("New York");
aa.Add("123");
aa.CopyTo(col(2),2,1);//starting from row2 and have 123 added
//as numeric to be justified right
aa.CopyTo(col(1));// as a comparison to use default to start from 1st row
//and even numeric will become text
Find
Find a string in the array.
Syntax
int nInd = strArray.Find( arg$ );
Returns
- Return index (1 offset) if found, otherwise return 0 if not in array.
Examples
StringArray aa;
aa.Add("Boston");
aa.Add("New York");
int nn = aa.Find("Boston");
nn=; // should print out 1
string str$="Washington DC";
aa.Add(str$);
nn = aa.Find(str$);
nn =; // should print 3
nn = aa.Find("Chicago");
nn =; // should print 0
InsertAt
Insert the splicify string at the given index(based - 1) in the StringArray.
Syntax
-
int InsertAt(ind, str$);
Returns
- Returns 0 if success, otherwise return negative error codes.
Examples
StringArray aa;
aa.Add("Boston");
aa.Add("New York");
if(aa.InsertAt(1, "Washton DC")==0)
type "Done!";
else
type "Error!";
loop(ii,1,aa.GetSize())
{
string str$=aa.GetAt(ii)$;
str$=;
}
//Should print:
//Done!
//Washton DC
//Boston
//New York
GetAt
Get the string at the given index.
Syntax
-
string str$ = strArray.GetAt(arg)$;
Returns
- If index >=1 and index <= StringArray size, return the given index string in the StringArray, else return empty string.
Examples
StringArray aa;
aa.Add("Boston");
aa.Add("New York");
aa.Add("Washington DC");
loop(ii,1,aa.GetSize())
{
string str$=aa.GetAt(ii)$;
str$=;
}
//should print:
//Boston
//New York
//Washington DC
SetAt
Set the string at the given index in StringArray. If the given index ind >=0 and ind < StringArray size, it will set the string to the StringArray at the given index. If not, it will do nothing.
Syntax
strArray.SetAt(nInd, arg$);
Examples
StringArray aa;
aa.Add("Boston");
aa.Add("New York");
aa.Add("Washington DC");
aa.SetAt(2, "Chicago");
loop(ii,1,aa.GetSize())
{
string str$=aa.GetAt(ii)$;
str$=;
}
//should print:
//Boston
//Chicago
//Washington DC
SetAtGrow
Set the string at the given index in StringArray. If the given index ind >=0 and ind < StringArray size, it will set the string to the StringArray at the given index. If ind > StringArray size, it will set the string at the given index and enlarge the StringArray.
Syntax
-
int SetAtGrow(index, str$);
Returns
- Returns 0 if success, otherwise return negative error codes.
Examples
StringArray aa;
aa.Add("Boston");
aa.Add("New York");
string str2$ = "Los Angeles";
if(aa.SetAtGrow(4, str2$)==0)
type "Done!";
else
type "Error!";
loop(ii,1,aa.GetSize())
{
string str$=aa.GetAt(ii)$;
str$=;
}
//Should print:
//Done!
//Boston
//New York
//
//Los Angeles
GetSize
Get the StringArray size.
Syntax
int nRet = strArray.GetSize();
Returns
- Return the StringArray size. If Empty, return 0;
Examples
StringArray aa;
aa.Add("Boston");
aa.Add("New York");
int nn = aa.GetSize();
nn=; //should return 2;
aa.Add("Washington DC");
nn=aa.GetSize(); //should return 3;
nn=;
SetSize
Set the StringArray size. You will need to call this to prepare the array before you can access it unless you are using Add or Append.
Syntax
strArray.SetSize(nSize);
Examples
StringArray aa;
aa.SetSize(2);
aa.SetAt(1,"Boston");
aa.SetAt(2,"New York");
loop(ii,1,aa.GetSize())
{
string str$=aa.GetAt(ii)$;
str$=;
}
//should print:
//Boston
//New York
RemoveAt
Remove the given index(based - 1) string in the StringArray.
Syntax
-
int RemoveAt(index);
Returns
- Returns 0 if success, otherwise return negative error codes.
Examples
StringArray aa;
aa.Add("Boston");
aa.Add("New York");
if(aa.RemoveAt(1)==0)
type "Done!";
else
type "Error!";
loop(ii,1,aa.GetSize())
{
string str$=aa.GetAt(ii)$;
str$=;
}
//Should print:
//Done!
//New York
Sort
(80 SR5)Sort this string array.
Syntax
-
int Sort(Descending=0, IgnoreCase=0);
Returns
- Returns 0 if success, otherwise return negative error codes.
Examples
StringArray aa;
aa.Add("Boston");
aa.Add("New York");
aa.Add("boston");
aa.Add("new york");
StringArray bb;
bb.Copy(aa);
bb.Sort();//default is ascending and case sensitive
bb.CopyTo(col(A));
bb.Copy(aa);
bb.Sort(1, 1);
bb.CopyTo(col(B));
|