http://www.usf.uos.de/infoservice/doc/

(gawk.info)Multi-scanning


Prev: Multi-dimensional Up: Arrays
Enter node , (file) or (file)node

Scanning Multi-dimensional Arrays
=================================

   There is no special `for' statement for scanning a
"multi-dimensional" array; there cannot be one, because in truth there
are no multi-dimensional arrays or elements; there is only a
multi-dimensional *way of accessing* an array.

   However, if your program has an array that is always accessed as
multi-dimensional, you can get the effect of scanning it by combining
the scanning `for' statement (*note Scanning All Elements of an Array:
Scanning an Array.) with the `split' built-in function (Note: Built-in
Functions for String Manipulation.).  It works like
this:

     for (combined in array) {
       split(combined, separate, SUBSEP)
       ...
     }

This sets `combined' to each concatenated, combined index in the array,
and splits it into the individual indices by breaking it apart where
the value of `SUBSEP' appears.  The split-out indices become the
elements of the array `separate'.

   Thus, suppose you have previously stored a value in `array[1,
"foo"]'; then an element with index `"1\034foo"' exists in `array'.
(Recall that the default value of `SUBSEP' is the character with code
034.)  Sooner or later the `for' statement will find that index and do
an iteration with `combined' set to `"1\034foo"'.  Then the `split'
function is called as follows:

     split("1\034foo", separate, "\034")

The result of this is to set `separate[1]' to `"1"' and `separate[2]'
to `"foo"'.  Presto, the original sequence of separate indices has been
recovered.


Prev: Multi-dimensional Up: Arrays
[ Dokumentation lokal installierter Software ]