|
Do you have source some source that you want to share? Is there some source that you want to see posted here? If so, Contact Us and we'll be more than happy to help. |
****************************************************************
* Description.. Increment Character *
* Program Name. INCCHAR *
* Author....... Bradley V. Stone *
* BVS/Tools - www.bvstools.com *
****************************************************************
H NOMAIN
****************************************************************
* Prototypes *
****************************************************************
D #IncChar PR 256 Increment Character
D PR_text 256 VALUE
D PR_size 3 0 VALUE
*//////////////////////////////////////////////////////////////*
* (#IncChar) Increment Character *
*//////////////////////////////////////////////////////////////*
P #IncChar B EXPORT
*--------------------------------------------------------------*
D #IncChar PI 256
D text 256 VALUE
D size 3 0 VALUE
*
D C1 C CONST('ABCDEFGHIJKLMNOPQRSTUVWXYZ012-
D 3456789')
D C2 C CONST('BCDEFGHIJKLMNOPQRSTUVWXYZA123-
D 4567890')
*
D LoValC C CONST('A')
D LoValN C CONST('0')
*
D NewText S LIKE(text)
D NewSize S LIKE(size)
*
D CurChar S 1
D LoVal S 1
*--------------------------------------------------------------*
C if (text = ' ')
C eval size = 1
C endif
*
C eval CurChar = %subst(text:size:1)
C TESTN CurChar 99
*
C if (*IN99)
C eval Loval = LovalN
C else
C eval LoVal = LoValC
C endif
*
C C1:C2 XLATE CurChar CurChar
*
C eval %subst(text:size:1) = CurChar
*
C if (CurChar = LoVal) and (size > 1)
C eval NewSize = (size - 1)
C eval NewText = (%subst(text:1:NewSize))
C eval %subst(text:1:NewSize) =
C #IncChar(NewText:NewSize)
C endif
*
C RETURN text
*--------------------------------------------------------------*
P #IncChar E
|