-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmf__wordsinstr1butnotstr2_8sas_source.html
132 lines (129 loc) · 12.1 KB
/
mf__wordsinstr1butnotstr2_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_wordsinstr1butnotstr2.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__wordsinstr1butnotstr2_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_wordsinstr1butnotstr2.sas</div> </div>
</div><!--header-->
<div class="contents">
<a href="mf__wordsinstr1butnotstr2_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 words that are in string 1 but not in string 2</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> @details Compares two space separated strings and returns the words that are</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> in the first but not in the second.</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> Usage:</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"></span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> %let x= %mf_wordsInStr1ButNotStr2(</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> Str1=blah sss blaaah brah bram boo</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> ,Str2= blah blaaah brah ssss</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> );</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"></span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> returns:</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> > sss bram boo</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"></span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> @param str1= string containing words to extract</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> @param str2= used to compare with the extract string</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> @warning CASE SENSITIVE!</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"> @version 9.2</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> @author Allan Bowe</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"></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> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> %macro mf_wordsInStr1ButNotStr2(</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  Str1= <span class="comment">/* string containing words to extract */</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  ,Str2= <span class="comment">/* used to compare with the extract string */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> )<span class="comment">/*/STORE SOURCE*/</span>;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> %local count_base count_extr i i2 extr_word base_word match outvar;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> %<span class="keywordflow">if</span> %length(&str1)=0 or %length(&str2)=0 %then %<span class="keywordflow">do</span>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  %put WARNING: empty <span class="keywordtype">string</span> provided!;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  %put base string (str1)= &str1;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  %put compare string (str2) = &str2;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  %<span class="keywordflow">return</span>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> %end;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> %let count_base=%sysfunc(countw(&Str2));</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> %let count_extr=%sysfunc(countw(&Str1));</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> %<span class="keywordflow">do</span> i=1 %to &count_extr;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  %let extr_word=%scan(&Str1,&i,%str( ));</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  %let match=0;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  %<span class="keywordflow">do</span> i2=1 %to &count_base;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  %let base_word=%scan(&Str2,&i2,%str( ));</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  %<span class="keywordflow">if</span> &extr_word=&base_word %then %let match=1;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  %end;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  %<span class="keywordflow">if</span> &match=0 %then %let outvar=&outvar &extr_word;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> %end;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  &outvar</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> %mend;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </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>