Ich weis das der Quell Code nicht perfekt ist. Das kann man von einem Anfänger in LotusScript ja auch nicht erwarten. Oder?
Genau deswegen habe ich ja auch zweimal angefragt: Was wird als Eingabe erwartet, und was soll unten wieder herauskommen ? Gerade als Anfänger sollte man die Postings, für die sich andere immerhin Zeit genommen und Mühe gegeben haben, schon genau lesen.
Hier ein Beispiel (!) für das Normalisieren einer 10stelligen MAC-Adresse. Um das Testen zu erleichtern, ist der Code für einen Button bestimmt und liest den Inhalt des Feldes MACAddress aus. Das ganze liesse sich leicht in eine Function auslagern und somit auch variabler gestalten (zum Beispiel hinsichtlich der erlaubten Länge der MACAddress oder der einzufügenden Zeichen und so weiter.
Die Prüfung / Umsetzung würde ich im PostRecalc-Event durchführen.
HTH,
Bernhard
Sub Click (Source As Button)
Dim ws As New NotesUIWorkspace
Dim uidocCurrent As NotesUIDocument
Dim docCurrent As NotesDocument
Dim szOrig As String
Dim szTemp As String
Dim szNormalized As String
Dim iLoop As Integer
On Error Goto ErrorRoutine
'Get the field value:
Set uidocCurrent = ws.CurrentDocument
Set docCurrent = uidocCurrent.Document
szOrig = docCurrent.MACAddress (0)
If szOrig = "" Then
Exit Sub
End If
'Switch to Uppercase only:
szOrig = Ucase (szOrig)
'Remove all characters which can't belong to a MAC address:
szTemp = ""
For iLoop = 1 To Len (szOrig)
If Instr ("01234567890ABCDEF", Mid$ (szOrig, iLoop, 1)) > 0 Then
szTemp = szTemp & Mid$ (szOrig, iLoop, 1)
End If
Next
If Len (szTemp) <> 10 Then
Messagebox "This MAC address is invalid !"
Exit Sub
End If
'Build the normalized MAC address:
szNormalized = ""
For iLoop = 1 To Len (szTemp)
szNormalized = szNormalized & Mid$ (szTemp, iLoop, 1)
If (iLoop / 2 = Int (iLoop / 2)) And (iLoop < Len (szTemp)) Then
szNormalized = szNormalized & "-"
End If
Next
Messagebox szNormalized
Exit Sub
ErrorRoutine:
Messagebox "An run-time error occured: " & Error$ & " (no. " & Cstr (Err) & " in line " & Cstr (Erl) & ")"
Exit Sub
End Sub