-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmf__getvarlen_8sas_source.html
132 lines (129 loc) · 12.1 KB
/
mf__getvarlen_8sas_source.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<!-- HTML header for doxygen 1.8.14-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MacroCore: base/mf_getvarlen.sas Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link REL="icon" HREF="https://sasjs.io/img/runningman.jpg">
<link href="new_stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea" style='background-color:white' >
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 26px;">
<td id="projectlogo"></td>
<td>
<div id="projectname">
<!--a href=".">
<img alt="Macro Core" src="https://macropeople.com/wp-content/uploads/2018/05/macropeople2014retina_V2.png" height=60/>
</a-->
<a href=".">
<img alt="Macro Core" src="./Macro_core_website_1.png" height=60/>
</a>
</div>
</td>
<td>
<table style="padding-left: 2em;" cellspacing="0" cellpadding="0">
<tr><td> Production Ready Macros for SAS Application Developers</td></tr>
<tr><td><a href="https://github.com/macropeople/macrocore">
https://github.com/macropeople/macrocore
</a></td></tr>
</table>
</td>
<div class="header">
<div class="headertitle">
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('mf__getvarlen_8sas_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">mf_getvarlen.sas</div> </div>
</div><!--header-->
<div class="contents">
<a href="mf__getvarlen_8sas.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/**</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> @file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> @brief Returns the length of a variable</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> @details Uses varlen function to identify the length of a particular variable.</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> Usage:</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"></span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> data test;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> format str $1. num datetime19.;</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> stop;</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> run;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> %put %mf_getVarLen(test,str);</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> %put %mf_getVarLen(work.test,num);</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> %put %mf_getVarLen(test,renegade);</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"></span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> returns:</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> 1</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> 8</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> NOTE: Variable renegade does not exist in test</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> @param libds Two part dataset (or view) reference.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> @param var Variable name for which a length should be returned</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> @returns outputs length</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> @author Allan Bowe</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> @version 9.2</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">**/</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> %macro mf_getVarLen(libds <span class="comment">/* two level ds name */</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  , var <span class="comment">/* variable name from which to return the length */</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> )<span class="comment">/*/STORE SOURCE*/</span>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  %local dsid vnum vlen rc;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="comment">/* Open dataset */</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  %let dsid = %sysfunc(open(&libds));</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  %<span class="keywordflow">if</span> &dsid > 0 %then %<span class="keywordflow">do</span>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="comment">/* Get variable number */</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  %let vnum = %sysfunc(varnum(&dsid, &var));</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="comment">/* Get variable format */</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  %<span class="keywordflow">if</span>(&vnum > 0) %then %let vlen = %sysfunc(varlen(&dsid, &vnum));</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  %<span class="keywordflow">else</span> %<span class="keywordflow">do</span>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  %put NOTE: Variable &var does not exist in &libds;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  %let vlen = %str( );</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  %end;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  %end;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  %<span class="keywordflow">else</span> %put dataset &libds not opened! (rc=&dsid);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="comment">/* Close dataset */</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  %let rc = %sysfunc(<a class="code" href="namespaceclose.html">close</a>(&dsid));</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="comment">/* Return variable format */</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  &vlen</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> %mend;</div></div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<li class="footer"><b>Generated by</b>
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a>
<i> For more information visit the </i> <a href="https://github.com/macropeople/macrocore">macropeople MacroCore library</a>.</li>
</ul>
</div>
</body>
</html>