table delete selected rows

Prev Next

Function Names

table delete selected rows

Description

This function deletes all rows where the expression to select rows applies. The header row will be protected from getting deleted.

Call as: procedure or function

Restrictions

Indirect parameter passing is disabled
This function provides a table context for partial table specifications with table name and row number for selected function parameters

Parameter count

2 - 4

Parameters

No.TypeDescription
1.
input
string Name of existing table

2.
code
expression
:string
Expression to select rows

Specify the conditions or rules to select the rows. See expressions to select rows.
The table context for partial table specifications is available for referencing just the columns easily. Example: [Year]>=2022.
Attention: Comparison operators = and <> (instead of == and !=) may hijack the next function parameters for its own use as additional comparison operands, e.g. a[]=1,3,5. As long this comparison is not made in the last function parameter, then put parentheses around them, e.g. ... , (a[]=1,3,5), ....

Opt. 3.
input
numeral Number of rows to delete

  • -2 or smaller: All remaining rows except for the last n-1 will be deleted. E.g. for -2, the last row remains. For -3, the last two rows remain.
  • -1: All remaining rows will be deleted. Checking the remaining rows to delete will be skipped as this is no longer necessaryu
  • 0: No rows will be deleted
  • 1: Affected row will be deleted
  • 2 or bigger: the specified number of rows below will be deleted.

Default value: 1
Opt. 4.
input
numeral Row offset value

  • 0: Start deleting on the current row
  • 1: Start deleting on the next row below
  • 2 or bigger: Start deleting on the further rows below
  • -1: Start deleting on the previous row above. If 3rd function parameter is negative, then the specified number of rows above will be deleted.
  • -2 or smaller: Start deleting 2 or further rows above. If 3rd function parameter is negative, then the specified number of rows above will be deleted.

Default value: 0

Return value

TypeDescription
numeral Number of rows deleted

Number of rows deleted. -1 is returned if table is empty.

Examples

       table initialize ( table 1,
       { { Animal, leg count }, { Worm,  0}, { Bird, 2 }, { Dog, 4 }, { Fly, 6 }, { Tick, 8 } } );

       table copy table( table 1, t1 );
       echo("Delete 2 rows: Bird and Tick.");
       table delete selected rows( t1, ([Animal]='*i*') ); // Bird, Tick
       table list( t1 ); // Only Dog and Fly are left

       echo("Dog will also be deleted:");
       table copy table( table 1, t1 );
       table delete selected rows( t1, ([Animal]='*i*'), 2 ); // Bird, Tick, Dog deleted
       table list( t1 ); // Only Dog and Fly are left

       echo("Delete animal above Dog and Worm:");
       table copy table( table 1, t1 );
       table delete selected rows( t1, ([Animal]='*o*'), 1, -2 ); // Rows above Worm, Dog
       table list( t1 ); // Only Dog and Fly are left

Output

Delete 2 rows: Bird and Tick.
    0 : Animal | leg count
    1 : Worm   | 0        
    2 : Dog    | 4        
    3 : Fly    | 6        

Dog will also be deleted:
    0 : Animal | leg count
    1 : Worm   | 0        
    2 : Fly    | 6        

Delete animal above Dog and Worm:
    0 : Animal | leg count
    1 : Worm   | 0        
    2 : Dog    | 4        
    3 : Fly    | 6        
    4 : Tick   | 8        

Try it yourself: Open LIB_Function_table_delete_selected_rows.b4p in B4P_Examples.zip. Decompress before use.

See also

table delete rows
table keep selected rows