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

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.

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.