Click here to Skip to main content
Sign Up to vote bad
good
See more: VB.NET
I am currently busy on a program in which when a record is added i need to increment a letter in a text box. Please could someone help me with incrementing letters , have never done it before?
 
thanks
Posted 13-Nov-12 1:55am
isi19359


3 solutions

Thanks for all the help
i have found an easier solution
 

Dim letter As String = "A"
letter = Chr(Asc(letter) + 1)
Me.letter.Text = letter
  Permalink  
Try this code
(for sake of simplicity it assumes the input string being uppercase)
Public Function Increment(ByVal s As String) As String
    Dim index As Integer = s.Length - 1
    Dim n As Integer
    While index > 0 And s.Chars(index) = "Z"
        index = index - 1
    End While
 
    Increment = ""
    For n = 0 To index - 1
        Increment = Increment + s.Chars(n)
    Next
 
    If index > 0 Then
        Increment = Increment + Microsoft.VisualBasic.ChrW(Microsoft.VisualBasic.AscW(s.Chars(index)) + 1)
 

        For n = index + 1 To s.Length - 1
            Increment = Increment + "A"
        Next
    Else
        Increment = "A" + s
    End If
 
End Function
 

Sub Main()
    Dim nxt As String
    nxt = Increment("ZZABZZ")
End Sub
  Permalink  
Hi
 
You will need to load the the alphabet in an array
Dim letters(25) As String
 
letters(0) = "A"
letters(1) = "B"
letters(2) = "C"
letters(3) = "D"
letters(4) = "E"
etc.
Then You will need to grab the Text box's contents.
Dim letterGrab As String
 
letterGrab = tbLetter.Text
Now get the letter's index
Dim found As Boolean = False
Dim FoundIndex As Integer = 0
For i As Integer = 0 To 25
 
    If letters(i) = letterGrab Then
        found = True
        FoundIndex = i
        Exit For
    End If
Next
Finally get the new Letter and put it in the text box
If found = True Then
    FoundIndex = FoundIndex + 1
    tbLetter.Text = letters(FoundIndex)
        
Else
'What to do if end of array reached
End If
 
If you need case insensitive comparison, change code block 3 to this:

Dim found As Boolean = False
Dim FoundIndex As Integer = 0
For i As Integer = 0 To 25
Dim CaseDiff As Integer  = String.Compare(letters(i), letterGrab, True)
 
    If CaseDiff = 0 Then
        found = True
        FoundIndex = i
        Exit For
    End If
Next
 
Hope This Helps
Jacques
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Your Filters
Interested
Ignored
     
0 Christian Graus 544
1 OriginalGriff 263
2 samadhan_kshirsagar 229
3 Michael Haephrati 225
4 Ron Beyer 200
0 Sergey Alexandrovich Kryukov 6,959
1 Prasad_Kulkarni 3,689
2 OriginalGriff 3,402
3 _Amy 3,332
4 CPallini 2,950


Advertise | Privacy | Mobile
Web03 | 2.6.130617.1 | Last Updated 13 Nov 2012
Copyright © CodeProject, 1999-2013
All Rights Reserved. Terms of Use
Layout: fixed | fluid