Differences between revisions 20 and 33 (spanning 13 versions)
Revision 20 as of 2011-08-05 07:42:37
Size: 2794
Editor: KaiJaeger
Comment:
Revision 33 as of 2017-06-01 16:43:45
Size: 1329
Editor: KaiJaeger
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= User Command ADOC =
== Overview ==
[[ADOC]] is a utility useful to generate documentation (semi-) automatically from class scripts as well as namespace scripts.
= User Commands Int2Hex and Hex2Int =
Line 5: Line 3:
Obviously it makes sense to make ADOC's services available as a User Command. Although Dyalog comes from two built-in user commands for converting a hex number into an integer and vice versa (`]ToHex` and `]FromHex`), `fromHex` is too limited to be really useful.
Line 7: Line 5:
This page offers a small class script `ADOC` which is designed to do exactly that.

== Assumptions ==
When User Commands got introduced in Dyalog with version 12.1, the User Commands where expected to reside in a sub folder `Salt\Spice` inside the Dyalog installation folder. This means that the script `ADOC.dyalog` attached to this page must go into this directory. Only then the User Commd "ADOC" is recognized. Note that this script only deal with two issues:

 * Figure out what command the user want to invoke, "Browse" or "List".
 * Find the real work horse and call it, see below.

That script which represents the ADOC User Command assumes that there is a sibling folder of your APL installation folder available named `UserCommands`. Please make sure that the real [[ADOC]] script is copied into this folder `UserCommands`. This enables the User Command script to address the real ADOC script `{MyDyalogInstallationFolder}..\UserCommands\ADOC`.

For example, in case your version of Dyalog APL 32bit is installed in `C:\Program Files (x86)\Dyalog\Dyalog APL 12.1 Unicode` which is the default on Windows 7 64 bit, then the folder `UserCommands` is supposed to be located at `C:\Program Files (x86)\Dyalog\UserCommands`.

== Samples ==
Given that the two different ADOC scripts went into the right folders, this would be a sample session:
For example, is one wishes to convert an error code returned by the Windows Task Scheduler:
Line 23: Line 8:
      ]?ADOC
"??" for general help, "?CMD" for more specific info on command CMD

 Group Name Description
 ===== ==== ===========
 ADOC ADOC.Browse Creates full documentation and displayes it in the default browser.
        ADOC.HELP Displays help regarding ADOC.
        ADOC.List Prints syntax of all public stuff to the session.

      ]?ADOC.Browse
Command "ADOC.Browse". Syntax: 1 arguments; accepts switches -b=
Script location: ........\....\....\ADOC

Gathers information from a class script, compiles
an HTML page with these pieces of information
and displays it in your default browser.

      ]?ADOC.List
Command "ADOC.List".
Script location: ........\...\...\ADOC

Prints a list with all sorts of information to the session
about all public stuff given in the script specified in the right argument

]ADOC.Help
Watch your browser

Shows extensive information about ADOC. It's basically doing `ADOC.Browse ADOC`.
      ]tohex 2147942667
must be 32 bits signed integer
Run[61] r←1 hex ##.THIS⍎r⊣⎕PP←34
       ∧
Line 53: Line 14:
== Download == With the excellent function `Hex` written and contributed by PhilLast - which is the internal engine of the two user commands - this can be avoided:
Line 55: Line 16:
[[attachment:ADOC_UC.zip | Download]] the script. {{{
      ]Int2hex 2147942667
8007010b
      ]Hex2Int 8007010b
2147942667
}}}
Line 57: Line 23:
== Version ==
The script is version 1.2.0 from 2011-08-04
This is Phil's underlying code:
Line 60: Line 25:
Author: KaiJaeger {{{
      Hex←{
          ⎕IO←0 ⋄ ⎕ML←1
          t←0∊⊃⍬⍴0⍴⊂⍵
          a←⎕D,'abcdef',⎕D,6⍴⎕A
          t:a⌷⍨⊂⍉16⊥⍣¯1⊢⍵
          16⊥⍉16|a⍳⍵
    ⍝ ⍵ dec-number or hex-string
    ⍝ ← hex-string or dec-number
    ⍝ accepts hex as CAPS or small
    ⍝ returns hex as small
    ⍝ dec to hex is rank increasing
    ⍝ hex to dec is rank decreasing
      }
}}}



Authors: Logic=PhilLast, user command=KaiJaeger

User Commands Int2Hex and Hex2Int

Although Dyalog comes from two built-in user commands for converting a hex number into an integer and vice versa (]ToHex and ]FromHex), fromHex is too limited to be really useful.

For example, is one wishes to convert an error code returned by the Windows Task Scheduler:

      ]tohex 2147942667                              
must be 32 bits signed integer
Run[61] r←1 hex ##.THIS⍎r⊣⎕PP←34

With the excellent function Hex written and contributed by PhilLast - which is the internal engine of the two user commands - this can be avoided:

      ]Int2hex 2147942667                              
8007010b
      ]Hex2Int 8007010b
2147942667

This is Phil's underlying code:

      Hex←{
          ⎕IO←0 ⋄ ⎕ML←1
          t←0∊⊃⍬⍴0⍴⊂⍵
          a←⎕D,'abcdef',⎕D,6⍴⎕A
          t:a⌷⍨⊂⍉16⊥⍣¯1⊢⍵
          16⊥⍉16|a⍳⍵
    ⍝ ⍵ dec-number or hex-string
    ⍝ ← hex-string or dec-number
    ⍝   accepts hex as CAPS or small
    ⍝   returns hex as small
    ⍝   dec to hex is rank increasing
    ⍝   hex to dec is rank decreasing
      }

Authors: Logic=PhilLast, user command=KaiJaeger


CategoryDyalogUserCommands

UserCommands/Hex (last edited 2019-05-30 07:48:57 by KaiJaeger)