Mid, Mid$, MidB, MidB$ Functions

Named Arguments

Yes

Syntax

Mid(string, start[, length])


string

Use: Required

Data Type: String

The expression from which to return a substring.


start

Use: Required

Data Type: Long

The starting position of the substring.


length

Use: Optional

Data Type: Variant (Long)

The length of the substring.

Return Value

A Variant of subtype String or a String data type.

Description

Returns a substring of a specified length from within a given string.

Rules at a Glance

  • If string contains a Null, Mid returns Null.

  • If start is more than the length of string, a zero-length string is returned.

  • If start is less than zero, runtime error 5, "Invalid procedure call or argument," is generated.

  • If length is omitted, or length is greater than the length of string, all characters from start to the end of string are returned.

  • The MidB version of the Mid function is used with byte data held within a string. When using MidB, both start and length refer to numbers of bytes as opposed to numbers of characters.

Example

The following example parses the contents of a text box control (named txtString) and writes each word to a list box (named lstWord ). Note the use of the InStr function to determine the position of either a space or a carriage return/linefeed character combination, the two characters that can terminate a word in this case:

Private Sub cmdParse_Click()

Dim strString As String, strWord As String
Dim intStart As Integer, intEnd As Integer
Dim intStrLen As Integer, intCrLf As Integer
Dim blnLines As Boolean

lstWords.Clear

intStart = 1
strString = Trim(txtString.Text)
intStrLen = Len(strString)
intCrLf = InStr(1, strString, vbCrLf)
If intCrLf Then blnLines = True

Do While intStart > 0
   intEnd = InStr(intStart, strString, " ") - 1
   If intEnd <= 0 Then intEnd = intStrLen
   If blnLines And (intCrLf < intEnd) Then
      intEnd = intCrLf - 1
      intCrLf = InStr(intEnd + 2, strString, vbCrLf)
      If intCrLf = 0 Then blnLines = False
      lstWords.AddItem Mid(strString, intStart, _
                       intEnd - intStart + 1)
      intStart = intEnd + 3
   Else
      lstWords.AddItem Mid(strString, intStart, _
                       intEnd - intStart + 1)
      intStart = intEnd + 2
   End If
   If intStart > intStrLen Then intStart = 0
Loop

End Sub

Programming Tips and Gotchas

  • Use the Len function to determine the total length of string.

  • Use InStr to determine the starting point of a given substring within another string.

See Also

Left, Left$, LeftB, LeftB$ Functions; Len Function; Mid, MidB Statements; Right, Right$, RightB, RightB$ Functions
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.118.128.226