|
|
|
|
@@ -9,22 +9,22 @@
|
|
|
|
|
### Version information:
|
|
|
|
|
|
|
|
|
|
- Package: BasePlus
|
|
|
|
|
- Version: 2.1.0
|
|
|
|
|
- Generated: 2024-09-09T12:55:04
|
|
|
|
|
- Version: 2.4.0
|
|
|
|
|
- Generated: 2025-08-07T17:06:16
|
|
|
|
|
- Author(s): Bartosz Jablonski (yabwon@gmail.com), Quentin McMullen (qmcmullen@gmail.com)
|
|
|
|
|
- Maintainer(s): Bartosz Jablonski (yabwon@gmail.com)
|
|
|
|
|
- License: MIT
|
|
|
|
|
- File SHA256: `F*DFA83F8E0D7424DEB63D49620392068BC68D766552E2804CB6B01DE8E5A87769` for this version
|
|
|
|
|
- Content SHA256: `C*AB16F5B6538515607C3C254E401DC1ACA7293AB36990227F6E7792145CEEAB87` for this version
|
|
|
|
|
- File SHA256: `F*19FE220C82DE4B9990B4AC352A9D9DEF5FAF2FD601BE756B2F3A2AC39CDAF381` for this version
|
|
|
|
|
- Content SHA256: `C*83DEF0C93481B1C77494531E5CE9F8EB8E4C15AB3CC48D1E9C0223C13A84DB3F` for this version
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
# The `BasePlus` package, version: `2.1.0`;
|
|
|
|
|
# The `BasePlus` package, version: `2.4.0`;
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# The BasePlus package [ver. 2.1.0] <a name="baseplus-package"></a> ###############################################
|
|
|
|
|
# The BasePlus package [ver. 2.4.0] <a name="baseplus-package"></a> ###############################################
|
|
|
|
|
|
|
|
|
|
The **BasePlus** package implements useful
|
|
|
|
|
functions and functionalities I miss in the BASE SAS.
|
|
|
|
|
@@ -403,7 +403,7 @@ localization (only if additional content was deployed during the installation pr
|
|
|
|
|
|
|
|
|
|
--------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
*SAS package generated by SAS Package Framework, version `20240711`*
|
|
|
|
|
*SAS package generated by SAS Package Framework, version `20250729`*
|
|
|
|
|
|
|
|
|
|
--------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
@@ -838,6 +838,7 @@ The basic syntax is the following, the `<...>` means optional parameters:
|
|
|
|
|
<,longFormat=>
|
|
|
|
|
<,fileExt=>
|
|
|
|
|
<,maxDepth=>
|
|
|
|
|
<,backslashSens=>
|
|
|
|
|
)
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
@@ -868,6 +869,11 @@ The basic syntax is the following, the `<...>` means optional parameters:
|
|
|
|
|
* `maxDepth=0` - *Optional*, if not zero then indicates
|
|
|
|
|
maximum depth of search in the root path.
|
|
|
|
|
|
|
|
|
|
* `backslashSens=0` - *Optional*, if not zero then it indicates
|
|
|
|
|
that backslash(`\`) symbol in files and dirs
|
|
|
|
|
names is detectable under Linux. Accepted
|
|
|
|
|
values: `0` and `1`. Ignored under Windows.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### EXAMPLES AND USECASES: ####################################################
|
|
|
|
|
|
|
|
|
|
@@ -989,7 +995,12 @@ The QgetVars() returns quoted value [by %superq()].
|
|
|
|
|
|
|
|
|
|
See examples below for the details.
|
|
|
|
|
|
|
|
|
|
The `%getVars()` macro executes like a pure macro code.
|
|
|
|
|
When `mcArray=` is not used the `%getVars()` macro executes like
|
|
|
|
|
a pure macro code. When `mcArray=` is not null (creation of a
|
|
|
|
|
macro variable array is requested) them a single semicolon is returned.
|
|
|
|
|
|
|
|
|
|
When `validvarname=ANY` in set special care should be kept.
|
|
|
|
|
See dedicated examples below.
|
|
|
|
|
|
|
|
|
|
### SYNTAX: ###################################################################
|
|
|
|
|
|
|
|
|
|
@@ -1003,6 +1014,7 @@ The basic syntax is the following, the `<...>` means optional parameters:
|
|
|
|
|
<,quote=>
|
|
|
|
|
<,mcArray=>
|
|
|
|
|
<,ignoreCases>
|
|
|
|
|
<,nlit=>
|
|
|
|
|
)
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
@@ -1025,23 +1037,32 @@ The basic syntax is the following, the `<...>` means optional parameters:
|
|
|
|
|
|
|
|
|
|
* `mcArray=` - *Optional*, default value is blank.
|
|
|
|
|
1) When *null* - the macro behaves like a macro function
|
|
|
|
|
and returns a text string with variables list.
|
|
|
|
|
2) When *not null* - behaviour of the macro is altered.
|
|
|
|
|
and ban be used in the `%put` or `%let=` statements.
|
|
|
|
|
The returned text is a string with variables list.
|
|
|
|
|
2) When *not null* - behavior of the macro is altered.
|
|
|
|
|
In such case a macro array of selected variables, named
|
|
|
|
|
with `mcArray` value as a prefix, is created.
|
|
|
|
|
Furthermore a macro named as `mcArray` value is generated.
|
|
|
|
|
(see the macroArray package for the details).
|
|
|
|
|
When `mcArray=` parameter is active the `getVars` macro
|
|
|
|
|
cannot be called within the `%put` statement. Execution like:
|
|
|
|
|
`%put %getVars(..., mcArray=XXX);` will result with
|
|
|
|
|
an Explicit & Radical Refuse Of Run (aka ERROR).
|
|
|
|
|
should not be called within the `%put` or `%let=` statements.
|
|
|
|
|
A single semicolon is produced as the macro result, hence
|
|
|
|
|
execution like: `%put %getVars(..., mcArray=XXX) some text;`
|
|
|
|
|
will result with an Explicit & Radical Refuse Of Run (aka ERROR).
|
|
|
|
|
|
|
|
|
|
* `ignoreCases=` - *Optional*, default value is 1.
|
|
|
|
|
* `ignoreCases=` - *Optional*, default value is 1.
|
|
|
|
|
Indicates if search should be case insensitive.
|
|
|
|
|
|
|
|
|
|
* `nlit=` - *Optional*, default value is 0.
|
|
|
|
|
Introduced to improve `validvarname=ANY` handling.
|
|
|
|
|
Indicates if the `NLITERAL()` function should be
|
|
|
|
|
executed to cover spacial characters.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### EXAMPLES AND USECASES: ####################################################
|
|
|
|
|
|
|
|
|
|
**When `validvarname=` option is _not_ `ANY`.**
|
|
|
|
|
|
|
|
|
|
**EXAMPLE 1.** A list of all variables from the
|
|
|
|
|
sashelp.class dataset:
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
|
|
|
|
|
@@ -1267,6 +1288,44 @@ run;
|
|
|
|
|
%put %do_over(XYZ);
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
**When the `validvarname=ANY` option is set.**
|
|
|
|
|
|
|
|
|
|
**EXAMPLE 12.** Get all variables and handle special characters.
|
|
|
|
|
Without `nlit=1` the code will fail.
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
|
|
|
|
|
options validvarname = any;
|
|
|
|
|
data varnameANY;
|
|
|
|
|
set sashelp.class(obs=3);
|
|
|
|
|
|
|
|
|
|
'A&B'n=42;
|
|
|
|
|
'space name'n=101;
|
|
|
|
|
'2025-08'n=234;
|
|
|
|
|
'2025%09'n=235;
|
|
|
|
|
"2025'10"n=236;
|
|
|
|
|
'2025"11'n=237;
|
|
|
|
|
run;
|
|
|
|
|
|
|
|
|
|
%put %getVars(varnameANY, nlit=1);
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
**EXAMPLE 13.** Create macro variable array ABC for all variables.
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
|
|
|
|
|
%getVars(varnameANY, mcArray=ABC, nlit=1);
|
|
|
|
|
%put %ABC(1) %ABC(6) %ABC(7) %ABC(11);
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
**EXAMPLE 14.** Get only variables with illegal characters in names.
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
|
|
|
|
|
%let notV7compliant = %getVars(varnameANY, pattern=[^a-z0-9_], nlit=1);
|
|
|
|
|
%put ¬V7compliant.;
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**EXAMPLE 14.** Print variables starting with a digit.
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
|
|
|
|
|
%put %getVars(varnameANY, pattern=^\d, nlit=1);
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -1929,6 +1988,11 @@ The basic syntax is the following, the `<...>` means optional parameters:
|
|
|
|
|
* `ignoreCases=` - *Optional*, default value is 1.
|
|
|
|
|
Indicates if search should be case insensitive.
|
|
|
|
|
|
|
|
|
|
* `nlit=` - *Optional*, default value is 0.
|
|
|
|
|
Introduced to improve `validvarname=ANY` handling.
|
|
|
|
|
Indicates if the `NLITERAL()` function should be
|
|
|
|
|
executed to cover spacial characters.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### EXAMPLES AND USECASES: ####################################################
|
|
|
|
|
|
|
|
|
|
@@ -6395,7 +6459,7 @@ The basic syntax is the following, the `<...>` means optional parameters:
|
|
|
|
|
|
|
|
|
|
3. `false` - *Required*, value returned when condition is false.
|
|
|
|
|
|
|
|
|
|
4 `v=` - *Optional*, v for verbose. If set to `1` extra notes
|
|
|
|
|
* `v=` - *Optional*, v for verbose. If set to `1` extra notes
|
|
|
|
|
are printed.
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
@@ -7598,7 +7662,7 @@ The basic syntax is the following, the `<...>` means optional parameters:
|
|
|
|
|
|
|
|
|
|
# License <a name="license"></a> ######
|
|
|
|
|
|
|
|
|
|
Copyright (c) 2020 - 2024 Bartosz Jablonski
|
|
|
|
|
Copyright (c) 2020 - 2025 Bartosz Jablonski
|
|
|
|
|
|
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
|
|
of this software and associated documentation files (the "Software"), to deal
|
|
|
|
|
|