<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.vital-soft.com/index.php?action=history&amp;feed=atom&amp;title=AskPlus_8.4.2</id>
	<title>AskPlus 8.4.2 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.vital-soft.com/index.php?action=history&amp;feed=atom&amp;title=AskPlus_8.4.2"/>
	<link rel="alternate" type="text/html" href="https://wiki.vital-soft.com/index.php?title=AskPlus_8.4.2&amp;action=history"/>
	<updated>2026-05-04T17:24:26Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.10</generator>
	<entry>
		<id>https://wiki.vital-soft.com/index.php?title=AskPlus_8.4.2&amp;diff=2605&amp;oldid=prev</id>
		<title>&gt;Johno: Replaced content with &quot;=== AskPlus E.8.4.2 ===

AskPlus E.8.4.2 was released in March 2017.

&#039;&#039;&#039;Highlights:&#039;&#039;&#039;
:* New date formatting options.
:* New text functions: left, right, mid, replacecha...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.vital-soft.com/index.php?title=AskPlus_8.4.2&amp;diff=2605&amp;oldid=prev"/>
		<updated>2018-02-02T21:14:19Z</updated>

		<summary type="html">&lt;p&gt;Replaced content with &amp;quot;=== AskPlus E.8.4.2 ===  AskPlus E.8.4.2 was released in March 2017.  &amp;#039;&amp;#039;&amp;#039;Highlights:&amp;#039;&amp;#039;&amp;#039; :* New date formatting options. :* New text functions: left, right, mid, replacecha...&amp;quot;&lt;/p&gt;
&lt;a href=&quot;https://wiki.vital-soft.com/index.php?title=AskPlus_8.4.2&amp;amp;diff=2605&amp;amp;oldid=2604&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>&gt;Johno</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.vital-soft.com/index.php?title=AskPlus_8.4.2&amp;diff=2604&amp;oldid=prev</id>
		<title>&gt;Johno at 20:38, 2 February 2018</title>
		<link rel="alternate" type="text/html" href="https://wiki.vital-soft.com/index.php?title=AskPlus_8.4.2&amp;diff=2604&amp;oldid=prev"/>
		<updated>2018-02-02T20:38:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 20:38, 2 February 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot; &gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* New text functions: left, right, mid, replacechar, purgechar, upper, lower and many more&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* New text functions: left, right, mid, replacechar, purgechar, upper, lower and many more&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Several bug fixes&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Several bug fixes&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#039;&amp;#039;&amp;#039;Instructions for Installing AskPlus:&amp;#039;&amp;#039;&amp;#039;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:[[Installing AskPlus on HPUX]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Backwards Compatibility:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Backwards Compatibility:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>&gt;Johno</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.vital-soft.com/index.php?title=AskPlus_8.4.2&amp;diff=2603&amp;oldid=prev</id>
		<title>&gt;Johno at 18:07, 1 February 2018</title>
		<link rel="alternate" type="text/html" href="https://wiki.vital-soft.com/index.php?title=AskPlus_8.4.2&amp;diff=2603&amp;oldid=prev"/>
		<updated>2018-02-01T18:07:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 18:07, 1 February 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l67&quot; &gt;Line 67:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 67:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;::* Where &amp;quot;int-date&amp;quot; is any date in internal format (usually a call to !datint)&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;::* Where &amp;quot;int-date&amp;quot; is any date in internal format (usually a call to !datint)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;::* If no format is specified, &amp;quot;CYMD&amp;quot; will be used&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;::* If no format is specified, &amp;quot;CYMD&amp;quot; will be used&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;::* New formats for displaying and converting dates:&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;div id=&amp;quot;DateFormats&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;::* New &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;date &lt;/ins&gt;formats for displaying and converting dates:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:::* The characters d (day), m (month) and y (year) have a special meaning according to the table shown below.&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:::* The characters d (day), m (month) and y (year) have a special meaning according to the table shown below.&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:::* All other characters are treated as insertion characters - see examples.&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:::* All other characters are treated as insertion characters - see examples.&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>&gt;Johno</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.vital-soft.com/index.php?title=AskPlus_8.4.2&amp;diff=2602&amp;oldid=prev</id>
		<title>&gt;Kevint at 20:03, 12 January 2018</title>
		<link rel="alternate" type="text/html" href="https://wiki.vital-soft.com/index.php?title=AskPlus_8.4.2&amp;diff=2602&amp;oldid=prev"/>
		<updated>2018-01-12T20:03:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 20:03, 12 January 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l9&quot; &gt;Line 9:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 9:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Instructions for Installing AskPlus:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Instructions for Installing AskPlus:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:[[Installing AskPlus &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Version&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:[[Installing AskPlus &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;on HPUX&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Backwards Compatibility:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Backwards Compatibility:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>&gt;Kevint</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.vital-soft.com/index.php?title=AskPlus_8.4.2&amp;diff=2601&amp;oldid=prev</id>
		<title>&gt;Johno at 21:57, 22 December 2017</title>
		<link rel="alternate" type="text/html" href="https://wiki.vital-soft.com/index.php?title=AskPlus_8.4.2&amp;diff=2601&amp;oldid=prev"/>
		<updated>2017-12-22T21:57:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 21:57, 22 December 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot; &gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;AskPlus E.8.4.2 was released in March 2017.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;AskPlus E.8.4.2 was released in March 2017.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#039;&amp;#039;&amp;#039;Highlights:&amp;#039;&amp;#039;&amp;#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:* New date formatting options.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:* New text functions: left, right, mid, replacechar, purgechar, upper, lower and many more&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:* Several bug fixes&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Instructions for Installing AskPlus:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Instructions for Installing AskPlus:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>&gt;Johno</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.vital-soft.com/index.php?title=AskPlus_8.4.2&amp;diff=2600&amp;oldid=prev</id>
		<title>&gt;Johno: Created page with &quot;=== AskPlus E.8.4.2 ===  AskPlus E.8.4.2 was released in March 2017.  &#039;&#039;&#039;Instructions for Installing AskPlus:&#039;&#039;&#039; :Installing AskPlus Version  &#039;&#039;&#039;Backwards Compatibility:&#039;&#039;...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.vital-soft.com/index.php?title=AskPlus_8.4.2&amp;diff=2600&amp;oldid=prev"/>
		<updated>2017-12-22T21:54:34Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;=== AskPlus E.8.4.2 ===  AskPlus E.8.4.2 was released in March 2017.  &amp;#039;&amp;#039;&amp;#039;Instructions for Installing AskPlus:&amp;#039;&amp;#039;&amp;#039; :&lt;a href=&quot;/index.php/Installing_AskPlus_Version&quot; title=&quot;Installing AskPlus Version&quot;&gt;Installing AskPlus Version&lt;/a&gt;  &amp;#039;&amp;#039;&amp;#039;Backwards Compatibility:&amp;#039;&amp;#039;...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=== AskPlus E.8.4.2 ===&lt;br /&gt;
&lt;br /&gt;
AskPlus E.8.4.2 was released in March 2017.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Instructions for Installing AskPlus:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:[[Installing AskPlus Version]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Backwards Compatibility:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;User Exits !isdate and !isnum:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::The return values of !isdate and !isnum have been modified and consequently &amp;#039;&amp;#039;&amp;#039;may&amp;#039;&amp;#039;&amp;#039; not be fully backwards compatible with previous versions of AskPlus.  See below for more details.&lt;br /&gt;
::Users should scan production reports to search for any occurrences of these operators prior to installing this version as the default version.  &lt;br /&gt;
::There are two options for jobs (contexts) that use these operators:&lt;br /&gt;
::*Rename !isdate(...) to !isdateorig(...) and rename !isnum(...) to !isnumorig(...), or&lt;br /&gt;
::*Modify the job (context) to use the new operators which now return True/False instead of the actual date or number.&lt;br /&gt;
::Contact support if you would like assistance with this update.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Enhancements:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Report Output to ASCII file:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:By default, Report output to an ASCII file will only fill the last page with blank lines (or a formfeed when CCTL is specified) if the file is created by Visimage, or when a trailer statement (Z1, Z2) is specified.  To force the last page to be filled with blank lines in other situations, use the FILLPAGE keyword on the OUT statement.&lt;br /&gt;
&lt;br /&gt;
  REPORT&lt;br /&gt;
  OUT=filename, DELETE, FILLPAGE&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Updated&amp;#039;&amp;#039;&amp;#039; System Variables:&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;$DQUOTE - Double Quote&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::* This variable returns the value of a &amp;#039;&amp;#039;&amp;#039;double quote&amp;#039;&amp;#039;&amp;#039; which can be used in an expression.  For example,&lt;br /&gt;
&lt;br /&gt;
  D1, $DQUOTE splice MEMBER-FILE.NAME splice $DQUOTE, 1 left&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Updated&amp;#039;&amp;#039;&amp;#039; Special Operators:&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!getval:typelen(filename.filename, parm])&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::* GetVal will strip trailing &amp;#039;&amp;#039;carriage return&amp;#039;&amp;#039; (\r) characters from a DOS formatted file (previously only &amp;#039;&amp;#039;linefeed&amp;#039;&amp;#039; (\n) chars were stripped.)&lt;br /&gt;
::* If no typelen is specified, the default return length is automatically calculated.&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!isdate(parm[, &amp;quot;format&amp;quot;])&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::* Now returns True/False (K1) if parm is a valid date.  (Previously the actual date was returned when true.)&lt;br /&gt;
::* The format is now optional.  If not specified a CYMD format is assumed.&lt;br /&gt;
::* The original version is still available with the name &amp;#039;&amp;#039;&amp;#039;!isdateorig&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!isnum(parm)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::* Now returns True/False (K1) if parm is numeric.  (Previously the return value was the actual number, or 0.)&lt;br /&gt;
::* Any numeric &amp;#039;&amp;#039;&amp;#039;parm&amp;#039;&amp;#039;&amp;#039; returns True&lt;br /&gt;
::* An ASCII value that contains only digits and optional sign and decimal point returns True.&lt;br /&gt;
:::(At least one digit is required.)&lt;br /&gt;
::* The original version is still available with the name &amp;#039;&amp;#039;&amp;#039;!isnumorig&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!getstr(str, &amp;quot;off, len&amp;quot;) - See &amp;#039;&amp;#039;&amp;#039;!mid&amp;#039;&amp;#039;&amp;#039; (below)&lt;br /&gt;
::* Len is no longer required, default is the rest of the str (starting at off).&lt;br /&gt;
::* Offset can be passed as a numeric value (since len is no longer required).&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!datint(date, [&amp;quot;format&amp;quot;])&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::* If no format is specified, &amp;quot;CYMD&amp;quot; will be used&lt;br /&gt;
::* When converting dates, !datint now supports the formatting characters &amp;#039;-&amp;#039; and &amp;#039;/&amp;#039;, if the specified format is one of CYMD, YMD, MDCY, MDY, DMCY and DMY.  For example:  &amp;quot;3/15/2016&amp;quot; and &amp;quot;9/9/2009&amp;quot; can be converted using the format &amp;quot;MDCY&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!datext(int-date, [&amp;quot;format&amp;quot;])&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::* Where &amp;quot;int-date&amp;quot; is any date in internal format (usually a call to !datint)&lt;br /&gt;
::* If no format is specified, &amp;quot;CYMD&amp;quot; will be used&lt;br /&gt;
::* New formats for displaying and converting dates:&lt;br /&gt;
:::* The characters d (day), m (month) and y (year) have a special meaning according to the table shown below.  &lt;br /&gt;
:::* All other characters are treated as insertion characters - see examples.  &lt;br /&gt;
:::* When DDD, DDDD, MMM or MMMM appear in all caps, the corresponding name will also be all upper case.  &lt;br /&gt;
:::: (Any other combination will display the day/month name using initial caps.  Case has no meaning for d, dd, m, mm, yy and yyyy.)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: 80px;&amp;quot;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Format Chars&amp;#039;&amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;Meaning&amp;#039;&amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039; Output Length&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| d, dd || Day of month || One or two digits. (dd is always two).&lt;br /&gt;
|-&lt;br /&gt;
| ddd, dddd || Day name || Three chars (ddd) or full name (dddd). &lt;br /&gt;
|-&lt;br /&gt;
| m, mm || Month number || One or two digits. (mm is always two).&lt;br /&gt;
|-&lt;br /&gt;
| mmm, mmmm || Month name || Three chars (mmm) or full name (mmmm). &lt;br /&gt;
|-&lt;br /&gt;
| yy, yyyy || Year || Two digits (yy) or four (yyyy).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
::*Examples:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: 80px;&amp;quot;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Date Value&amp;#039;&amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;Format&amp;#039;&amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039; Result&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| 20160704 || &amp;quot;mm/dd/yyyy&amp;quot; || 07/04/2016&lt;br /&gt;
|-&lt;br /&gt;
| 20160704 || &amp;quot;dd-MMM&amp;quot; || 04-JUL&lt;br /&gt;
|-&lt;br /&gt;
| 20160704 || &amp;quot;d-m-yy&amp;quot; || 4-7-16&lt;br /&gt;
|-&lt;br /&gt;
| 20160714 || &amp;quot;ddd mmmm d, yyyy&amp;quot; || Thu July 14, 2016&lt;br /&gt;
|-&lt;br /&gt;
| 20160714 || &amp;quot;DDDD MMMM DD, YY&amp;quot; || THURSDAY JULY 14, 16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
::*For CYMD dates, these formats can be used as print formats (Visimage &amp;amp; AskPlus) and with &amp;#039;&amp;#039;&amp;#039;!format()&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;New&amp;#039;&amp;#039;&amp;#039; Special Operators:&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!uniqueid(number)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::* Returns a unique ID based on the input number, example: !uniqueid(member-file.account)&lt;br /&gt;
::* The generated ID is guaranteed to be unique and repeatable&lt;br /&gt;
::* The calculation of the unique ID is mathematically reversible, however, no reverse function is provided and the algorithm is not documented&lt;br /&gt;
::* This function will be useful if you want to provide a 3rd party a unique identifier for a member without disclosing the member&amp;#039;s actual account number&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!iseven(parm)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::* Similar to &amp;#039;&amp;#039;&amp;#039;!even&amp;#039;&amp;#039;&amp;#039;, except &amp;#039;&amp;#039;&amp;#039;!iseven&amp;#039;&amp;#039;&amp;#039; returns True/False (1/0), not 1 and -1.&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!isint(parm)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::* Similar to &amp;#039;&amp;#039;&amp;#039;!isnum&amp;#039;&amp;#039;&amp;#039; returns True/False (K1) if parm is &amp;#039;&amp;#039;&amp;#039;integer&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
::* If &amp;#039;&amp;#039;&amp;#039;parm&amp;#039;&amp;#039;&amp;#039; is type E or R - return False&lt;br /&gt;
::* If parm is any other numeric type - return True&lt;br /&gt;
::* An ASCII value that contains only digits and an optional sign returns True.&lt;br /&gt;
:::(At least one digit is required.)&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!mid(str, &amp;quot;off[,len]&amp;quot;)&amp;#039;&amp;#039;&amp;#039; - return a substring (see note)&lt;br /&gt;
::* Return the &amp;#039;&amp;#039;&amp;#039;middle&amp;#039;&amp;#039;&amp;#039; part of &amp;#039;&amp;#039;&amp;#039;str&amp;#039;&amp;#039;&amp;#039; for the specified &amp;#039;&amp;#039;&amp;#039;off&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;len&amp;#039;&amp;#039;&amp;#039;. (&amp;#039;&amp;#039;&amp;#039;off&amp;#039;&amp;#039;&amp;#039; is 1 based.)&lt;br /&gt;
::* If the &amp;#039;&amp;#039;&amp;#039;len&amp;#039;&amp;#039;&amp;#039; is not specified, the remainder of &amp;#039;&amp;#039;&amp;#039;str&amp;#039;&amp;#039;&amp;#039; is returned (starting at &amp;#039;&amp;#039;&amp;#039;off&amp;#039;&amp;#039;&amp;#039;.)&lt;br /&gt;
::* Functionally equivalent to &amp;#039;&amp;#039;&amp;#039;!getsr()&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!left(str, len)&amp;#039;&amp;#039;&amp;#039; - return the &amp;#039;&amp;#039;&amp;#039;first&amp;#039;&amp;#039;&amp;#039; len characters of a string (see note)&lt;br /&gt;
::* Return the &amp;#039;&amp;#039;&amp;#039;left&amp;#039;&amp;#039;&amp;#039; part of &amp;#039;&amp;#039;&amp;#039;str&amp;#039;&amp;#039;&amp;#039; for the specified &amp;#039;&amp;#039;&amp;#039;len&amp;#039;&amp;#039;&amp;#039; (off = 1).&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!right(str, len)&amp;#039;&amp;#039;&amp;#039; - return the &amp;#039;&amp;#039;&amp;#039;last&amp;#039;&amp;#039;&amp;#039; len characters of a string. (see note)&lt;br /&gt;
::* Return the &amp;#039;&amp;#039;&amp;#039;right&amp;#039;&amp;#039;&amp;#039; part of &amp;#039;&amp;#039;&amp;#039;str&amp;#039;&amp;#039;&amp;#039; for the specified &amp;#039;&amp;#039;&amp;#039;len&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
::* Trailing blanks are counted.  Use !right(!rtrim(str), len) to eliminate trailing blanks.&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;Special note&amp;#039;&amp;#039;&amp;#039; for !mid, !left &amp;amp; !right:&lt;br /&gt;
::In most cases the first parm will be an ASCII (string) value, however, these operators will accept numeric values.  The value will be converted to a character string and then the appropriate chars will be extracted.&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!trim(str)&amp;#039;&amp;#039;&amp;#039; - return a  trimmed string&lt;br /&gt;
::* Trim leading &amp;amp; trailing blanks (and control characters &amp;lt; BLANK) from &amp;#039;&amp;#039;&amp;#039;str&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!ltrim(str)&amp;#039;&amp;#039;&amp;#039; - return a trimmed string&lt;br /&gt;
::* Trim all leading (left) blanks (and control characters &amp;lt; BLANK) from &amp;#039;&amp;#039;&amp;#039;str&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!rtrim(str)&amp;#039;&amp;#039;&amp;#039; - return a trimmed string&lt;br /&gt;
::* Trim all trailing (right) blanks (and control characters &amp;lt; BLANK) from &amp;#039;&amp;#039;&amp;#039;str&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!upper(str)&amp;#039;&amp;#039;&amp;#039; - return an upshifted string&lt;br /&gt;
::* &amp;#039;&amp;#039;&amp;#039;Upshift&amp;#039;&amp;#039;&amp;#039; all characters in &amp;#039;&amp;#039;&amp;#039;str&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
::* Functionally equivalent to &amp;#039;&amp;#039;&amp;#039;!shift(str, &amp;quot;U&amp;quot;)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!lower(str)&amp;#039;&amp;#039;&amp;#039; - return an downshifted string&lt;br /&gt;
::* &amp;#039;&amp;#039;&amp;#039;Downshift&amp;#039;&amp;#039;&amp;#039; all characters in &amp;#039;&amp;#039;&amp;#039;str&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
::* Functionally equivalent to &amp;#039;&amp;#039;&amp;#039;!shift(str, &amp;quot;D&amp;quot;)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!initcap(str)&amp;#039;&amp;#039;&amp;#039; - return an string using InitCap logic&lt;br /&gt;
::* &amp;#039;&amp;#039;&amp;#039;Upshift&amp;#039;&amp;#039;&amp;#039; the first character after each non letter in &amp;#039;&amp;#039;&amp;#039;str&amp;#039;&amp;#039;&amp;#039;  (Downshift all of the other characters.)&lt;br /&gt;
::* Similar to &amp;#039;&amp;#039;&amp;#039;!shift(str, &amp;quot;I&amp;quot;)&amp;#039;&amp;#039;&amp;#039;, except shift only upshifts after a BLANK, whereas initcap upshifts after every non alpha character.&lt;br /&gt;
&lt;br /&gt;
        !initcap(&amp;quot;PATRICK O&amp;#039;BRIEN&amp;quot;) = &amp;quot;Patrick O&amp;#039;Brien&amp;quot;&lt;br /&gt;
        !shift(&amp;quot;PATRICK O&amp;#039;BRIEN&amp;quot;, &amp;quot;I&amp;quot;) = &amp;quot;Patrick O&amp;#039;brien&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!keepchar(str, chars)&amp;#039;&amp;#039;&amp;#039; - return a string &amp;#039;&amp;#039;&amp;#039;keeping&amp;#039;&amp;#039;&amp;#039; only certain chars&lt;br /&gt;
::* Parse &amp;#039;&amp;#039;&amp;#039;str&amp;#039;&amp;#039;&amp;#039; and only &amp;#039;&amp;#039;&amp;#039;keep&amp;#039;&amp;#039;&amp;#039; the characters present in &amp;#039;&amp;#039;&amp;#039;chars&amp;#039;&amp;#039;&amp;#039; (all other characters are &amp;#039;&amp;#039;&amp;#039;purged&amp;#039;&amp;#039;&amp;#039;.)&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!purgechar(str, chars)&amp;#039;&amp;#039;&amp;#039; - return a string &amp;#039;&amp;#039;&amp;#039;purging&amp;#039;&amp;#039;&amp;#039; certain chars&lt;br /&gt;
::* Parse &amp;#039;&amp;#039;&amp;#039;str&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;purge/drop&amp;#039;&amp;#039;&amp;#039; any characters present in &amp;#039;&amp;#039;&amp;#039;chars&amp;#039;&amp;#039;&amp;#039; (all other characters are &amp;#039;&amp;#039;&amp;#039;kept&amp;#039;&amp;#039;&amp;#039;.)&lt;br /&gt;
&lt;br /&gt;
        !purgechar(NAME, &amp;quot;&amp;quot;&amp;quot;&amp;#039;&amp;quot;)  will purge all double and single quotes in NAME.&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!replacechar(str, &amp;quot;c1c2&amp;quot;)&amp;#039;&amp;#039;&amp;#039; - return a string replacing chars&lt;br /&gt;
::* Parse &amp;#039;&amp;#039;&amp;#039;str&amp;#039;&amp;#039;&amp;#039; and replace all occurrences of &amp;#039;&amp;#039;&amp;#039;c1&amp;#039;&amp;#039;&amp;#039; with &amp;#039;&amp;#039;&amp;#039;c2&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
::* Only the first two characters of parm2 are used.&lt;br /&gt;
&lt;br /&gt;
        !replacechar(NAME, &amp;quot;&amp;quot;&amp;quot;&amp;#039;&amp;quot;)  will replace all double quotes in NAME with a single quote.&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!minval(parm1, parm2)&amp;#039;&amp;#039;&amp;#039; - return the min value using a &amp;#039;&amp;#039;&amp;#039;numeric&amp;#039;&amp;#039;&amp;#039; comparison&lt;br /&gt;
::* Return the smaller value (numerically) between &amp;#039;&amp;#039;&amp;#039;parm1&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;parm2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::* Any ASCII parms are converted to R4 before the compare is done.&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!maxval(parm1, parm2)&amp;#039;&amp;#039;&amp;#039; - return the max value using a &amp;#039;&amp;#039;&amp;#039;numeric&amp;#039;&amp;#039;&amp;#039; comparison&lt;br /&gt;
::* Return the larger value (numerically) between &amp;#039;&amp;#039;&amp;#039;parm1&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;parm2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::* Any ASCII parms are converted to R4 before the compare is done.&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!minstring(parm1, parm2)&amp;#039;&amp;#039;&amp;#039; - return the min value using a &amp;#039;&amp;#039;&amp;#039;string/ASCII&amp;#039;&amp;#039;&amp;#039; comparison&lt;br /&gt;
::* Return the smaller value (using a string comparison) between &amp;#039;&amp;#039;&amp;#039;parm1&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;parm2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::* Any numeric parms are converted to ASCII before the compare is done.&lt;br /&gt;
&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;!maxstring(parm1, parm2)&amp;#039;&amp;#039;&amp;#039; - return the max value using a &amp;#039;&amp;#039;&amp;#039;string/ASCII&amp;#039;&amp;#039;&amp;#039; comparison&lt;br /&gt;
::* Return the larger value (using a string comparison) between &amp;#039;&amp;#039;&amp;#039;parm1&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;parm2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::* Any numeric parms are converted to ASCII before the compare is done.&lt;br /&gt;
&lt;br /&gt;
:* New &amp;#039;&amp;#039;&amp;#039;Formats&amp;#039;&amp;#039;&amp;#039; (Edit Mask) for &amp;#039;&amp;#039;&amp;#039;Dates&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
::* For dates stored in CYMD format the new &amp;#039;&amp;#039;&amp;#039;!Datext&amp;#039;&amp;#039;&amp;#039; formats described above can be used directly as a print format.&lt;br /&gt;
::* These formats are valid in Visimage3 and on AskPlus print statements and with the &amp;#039;&amp;#039;&amp;#039;!format()&amp;#039;&amp;#039;&amp;#039; operator.&lt;br /&gt;
::* If dates are stored in a format other than CYMD, a combination of !datint and !datext is still necessary.&lt;br /&gt;
&lt;br /&gt;
         D1, LOAN-FILE.DUE-DATE, &amp;quot;Ddd Mmmm d, yyyy&amp;quot;, tab1&lt;br /&gt;
&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Fixes:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:* Fix a bug in &amp;#039;&amp;#039;&amp;#039;!cymd-diff-mths&amp;#039;&amp;#039;&amp;#039; - The wrong number of months could be calculated when one of the dates was eom.&lt;br /&gt;
:* Fix &amp;#039;&amp;#039;&amp;#039;Convert Bug&amp;#039;&amp;#039;&amp;#039; (Float to Int), for example, &amp;quot;67.71&amp;quot; * 100 did not work.  &lt;br /&gt;
:: In a few instances, reading a float from an ASCII file and converting to INT had a rounding error in earlier releases.&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;Limit&amp;#039;&amp;#039;&amp;#039; warning messages in the selection to print a maximum of 50 times.&lt;br /&gt;
:: Previously available in Report/Save, now also in Find.&lt;br /&gt;
:* Modify &amp;#039;&amp;#039;&amp;#039;!isnum()&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;!isdate()&amp;#039;&amp;#039;&amp;#039; to return True/False (K1) instead of attempting to return a numeric value&lt;br /&gt;
::* Previous versions of &amp;#039;&amp;#039;&amp;#039;!isnum&amp;#039;&amp;#039;&amp;#039; returned inconsistent results&lt;br /&gt;
::* For backwards compatibility rename the original versions as &amp;#039;&amp;#039;&amp;#039;!isnumorig()&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;!isdateorig()&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
:* Fix &amp;#039;&amp;#039;&amp;#039;!Even()&amp;#039;&amp;#039;&amp;#039; on Itanium.&lt;br /&gt;
:* Fix a core dump when opening SD or INDEXED files with missing files or inconsistent access permissions&lt;br /&gt;
:* Fix a core dump when the select file cannot be created.&lt;/div&gt;</summary>
		<author><name>&gt;Johno</name></author>
		
	</entry>
</feed>