SPUG: auto-increment mixed alpha-numeric
Richard Wood
wildwood_players at yahoo.com
Thu Mar 13 16:48:11 CST 2003
Thanks for the ideas,
glad to see I wasn't missing something obvious.
Rich Wood
--- Richard Wood <wildwood_players at yahoo.com> wrote:
> Here is what I am using in the meantime while
> waiting
> for an elegant solution.
>
> #!/usr/bin/perl -w
> @strings = qw(AAA AZ8 A8A A98 118 18A 1A8 8AA);
> foreach $str (@strings) {
> for ($i=0;$i<3;$i++) {
> print "$str\t";
> myinc();
> }
> print "\n";
> }
> sub myinc {
> if ($str =~
> /\d{3}|[A-Z]{3}|[A-Z]{1}\d{2}|[A-Z]{2}\d{1}/) {
> $str++;
> }
> else {
> $str =~ /(.)(.)(.)/;
> $a = $1;
> $b = $2;
> $c = $3;
> $c++;
> if (($c ne '10') && ($c ne 'AA')) {
> $str = "$a$b$c";
> }
> else {
> $c =~ s/.(.)/$1/;
> $b++;
> if (($b ne '10') && ($b ne 'AA')) {
> $str = "$a$b$c";
> }
> else {
> $b =~ s/.(.)/$1/;
> $a++;
> $str = "$a$b$c";
> }
> }
> }
> }
>
> Rich Wood
>
> --- Richard Wood <wildwood_players at yahoo.com> wrote:
> > I have the need/desire to auto-increment a three
> > character scalar that may contain: all numerics,
> all
> > alphas, or mixed alpha-numeric.
> >
> > auto-increment works fine for all alpha and all
> > numeric and in some cases with a mix of
> > alpha-numerics
> > but not when a numeric precedes an alpha. In
> those
> > cases I get two types of results. (e.g. '1AA'
> > becomes
> > 2, 'A1A' becomes 1, then 2).
> >
> > Anyone have a simple solution to this? I will
> > continue to look around and try things but I
> thought
> > I
> > would ask the community before any more time
> slipped
> > away.
> >
> > Here is my test program and results:
> >
> > #!/usr/bin/perl -w
> > @strings = qw(AAA AA8 A8A A98 118 18A 1A8 8AA);
> > foreach $str (@strings) {
> > for ($i=0;$i<3;$i++) {
> > print "$str\t";
> > $str++;
> > }
> > print "\n";
> > }
> > __END__
> > AAA AAB AAC
> > AA8 AA9 AB0
> > A8A 1 2
> > A98 A99 B00
> > 118 119 120
> > 18A 19 20
> > 1A8 2 3
> > 8AA 9 10
> >
> > Regards,
> >
> > Rich Wood
> >
> > =====
> > Richard O. Wood
> > Wildwood IT Consultants, Inc.
> > wildwood_players at yahoo.com
> > 425.281.1914 mobile
> > 206.544.9885 desk
> >
> > __________________________________________________
> > Do you Yahoo!?
> > Yahoo! Web Hosting - establish your business
> online
> > http://webhosting.yahoo.com
> >
>
_____________________________________________________________
> > Seattle Perl Users Group Mailing List
> > POST TO: spug-list at mail.pm.org
> > ACCOUNT CONFIG:
> > http://mail.pm.org/mailman/listinfo/spug-list
> > MEETINGS: 3rd Tuesdays, U-District, Seattle WA
> > WEB PAGE: www.seattleperl.org
> >
>
>
> =====
> Richard O. Wood
> Wildwood IT Consultants, Inc.
> wildwood_players at yahoo.com
> 425.281.1914 mobile
> 206.544.9885 desk
>
> __________________________________________________
> Do you Yahoo!?
> Yahoo! Web Hosting - establish your business online
> http://webhosting.yahoo.com
>
_____________________________________________________________
> Seattle Perl Users Group Mailing List
> POST TO: spug-list at mail.pm.org
> ACCOUNT CONFIG:
> http://mail.pm.org/mailman/listinfo/spug-list
> MEETINGS: 3rd Tuesdays, U-District, Seattle WA
> WEB PAGE: www.seattleperl.org
>
=====
Richard O. Wood
Wildwood IT Consultants, Inc.
wildwood_players at yahoo.com
425.281.1914 mobile
206.544.9885 desk
__________________________________________________
Do you Yahoo!?
Yahoo! Web Hosting - establish your business online
http://webhosting.yahoo.com
More information about the spug-list
mailing list