Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Awk > Re: Question ab...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 2 of 7 Topic 2167 of 2317
Post > Topic >>

Re: Question about a programme

by Ed Morton <morton@[EMAIL PROTECTED] > Feb 18, 2008 at 08:14 AM

On 2/18/2008 6:57 AM, Spiros Bousbouras wrote:
> On page 194 of "Effective AWK programming" we see the
> following programme:
> 
> # rewind.awk --- rewind the current file and start over
> function rewind(    i)
> {
>     # ****ft remaining arguments up
>     for (i = ARGC; i > ARGIND; i--)
>         ARGV[i] = ARGV[i-1]
>     # make sure gawk knows to keep going
>     ARGC++
>     # make current file next to get done
>     ARGV[ARGIND+1] = FILENAME
>     # do it
>     nextfile
> }
> 
> Isn't the statement ARGV[ARGIND+1] = FILENAME
> superfluous ? In the loop when i gets the
> value ARGIND + 1 then the assignment
> ARGV[ARGIND + 1] = ARGV[ARGIND] will be executed
> and ARGV[ARGIND] always has the same value as
> FILENAME

But what if the current file is the last one? Then i = ARGC = ARGIND at
the
start of the loop, so the loop's never entered so THEN that final
assignment is
required. Although that works in this context since the functiona name
implies
it MUST be called while parsing a file, use of FILENAME meanse you can't
execute
this type of general "****ft the arguments" function in a BEGIN section so
I'm
not a big fan.

Personally, I expect I'd have written it as:

# rewind.awk --- rewind the current file and start over
function rewind(    i)
{
    # ****ft remaining arguments up
    for (i = ++ARGC; i > ARGIND; i--)
        ARGV[i] = ARGV[i-1]
    # do it
    nextfile
}

(leaving out the "nextfile" for a general "****ft" function) but I haven't
thought about it much and maybe there was something else the author was
trying
to show with that example...

	Ed.
 




 7 Posts in Topic:
Question about a programme
Spiros Bousbouras <spi  2008-02-18 04:57:46 
Re: Question about a programme
Ed Morton <morton@[EMA  2008-02-18 08:14:15 
Re: Question about a programme
Janis <janis_papanagno  2008-02-18 07:38:59 
Re: Question about a programme
Ed Morton <morton@[EMA  2008-02-18 19:23:58 
Re: Question about a programme
Spiros Bousbouras <spi  2008-02-19 11:46:57 
Re: Question about a programme
Ed Morton <morton@[EMA  2008-02-19 14:05:50 
Re: Question about a programme
Spiros Bousbouras <spi  2008-02-19 11:49:55 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Thu Jul 24 15:16:40 CDT 2008.