Differences between revisions 12 and 36 (spanning 24 versions)
Revision 12 as of 2011-01-24 20:03:35
Size: 2988
Editor: KaiJaeger
Comment: New version
Revision 36 as of 2019-05-30 07:48:57
Size: 1511
Editor: KaiJaeger
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from UserCommand_Adoc
## page was renamed from UserCommandAdoc
= User Command ADOC (Dyalog) =
= User Commands Int2Hex and Hex2Int =

|| ```Outdated: the Dyalog built-in user command got improved and can now deal with the cases outlined on this page.``` ||
Line 5: Line 6:
[[ADOC]] is a utility useful to generate documentation (semi-) automatically from class scripts as well as namespace scripts.
Line 7: Line 7:
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 9: Line 9:
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 25: Line 12:
      ]?ADOC
"??" for general help, "?CMD" for more specific info on command CMD
      ]tohex 2147942667
* Command Execution Failed: must be 32 bits signed integer
}}}
Line 28: Line 16:
 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
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 34: Line 18:
      ]?ADOC.Browse
Command "ADOC.Browse". Syntax: 1 arguments; accepts switches -b=
Script location: ........\SALT\Spice\ADOC
{{{
      ]Int2hex 2147942667
8007010b
      ]Hex2Int 8007010b
2147942667
}}}
Line 38: Line 25:
Gathers all sort of information from a class script,
compiles an HTML page with these pieces of information
and displays it in a browser. Use the -b flag to specify
a browser different from your default browser.
This is Phil's underlying code:
Line 43: Line 27:
      ]?ADOC.List
Command "ADOC.List".
Script location: ........\SALT\Spice\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`.
{{{
      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
      }
Line 58: Line 45:
[[attachment:ADOC.dyalog | Download]] the script. [[attachment:Hex.dyalog | Download]] the script.
Line 60: Line 47:
== Version ==
The script is version 1.0.3 from 2011-01-24

Author: KaiJaeger
Authors: Logic=PhilLast, user command=KaiJaeger

User Commands Int2Hex and Hex2Int

Outdated: the Dyalog built-in user command got improved and can now deal with the cases outlined on this page.

Overview

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                              
* Command Execution Failed: must be 32 bits signed integer

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
      }

Download

Download the script.

Authors: Logic=PhilLast, user command=KaiJaeger


CategoryDyalogUserCommands

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