Jump to content
Macro Express Forums

Dennis

Members
  • Posts

    10
  • Joined

  • Last visited

Posts posted by Dennis

  1. Great point!

    Clearly, we have a long way to go. I think ChatGPT and other similar systems that are coming need a sandbox in which to execute and verify proposed results or code works before delivering it. I can only imagine the resources needed for that. And like you suggested, diagnostics need to evaluate the specific, the sum, and various combinations of known symptoms to synthesize a diagnosis. It also needs to be based on real data. IBM's Watson failed in healthcare because much of the data upon which it relied was hypothetical. (Well, there other reasons, too.)

     

    Puttin that all together, It seems to me there are three areas that need to be addressed for an AI system to be reliant: real data, Gestalt evaluations, and real-time testing. The latter two are programming and resource problems to be solved. The former--real data--is much more difficult, as Watson proved. Sure, there are a lot of specific "data" available for training. However, much of that data was created and captured by humans who, as it turns out, are neither consistent, accurate nor complete in recording data. That was the problem with healthcare, where data is abundant, but the quality--despite ICD10 and CPT coding standards--is lacking.

     

    Nonetheless. I remain optimistic.

  2. Agreed, it is much better with VB. I kinda' see ChatGPT technology as taking rapid prototyping in a new direction. And OMG about the oracle reference--history does repeat itself. Didn't we go through that already back when computers were massive and controlled by a handful of lords, and everyone had to submit a request for a program to run? 😀 

     

    Personally, I would love to see the power of programming placed in the hands of everyday folks who know what they need, but don't know how to program even in the very accessible Macro Express Pro.

      --Dennis

  3. It's pretty interesting. Here is what I tried:

     

    Please write code for Macro Express Pro 6 that watches a file folder for new files and then copies those files to another folder.

     

    That yielded:

    <--- Macro Express Pro 6 Script --->
    <--- Start Macro --->
    Variable Set Integer %WaitTime% to 5
    Variable Set Integer %FileCount% to 0
    Folder Watch Start "C:\FolderToWatch" Recurse
    Repeat Until %CancelMacro%
        Delay %WaitTime%
        Variable Set Integer %FileCount% to Folder Watch Count
        If %FileCount% > 0
            Folder Watch Get Next "C:\FolderToWatch" "C:\FolderToCopy"
        End If
    End Repeat
    Folder Watch Stop
    <--- End Macro --->

     

    Close, but no cigar, and I wanted the commands written for the Direct Editor. Using the first two lines, I provided an example in Direct Editor format, and got this back:

    Quote

    <VARIABLE SET INTEGER Option="\x00" Destination="%WaitTime%" Value="5"/>
    <VARIABLE SET INTEGER Option="\x00" Destination="%FileCount%" Value="0"/>
    <FOLDER WATCH START Folder="C:\FolderToWatch" Recurse="Yes"/>
    <REPEAT UNTIL Variable="%CancelMacro%" IgnoreCase="No">
        <DELAY Flags="\x01" Time="%WaitTime%"/>
        <VARIABLE SET INTEGER Option="\x00" Destination="%FileCount%" Value="%FOLDER WATCH COUNT%"/>
        <IF VARIABLE="%FileCount%" Condition="Is Greater Than" Value="0" IgnoreCase="No">
            <FOLDER WATCH GET NEXT SourceFolder="C:\FolderToWatch" DestinationFolder="C:\FolderToCopy"/>
        </IF>
    </REPEAT>
    <FOLDER WATCH STOP/>
     

     

    Still unworkable, but I was impressed. I continued providing feedback, pointing out to ChatGPT the commands that are not valid in Macro Express Pro 6, resulting in this:

     

    Quote

    <GROUP "Watch and Copy Files">
    <COMMENT>
    Watches a folder for new files and copies them to another folder.
    </COMMENT>
    <VARIABLE SET STRING Option="\x00" Destination="%FolderToWatch%" Value="C:\FolderToWatch"/>
    <VARIABLE SET STRING Option="\x00" Destination="%FolderToCopy%" Value="C:\FolderToCopy"/>
    <CHANGE DIRECTORY/FOLDER Path="%FolderToWatch%"/>
    <LOOP>
        <DELAY Flags="\x01" Time="5"/>
        <IF FILE EXISTS="%FolderToWatch%\*.*">
            <COPY FILE="%FolderToWatch%\*.*" TO="%FolderToCopy%\" Flags="\x00"/>
            <DELETE FILE="%FolderToWatch%\*.*"/>
        </IF>
    </LOOP>
    </GROUP>
     

     

     

    Most of the time ChatGPT would come back offering corrected code or defend its position. For example, when I questioned the <IF FILE EXIST...> line, here is how ChatGPT responded:

     

    image.thumb.png.15c0c7a5873877fd09ab57f4687c9a4e.png

     

    The bottom line is that while ChatGPT did not yield ready-to-run Macro Express Pro code, it came pretty darn close. Actually, I never thought it would come that close at all. Turns out, it was far better than I expected. The give and take, and the rough translating into Macro Express Pro's direct editor format, surprised me. Upon each challenge, ChatGPT appeared to go back and verify the command and syntax. In some ways, it was like a little like discussing a snippet of code with programmer.

     

    If you have not yet checked out ChatGPT, I encourage you to do so. Here is the link:

    https://openai.com/blog/chatgpt

     

    I would be interested to learn what others think about how ChatGPT can be used with Macro Express Pro.

      --Dennis

     

  4. My understanding of how ME handles text files is that it reads the text verbatim. In other words, what's in the file is what you get--with no replacements of variables. The solution for you is simple, though:

     

    1. Use another place holder for the variable in the file. Say, instead of %T2%, use something like PATH.

     

    2. Immediately after the file read, add a modify text string command to replace PATH with %T2%.

    <TMVAR2:21:01:00:000:000:PATH%T2%>

     

    3. Take the same approach with all other variables in the csv file.

     

    I hope that helps.

    --Dennis

  5. This may not be elegant, but hopefully it will give you some ideas.

    --Dennis

     

    // Set variable T2 to Carriage Return
    Variable Set %T2% to ASCII Char of 13
    // Set variable T3 to Line Feed
    Variable Set %T3% to ASCII Char of 10
    // Combine Carriage Return & Line Feed (CR/LF) into variable T4
    Variable Set String %T4% "%T2%%T3%"
    // Get string
    Clipboard Copy
    Variable Set String %T1% from Clipboard
    // Replace CR/LFs with commas
    Replace "%T4%" with "," in %T1%
    
    // If string now ends with a comma, delete it and add trailing CR/LF
    // First, get the length of the string
    Variable Set Integer %N1% from Length of Variable %T1%
    // Next, get the last character
    Variable Modify String: Copy Part of %T1% to %T5%
    // If that last character is a comma, replace it with the CR/LF, otherwise do nothing
    If Variable %T5% = ","
     Variable Modify String: Delete Part of %T1%
     Variable Modify String: Append "%T4%" to %T1%
    End If
    
    Wait Left Mouse Click
    Text Type: %T1%
    
    
    <REM2:Set variable T2 to Carriage Return><ASCIIC:2:1:13><REM2:Set variable T3 to Line Feed><ASCIIC:3:1:10><REM2:Combine Carriage Return & Line Feed (CR/LF) into variable T4><TVAR2:04:01:%T2%%T3%><REM2:Get string><CLIPC><TVAR2:01:03:><REM2:Replace CR/LFs with commas><TMVAR2:21:01:01:000:000:%T4%,><REM2:><REM2:If string now ends with a comma, delete it and add trailing CR/LF><REM2:First, get the length of the string><IVAR2:01:12:1><REM2:Next, get the last character><TMVAR2:10:05:01:N01:001:><REM2:If that last character is a comma, replace it with the CR/LF, otherwise do nothing><IFVAR2:1:05:1:,><TMVAR2:11:01:00:N01:001:><TMVAR2:07:01:00:000:000:%T4%><ENDIF><REM2:><WAITLM:000><TEXTTYPE:%T1%>

×
×
  • Create New...