Search                        Top                                  Index
HELP VEDBLOCKREPEATER                                  A.Sloman Dec 1989

vedblockrepeater(<vector of strings>) -> <procedure>

Given a vector of strings all of the same length, such as might be
produced by * VEDCUTBLOCK, this returns a procedure that is a character
repeater for those strings.

An example of its use might be a procedure to add up all the numbers in
a given text block, assuming that ved_stb copies the text block
indicated by the top two stacked positions and saves it in
vvedblockdump.

lib vedblocks;  ;;; make ved_stb available

define ved_addblock;
    ;;; Add up the numbers in the block between two stacked positions and
    ;;; print total to right of the current position of the cursor
    lvars num, total = 0, procedure items;
    ;;; Copy block of text between stacked positions
    ved_stb();
    incharitem(vedblockrepeater(vvedblockdump)) -> items;
    repeat
        items() -> num;
    quitif(num == termin);
        if isnumber(num) then num + total -> total endif;
    endrepeat;
    dlocal cucharout = vedcharinsert;   ;;; printing goes in VED buffer
    pr(' = ');
    pr(total)
enddefine;

After this the has been compiled the command

    <ENTER> addblock

will add up all the numbers between two stacked positions, and will
print on the current VED cursor line "=" and the number.

See also
HELP * VEDBLOCKS
HELP * VEDCUTBLOCK

--- C.all/help/vedblockrepeater
--- Copyright University of Sussex 1991. All rights reserved. ----------