Skip to main content
2 of 2
replaced http://stackoverflow.com/ with https://stackoverflow.com/

According to MSDN, this function is already implemented:

' Code from MSDN
'
Dim myString As String = "ABCDE" 
Dim myChar As Char 
' The value of myChar is "D".
myChar = myString.Chars(3)

**A review of your code**
  • Please indent your code.

  • I would choose another, more meaningful name for your function: getCharAt or getByteFromString. It is now clear that the function operates on a string.

  • I would use the clearer parameter name str instead of s.

  • "Compress":

      place = place + 1
      getbyte = Mid(s, place, 1)
    
      ' change to
      getbyte = Mid(s, place + 1, 1)
    

    The first version is definitely not wrong or ugly, but why use an extra line if we could express the same logic in the same clear manner?

  • You could use If to shorten your code:

      Private Function getbyte(str As String, ByVal place As Integer) As String
        getbyte = If(place < Len(str), Mid(str, place + 1, 1), "")
      End Function
    
ComFreek
  • 751
  • 8
  • 20