Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0522: Hochzählen von alphanumerischen Werten

 von 

Beschreibung 

Diese Funktion zählt alphanumerische Werte hoch. Benötigt wird das zum Beispiel zur Seriennummernerzeugung oder ähnlichem, wenn Buchstaben und Zahlen gemischt verwendet werden. Über die Änderung von 'Values' können Reihenfolge und verwendete Werte beliebig angepasst werden. Wenn bei den beiden InStr-Suchen vbTextCompare
durch vbBinaryCompare ersetzt wird Groß von Kleinschreibung unterschieden.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

keine

Download:

Download des Beispielprojektes [2,19 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Projekt1.vbp -------------
'--------- Anfang Formular "Form1" alias form1.frm  ---------
' Steuerelement: Schaltfläche "Command1"
' Steuerelement: Textfeld "Text1"
Option Explicit



Function AlphaCountUp(StartValue As String) As String
    Dim Values As String
    Dim A As String             'Suchbuchstabe
    Dim B As String             'Ersatzbuchstabe
    Dim I As Integer            'Zähler
    Dim Position As Integer     'Position des Buchstaben im String
    On Error Goto HandleErr
    On StartValue = "-1" Goto ExitHere
    
    Values = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    StartValue = Trim$(StartValue)
    Position = Len(StartValue)
Again:
    A = Mid$(StartValue, Position, 1)
    B = InStr(1, Values, A, vbTextCompare)
    If B = Len(Values) Then
            StartValue = Left$(StartValue, Position - 1) & Left$(Values, 1) & _
                Right$(StartValue, (Len(StartValue) - Position))
            
            Position = Position - 1
            If Position = 0 Then Position = 1
        If Position = 1 Then
            A = Mid$(StartValue, Position, 1)
            B = InStr(1, Values, A, vbTextCompare)
            If B = Len(Values) Then
                If Left$(Values, 1) = "0" Then
                    StartValue = "10" & Mid$(StartValue, 2)
                Else
                    StartValue = Left$(Values, 1) & Left$(Values, 1) & Mid$(StartValue, 2)
                End If
            Else
                StartValue = Mid$(Values, B + 1, 1) & Mid$(StartValue, 2)
            End If
        Else
            Goto Again:
        End If
    Else
        StartValue = Left(StartValue, Position - 1) & Mid$(Values, B + 1, 1)
    End If

    AlphaCountUp = StartValue
ExitHere:
    Exit Function

Error:
    MsgBox "Der an die Funktion übermittelte String enthält einen ungültigen Buchstaben!", _
        vbCritical, "Datenfehler"
        
    AlphaCountUp = -1
    Exit Function
HandleErr:
    MsgBox "Error " & Err.Number & ": " & Err.Description, vbCritical
    AlphaCountUp = -1
End Function

Private Sub Command1_Click()
  Text1 = AlphaCountUp(Text1)
End Sub

Private Sub Form_Load()
  Text1 = "Y7"
End Sub
'---------- Ende Formular "Form1" alias form1.frm  ----------
'-------------- Ende Projektdatei Projekt1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 2 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Mahmud am 01.03.2005 um 17:23

Das Proramm heb ich mir auf vielleicht brauche ich es später mal

nochmal Danke an den Programmierer

Kommentar von HMS am 06.06.2004 um 15:38

Warum fängt das System nach "10 Z" wieder bei "1 0" an?