Dear,

A new version of the kixstrip program is out. A lot of new functions
have been added:


  • a script will be handle faster.
  • a progress bar about the amount of lines currently handled.
  • an elapse time counter.
  • new options:
    /headers = a footer will be inserted automatically after detection of a warning.
    /translate = commands, macros, variables will be translate by default.
  • new capability:
    a block starting with a line with symbol ";(begin)" and
    ending with a line with symbol ";(end)
    will automatically be removed.
  • more possible problems about commands and functions will be checked.
    more error report information will be added.
    more user information will be showed.
  • complex block structures can be handle. it is no longer necessary that
    a block structures commands start a the beginning of a line.
    f.e. if (@wksta = "server") ? "welcome to server" else ? "welcome "+@userid endif
    can be handle.
  • structures are using the new format of strings. See kixtart 3.62 manual (pag 22)
    old style format: "Welcome to @wksta"
    new style format: "Welcome to "+@wksta
    other advices and remarks of manual kixtart 3.62 are also be using.
    f.e. IF(1=1)?"ok"else?"error"endif must be IF (1=1) ?"ok" ELSE ?"error" ENDIF
    remark: by option /Block_check the format will not be changed.
    without option /Block_Check additional spaces will be added or
    superfluous spaces will be removed.
  • commands start also on a newline after selection of option "/Block_Check".
  • commands will be translate to uppercase by default.
    macros + variables will be lowercase by default.
    the options "/translate" + "/notranslate: may influence it.
  • all TAB characters will be replaced by spaces.

site: http://home.wanadoo.nl/scripting
program: kixstrip.exe (vs 1.70)

Structure after selection of "/Block_Check" will be:

code:

DO
...command part...
UNTIL ...logical part... ...command part...
...command part...


IF ...logical part... ...command part...
...command part...
ELSE
...command part...
ENDIF
...command part...


SELECT
CASE
...logical part... ...command part...
...command part...
CASE
...logical part... ...command part...
...command part...
ENDSELECT
...command part...


WHILE ...logical part... ...command part...
...command part...
LOOP
...command part...



Actual help information. created with kixstrip ?:

code:

Kixstrip 3.62 (vs 1.70e) (c) MCA - scripting@wanadoo.nl - 2000
------------------------------------------------------------------------------
kixstrip [input] [output]
/Block_Check or /BC <-> /NoBlock_Check or /NoBC
/Combine <-> /NoCombine
/Debug <-> /NoDebug
/Headers <-> /NoHeaders
/License <-> /NoLicense
/License=[var]
/Print <-> /NoPrint
/Show_Errors or /SE <-> /NoShow_Errors or /NoSE
/TAB=[num] (default: 6) <-> /NoTab
/Translate <-> /NoTranslate
?
default: /Combine /Headers /License /NoDebug /NoPrint /NoShow_Errors /NoTab
other: - /Block_Check /Tab=2 (auto set: /NoCombine /NoLicense /Print )
/Debug (auto set: /NoLicense /Print /Show_Errors )
- /Block_Check (reformat kixtart code inc. block structure )
/Combine (combine lines to one line )
/Headers (insert summary report as footer )
/Debug (insert "line numbers" for each printed line )
/Print (do not remove print statements )
/Show_Errors (insert error messages in output file )
/Translate (convert keywords to upper/lower-case )

Explanation:


  • /Block_Check
    a reformat of block structure. a kind of checks will be done.
    no insertion of header. by possible warnings a footer will be inserted.
    footer can be suppress by option "/NoHeaders".
  • /Combine
    a lines will be combine to one line. labels will always start
    a newline.
  • /Debug
    insert "line numbers" for each printed line.
    f.e. if (@wksta = "server") ? "welcome to server" else ? "welcome "+@userid endif
    ? @date
    will be
    ?"- 1-" IF (@wksta = "server) ? "welcome to server"
    ELSE
    ?"welcome "+@userid
    ENDIF
    ?"- 2-" ? @date
    after selection of "/Debug" automatically "/NoCombine", "/NoLicense" and "/Print"
    will be selected.
  • /Headers
    insert a summary report as footer. automatically a footer will be inserted
    when the program find possible problems.
  • /License
    a personal license note will be added.
  • /Print
    do not remove print statement from a line. a line started with "?" symbol
    will be look at a print statement.
    remark: by no specification of any option automatically those
    print-statement lines will be removed.
  • /Show_Errors
    insert a summary report as footer. even we don't detected any possible
    error.
  • TAB
    amount of spaces which will be inserted.
  • /Translate
    translate keywords to upper- and lowercase.
    commands and boolean operators will be uppercase.
    macros and variables will be lowercase.

A short list of possible errors:


  • line incomplete "single quotation".
  • line incomplete "double quotation".
  • line incomplete "left square brackets".
  • line incomplete "right square brackets".
  • line incomplete "left parenthesis".
  • line incomplete "right parenthesis".
  • block "do/until" incompleted. starting point of block structure missing.
    f.e. if ... ... else ... endif endif
  • block "if/else/endif" incompleted. starting point of block structure missing.
  • block "select/case/endselect" incompleted. starting point of block structure missing.
  • block "while/loop" incompleted. starting point of block structure missing.
  • block incompleted.
  • line incompleted.
  • line contains unknown function.
    f.e. (old style format) @wksta.txt
    new style format: @wksta+".txt"
  • line contains too much keywords. rerun program with output as input file.
    it is possible that you are using too much keywords in one line.
    to prevent an unwanted range check error we have limited it to 1024 keywords.
    after a rerun of the program the next 1024 keywords of that line will be
    interpreted.

The user screen information can be:

code:

Kixstrip 3.62 (vs 1.70e) (c) MCA - scripting@wanadoo.nl - 2000

8000 ....................................E(8720)

Warning KIXSTRIP: 6355 "@wksta.txt", 6356 "@wksta.txt", 6360 "@wksta.txt", 6402 "@wksta.txt", 6403 "@wksta.txt" line contains unknown function.

Kixstrip 3.62 (vs 1.70e) 81.28 (sec)

input 8720 kixtest.kix
output 6908 kixtest.new
-skip- 1812
-blocks- 0
-labels- 1

Warning KIXSTRIP: 5 lines contain unknown function.


options:
/Combine /Headers /NoBlock_Check /NoDebug /NoPrint /NoShow_Errors /NoTAB /NoTranslate
/License: MCA - scripting@wanadoo.nl - 2000


Benchmark info about 100 lines/second.

Remarks


  • filenames must be 8.3 format.
  • destination file will automatically overwritten.
  • comment statements starts with a ';' symbol. no deletion by option "/block_check".
  • print statements starts with a '?' symbol. use "/print" to prevent deletion.
  • option "/debug" can create an error when a statement use two or more lines.
    f.e. writeline(1, "Welcome",
    @userid)
    will be
    ?"- 1- writeline(1, "Welcome",
    ?"- 2- @userid)

    advice: combine both lines to one line.

  • option "/block_check" will not reformat internal structure of line. only translate
    some keywords. translation can be prevent with "/NoTranslate" option.
    use: first "/nocombine"
    secondly "/block_check"
  • support only new style of string/variable usage see Kixtart 3.62 pag.22).
    old style: "User $user logon at @date"
    new style: "User "+$user+" logon at "+@date


Greetings

_________________________
email scripting@wanadoo.nl homepage scripting@wanadoo.nl | Links | Summary of Site Site KiXforms FAQ kixtart.org library collection mirror MCA | FAQ & UDF help file UDF kixtart.org library collection mirror MCA | mirror USA | mirror europe UDF scriptlogic library collection UDFs | mirror MCA