Method
CountFields
Warning
This item was deprecated in version 2019r2. Please use String.CountFields as a replacement.
Description
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 MemoryBlock instead.
Usage
result = CountFields(stringVariable, separator)
or
result = stringVariable.CountFields(separator)
Part |
Type |
Description |
---|---|---|
result |
The number of values in source that are separated by separator. |
|
stringVariable |
The original string. |
|
separator |
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.
Note
Using CountFields in a loop to extract fields from a string is inefficient. You should use String.Split and Arrays.LastIndex for this purpose.
Sample code
The code below returns 5.
Dim count As Integer
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.
Dim count As Integer
Dim s As String
s = "Dan*Smith*"
count = CountFields(s, "*")
This code in the Open event handler populates a PopupMenu and sets the initial value to the current month:
Dim s As String
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
Compatibility
All project types on all supported operating systems.
See also
MemoryBlock, String.NthField, String.Split, Text.Split functions; TextInputStream class