Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Incrementing Alpha ID's
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Versions des environnements
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Divers
Thread ID:
01212864
Message ID:
01212882
Vues:
16
>Has anyone done alpha ID incrementing? Say you had a five character ID such as "aaaaa" and you wanted to increment it, would you just add some numeric ASCII value to the last letter?
?GetNextCA("AB8") && Increment Alpha-numeric
?GetNextCA("AB9")

?GetNextCN("0001") && Increment numeric
?GetNextCN("0009")

?GetNextCH("0009") && Increment hexa
?GetNextCH("009F")

*******************************
* Increment Alpha-numeric
***************************
PROCEDURE GetNextCA(lcID)
IF EMPTY(lcID)
   lcID=CHR(47)
ENDIF
LOCAL lii,liy
lcID=UPPER(lcID)
FOR lii=LEN(lcID) TO 1 STEP -1
    liy=ASC(SUBS(lcID,lii,1)) 
    liy=IIF(liy=57,64,IIF(liy=90,47,liy))
    lcID=LEFT(lcID,lii-1)+CHR(liy+1)+SUBS(lcID,lii+1)
    IF liy#47
       EXIT
    ENDIF
NEXT
RETURN IIF(liy=47,CHR(49),"")+lcID

*******************************
* Increment numeric
*******************************************************************************
PROCEDURE GetNextCN(lcID)
IF EMPTY(lcID) 
   lcID=CHR(47)
ENDIF
LOCAL lii,liy
FOR lii=LEN(lcID) TO 1 STEP -1
    liy=IIF(SUBS(lcID,lii,1)="9" , 47, ASC(SUBS(lcID,lii,1)))
    lcID=LEFT(lcID,lii-1)+CHR(liy+1)+SUBS(lcID,lii+1) 
    IF liy#47
       EXIT
    ENDIF
NEXT
RETURN IIF(liy=47,CHR(49),"")+lcID

*******************************
* Increment hexa
*******************************************************************************
PROCEDURE GetNextCH(lcid)
IF EMPTY(lcID)
   lcID=CHR(47) 
ENDIF
LOCAL lii,liy
lcID=UPPER(lcID)
FOR lii=LEN(lcID) TO 1 STEP -1
    liy=ASC(SUBS(lcID,lii,1)) 
    liy=IIF(liy=57,64,IIF(liy=70,47,liy))
    lcID=LEFT(lcID,lii-1)+CHR(liy+1)+SUBS(lcID,lii+1)
    IF liy#47
       EXIT
    ENDIF
NEXT
RETURN IIF(liy=47,CHR(49),"")+lcID
MartiJ
"Navision is evil that needs to be erazed... to the ground"

Jabber: gorila@dione.zcu.cz
Jabber? Jabbim
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform