<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic re-use standard application code? in Discussions</title>
    <link>https://community.jmp.com/t5/Discussions/re-use-standard-application-code/m-p/577393#M78491</link>
    <description>&lt;P&gt;Is the Application code behind&amp;nbsp;&lt;STRONG&gt;standard dialogues&amp;nbsp;&lt;/STRONG&gt;available from the JMP installation?&lt;/P&gt;&lt;P&gt;Can I edit it in Application Builder?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Possible use case:&lt;BR /&gt;To use the same kind of file selector like in &lt;STRONG&gt;Import Multiple Files&lt;/STRONG&gt;, but to load files different from CSV/XMLJSON/PDF.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 09 Jun 2023 16:03:52 GMT</pubDate>
    <dc:creator>hogi</dc:creator>
    <dc:date>2023-06-09T16:03:52Z</dc:date>
    <item>
      <title>re-use standard application code?</title>
      <link>https://community.jmp.com/t5/Discussions/re-use-standard-application-code/m-p/577393#M78491</link>
      <description>&lt;P&gt;Is the Application code behind&amp;nbsp;&lt;STRONG&gt;standard dialogues&amp;nbsp;&lt;/STRONG&gt;available from the JMP installation?&lt;/P&gt;&lt;P&gt;Can I edit it in Application Builder?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Possible use case:&lt;BR /&gt;To use the same kind of file selector like in &lt;STRONG&gt;Import Multiple Files&lt;/STRONG&gt;, but to load files different from CSV/XMLJSON/PDF.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 09 Jun 2023 16:03:52 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/re-use-standard-application-code/m-p/577393#M78491</guid>
      <dc:creator>hogi</dc:creator>
      <dc:date>2023-06-09T16:03:52Z</dc:date>
    </item>
    <item>
      <title>Re: re-use standard application code?</title>
      <link>https://community.jmp.com/t5/Discussions/re-use-standard-application-code/m-p/577448#M78494</link>
      <description>&lt;P&gt;No, that is compiled code and proprietary. You can construct your dialog window. It is documented in the &lt;A href="https://www.jmp.com/support/help/en/17.0/#page/jmp/display-trees.shtml#" target="_self"&gt;JSL Guide&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can also submit a request for an enhancement to the Import Multiple File command to accommodate another file format.&lt;/P&gt;</description>
      <pubDate>Mon, 05 Dec 2022 16:05:46 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/re-use-standard-application-code/m-p/577448#M78494</guid>
      <dc:creator>Mark_Bailey</dc:creator>
      <dc:date>2022-12-05T16:05:46Z</dc:date>
    </item>
    <item>
      <title>Re: re-use standard application code?</title>
      <link>https://community.jmp.com/t5/Discussions/re-use-standard-application-code/m-p/577649#M78522</link>
      <description>&lt;P&gt;I just found this post by&amp;nbsp;&lt;a href="https://community.jmp.com/t5/user/viewprofilepage/user-id/982"&gt;@Craige_Hales&lt;/a&gt;&amp;nbsp;:&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.jmp.com/t5/Uncharted/Directory-Tree-Explore-Space-Used-by-Folders/ba-p/456571#U456571" target="_blank"&gt;https://community.jmp.com/t5/Uncharted/Directory-Tree-Explore-Space-Used-by-Folders/ba-p/456571#U456571&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Cool trick: pipe your settings as messages&amp;nbsp;into &lt;STRONG&gt;MFI&lt;/STRONG&gt; and get the filelist via&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;boxtop = mfi &amp;lt;&amp;lt; createwindow;
dtFiles = boxtop[Table Box( 1 )] &amp;lt;&amp;lt; MakeIntoDataTable( invisible( 1 ) );&lt;BR /&gt;boxtop &amp;lt;&amp;lt; closewindow;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 05 Dec 2022 21:03:16 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/re-use-standard-application-code/m-p/577649#M78522</guid>
      <dc:creator>hogi</dc:creator>
      <dc:date>2022-12-05T21:03:16Z</dc:date>
    </item>
    <item>
      <title>Re: re-use standard application code?</title>
      <link>https://community.jmp.com/t5/Discussions/re-use-standard-application-code/m-p/577985#M78554</link>
      <description>&lt;P&gt;You asked how to hook into MFI so you could use the dialog and write your code to import file formats that are not currently supported. You did not ask to get the list of files to be imported from MFI. I was confused.&lt;/P&gt;</description>
      <pubDate>Tue, 06 Dec 2022 14:49:13 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/re-use-standard-application-code/m-p/577985#M78554</guid>
      <dc:creator>Mark_Bailey</dc:creator>
      <dc:date>2022-12-06T14:49:13Z</dc:date>
    </item>
    <item>
      <title>Re: re-use standard application code?</title>
      <link>https://community.jmp.com/t5/Discussions/re-use-standard-application-code/m-p/578110#M78565</link>
      <description>&lt;P&gt;Yes, you are right.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;a href="https://community.jmp.com/t5/user/viewprofilepage/user-id/5358"&gt;@Mark_Bailey&lt;/a&gt;&amp;nbsp;You are right, my first approach was to just use the user interface of MFI and the code behind i to get the file list.&lt;/P&gt;&lt;P&gt;I learned from &lt;A href="https://community.jmp.com/t5/Discussions/re-use-standard-application-code/m-p/577448/highlight/true#M78494" target="_self"&gt;this&lt;/A&gt; post that - unfortunately - this is not possible because MFI is &lt;EM&gt;proprieatary&lt;/EM&gt; and there is no source code available :(&lt;/img&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Next thing would be to re-write the interface and the code behind.&lt;/P&gt;&lt;P&gt;Half of it can be skipped by Craige's trick.&lt;/P&gt;&lt;P&gt;So, the only thing that one has to do is:&lt;BR /&gt;provide some interface to pick the main folder (and e.g. file type selector), then just pipe the variables into MFI and get the filelist&lt;BR /&gt;(all subfolders, selected filetype -&amp;gt; great).&lt;/P&gt;&lt;P&gt;Not exactly what I wanted - but close enough. Let's say: not as disappointing as it was after the first reply :)&lt;/img&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Dec 2022 18:07:17 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/re-use-standard-application-code/m-p/578110#M78565</guid>
      <dc:creator>hogi</dc:creator>
      <dc:date>2022-12-06T18:07:17Z</dc:date>
    </item>
    <item>
      <title>Re: re-use standard application code?</title>
      <link>https://community.jmp.com/t5/Discussions/re-use-standard-application-code/m-p/598118#M80182</link>
      <description>&lt;P&gt;Let's think about a next level:&lt;BR /&gt;How to just get the file names that match the MFI search criteria?&lt;/P&gt;&lt;P&gt;hm ...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;a workaround:&lt;BR /&gt;use the background color of the HTML export&lt;/P&gt;&lt;P&gt;Fortunately, I found this post:&lt;BR /&gt;&lt;LI-MESSAGE title="Search a string for all occurrences of a pattern" uid="79761" url="https://community.jmp.com/t5/JSL-Cookbook-Archived/Search-a-string-for-all-occurrences-of-a-pattern/m-p/79761#U79761" discussion_style_icon_css="lia-mention-container-editor-message lia-img-icon-tkb-thread lia-fa-icon lia-fa-tkb lia-fa-thread lia-fa"&gt;&lt;/LI-MESSAGE&gt;&amp;nbsp;*)&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks &lt;a href="https://community.jmp.com/t5/user/viewprofilepage/user-id/982"&gt;@Craige_Hales&lt;/a&gt;&amp;nbsp;!!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Great that there is a way in JMP to do global pattern matching without a for loop ....&lt;BR /&gt;but&amp;nbsp;I also agree with&amp;nbsp;&lt;a href="https://community.jmp.com/t5/user/viewprofilepage/user-id/14366"&gt;@jthi&lt;/a&gt;:&amp;nbsp;an option &lt;STRONG&gt;GLOBAL MATCH&lt;/STRONG&gt; for &lt;STRONG&gt;Regex Match&lt;/STRONG&gt;&amp;nbsp;would be nice:&amp;nbsp;&lt;BR /&gt;&lt;LI-MESSAGE title="Add flag to Regex Match() to find all non-overlapping occurances of pattern" uid="582080" url="https://community.jmp.com/t5/JMP-Wish-List/Add-flag-to-Regex-Match-to-find-all-non-overlapping-occurances/m-p/582080#U582080" discussion_style_icon_css="lia-mention-container-editor-message lia-img-icon-idea-thread lia-fa-icon lia-fa-idea lia-fa-thread lia-fa"&gt;&lt;/LI-MESSAGE&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;anybody else who wants to support the wish with a Kudo?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am still struggling to understand how it works exactly -&amp;nbsp; e.g. why is the&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;| Pat Len(1)&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;necessary?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;mfi = Multiple File Import(&lt;BR /&gt;&amp;lt;&amp;lt;Set Folder( "C:\TEMP\" ),&lt;BR /&gt;&amp;lt;&amp;lt;Set Name Filter( "*.txt;" ),&lt;BR /&gt;&amp;lt;&amp;lt;Set Name Enable( 1 )&lt;BR /&gt;);&lt;BR /&gt;&lt;BR /&gt;boxtop = mfi &amp;lt;&amp;lt; createwindow;
scb=boxtop[StringColBox("File Name")];

txt = scb &amp;lt;&amp;lt;get html;

palindrome = Pat Regex( "bgcolor=#000000.*?&amp;gt;" ) + // selected filename by background color
(Pat Regex( ".*?")) &amp;gt;&amp;gt; middlePart + // this is what we want to get
Pat String("&amp;lt;/td"); // the tail

list = {};
Pat Match(
    txt,
    Pat Repeat(
        (palindrome + 
            Pat Test( 
                Insert Into( list, middlePart );
                1 // pat Test returns 1(OK) because we are not actually testing anything...just wanted to run some JSL
            )//
        ) 
        | // above adds to list, below skips forward a letter to try again 
        Pat Len( 1 ) // this bit is more important than it looks; it matches all the text that isn't interesting
    )
);
Show( list);&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 27 Jun 2023 19:38:08 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/re-use-standard-application-code/m-p/598118#M80182</guid>
      <dc:creator>hogi</dc:creator>
      <dc:date>2023-06-27T19:38:08Z</dc:date>
    </item>
    <item>
      <title>Re: re-use standard application code?</title>
      <link>https://community.jmp.com/t5/Discussions/re-use-standard-application-code/m-p/598274#M80190</link>
      <description>&lt;UL&gt;
&lt;LI&gt;Glad you could find it. I wish the archived posts were a bit more visible.&lt;/LI&gt;
&lt;LI&gt;Good usage of .*?&lt;/LI&gt;
&lt;LI&gt;The pattern matching language is similar to the &lt;A href="https://en.wikipedia.org/wiki/SNOBOL" target="_blank" rel="noopener"&gt;Snobol4 pattern matching language from Bell Labs&lt;/A&gt;, a long time ago. The tour de force example (not really useful for learning though) is in &lt;LI-MESSAGE title="Colossal Cave Adventure" uid="62844" url="https://community.jmp.com/t5/JMP-Add-Ins/Colossal-Cave-Adventure/m-p/62844#U62844" discussion_style_icon_css="lia-mention-container-editor-message lia-img-icon-tkb-thread lia-fa-icon lia-fa-tkb lia-fa-thread lia-fa"&gt;&lt;/LI-MESSAGE&gt; . The Fortran code is compiled by a single call to the pattern matcher.&lt;/LI&gt;
&lt;LI&gt;In your background color parser above, the repeat is around two alternatives:
&lt;UL&gt;
&lt;LI&gt;find your pattern at the current location&lt;/LI&gt;
&lt;LI&gt;use len(1) to move the current location forward one character&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 08 Feb 2023 01:32:43 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/re-use-standard-application-code/m-p/598274#M80190</guid>
      <dc:creator>Craige_Hales</dc:creator>
      <dc:date>2023-02-08T01:32:43Z</dc:date>
    </item>
  </channel>
</rss>

