CountFields
From Xojo Documentation
This item was deprecated in version 2019r2. Please use String.CountFields as a replacement. |
Returns the number of values (fields) in the string passed that are separated by the separator string passed. If the source string is binary data or you require case-sensitivity, use CountFieldsB instead.
Usage
result = CountFields(stringVariable, separator)
or
result = stringVariable.CountFields(separator)
Part | Type | Description |
---|---|---|
result | Integer | The number of values in source that are separated by separator. |
stringVariable | String | The original string. |
separator | String | The character or characters that separate the values in source. |
Notes
The CountFields function is useful for reading columns of data from a text file where the columns (fields) are delimited with a specific character or characters.
If the separator is not found within source, CountFields returns 1. If source is null, CountFields returns zero.
Using CountFields in a loop to extract fields from a string is inefficient. You should use Split and Ubound for this purpose. |
Sample Code
The code below returns 5.
Dim s As String
s = "Dan*Smith*11/22/69*5125554323*Male"
count = CountFields(s, "*")
count = s.CountFields("*")
The following code returns three because it counts the null "field" after the (unnecessary) final field delimiter.
This code in the Open event handler populates a PopupMenu and sets the initial value to the current month:
Dim i, last As Integer
Dim d As New Date
s = "January,February,March,April,May,June,July," _
+ "August,September,October,November,December"
last = CountFields(s,",")
For i = 1 To last
Me.AddRow(NthField(s, ",", i))
Next
Me.ListIndex = d.Month - 1
See Also
CountFieldsB, NthField, Split, Text.Split functions; TextInputStream class