Here it is ,

Fixes and Updates :

  • Fix: URLs in code are posted now without screwing the Post [Wink] (see proof below)
  • Added Optional Word Wrap (Code below was converted with Word Wrap ON )
  • Conversion Alghorithm was also improved which resulted in a major speed boost
This release needs the changed Wordfile.ini to function correctly , so please get the Complete Package HERE
Code as always :



; UBB PostPrep 1.0.1 (build 5)
; ----------------------------------------------------------------------------------------------
; MINIMUM REQUIREMENTS
;
; KIXTART            4.20 (WKiX32)
; KIXFORMS           build 37 (2.2.0)
; ----------------------------------------------------------------------------------------------
; AUTHORs
;    Jooel Nieminen - Conversion Engine !
;    Jochen Polster - Form, Controls, Design, Codestarter
; ----------------------------------------------------------------------------------------------
; ACKNOWLEDGEMENTS
;   Shawn Tassie (for Kixforms of course!)
;    Richard Howarth (for pointing out the <br>-tag Issue)
;    All KiXtart Enthusiastics for which we wrote this  [Wink]
; ----------------------------------------------------------------------------------------------
; VERSION HISTORY
;    1.0.1 - 01/28/2003 bug-fixes to conversion engine, optional WordWrap added
;
;    1.0   - 01/27/2003 Initial worthwhile release
;
;    0.9 A - different very buggy Alpha releases not worth to mention
;
;    0.9 P - Preview Version(s) discussed on kixtart.org Bulletin board
;    http://www.kixtart.org/board/ultimatebb.php?ubb=get_topic;f=13;t=000426
; ----------------------------------------------------------------------------------------------

break on
$ = setascii("on")

$ReqForms = 37
$Version  = "1.0.1"
$Wordfile = @scriptdir + '\Wordfile.ini'
$Kix      = substr(@kix,1,4)

if $Kix < "4.20"
    $ = messagebox('This Script requires at least KiXtart 4.20 ','Version Check',4112)
    quit()
endif

Global $SourceText[0], $TargetText[0], $Colors[7], $PathOpen$PathSave$ShowStatistics$wrap
$Sections = "Comments","Strings","Numbers","Commands","Functions","Macros","Operators","Variables"

if exist($Wordfile)
    for $i = 0 to 7
        $Colors[$i]  = readprofilestring($Wordfile,$Sections[$i],"Color")
    next
    $CTable         = split(readprofilestring($Wordfile,"ColorTable","Colors"),',')
    $Commands       = split(readprofilestring($Wordfile,"Commands",   "words"),',')
    $Functions      = split(readprofilestring($Wordfile,"Functions""words"),',')
    $PathOpen       = readprofilestring($Wordfile,"Global","PathOpen")
    $PathSave       = readprofilestring($Wordfile,"Global","PathSave")
    $ShowStatistics = val(readprofilestring($Wordfile,"Global","ShowStats"))
    $wrap           = val(readprofilestring($Wordfile,"Global","WordWrap"))
    if    not ubound($Commands)
       or not ubound($Functions)
       or not ubound($Colors)
        $ = messagebox('This Script requires a consistent wordfile','File check',4112)
        quit()
    endif
else
    $ = messagebox('This Script requires a wordfile ','File missing',4112)
    quit()
endif

$frm = createobject("Kixtart.Form")

if val($frm.Build) < $ReqForms
    $ = messagebox('This Script requires Kixforms build ' + $ReqForms,'Version check',4112)
    quit()
endif

$frm.Size                = 810,620
$frm.Caption             = "UBB Postprep " + $Version
$frm.Icon                = @scriptdir + "\Kix.ico"
$frm.Center

$lblPowered              = $frm.Label("Powered by"$frm.ClientWidth-98,$frm.ClientHeight-115,90,20)
$lblPowered.FontName     = "Comic sans MS"
$lblPowered.FontBold     = 1
$lblPowered.FontSize     = 11
$lblPowered.ForeColor    = Kixtart

$lblBuild                = $frm.Label("   KiXtart " + $kix + @crlf
                                      + "         and" + @crlf + " KiXforms build " + $frm.Build,
                                      $frm.ClientWidth-98,$frm.ClientHeight-90,90,40)
$lblBuild.FontName       = "Comic sans MS"
$lblBuild.FontBold       = 1
$lblBuild.FontSize       = 7
$lblBuild.ForeColor      = Kixtart

$hypBoard                = $frm.HyperLink("Bulletin Board",$frm.ClientWidth-87$frm.ClientHeight-4510025)
$hypBoard.Value          = "http://www.kixtart.org/cgi-bin/ultimatebb.cgi?Category=1"
$hypBoard.ToolTip        = $hypBoard.Value

$txtSource               = $frm.TextBox(,5,5)
$txtSource.Right         = $frm.ClientWidth-110
$txtSource.Bottom        = $frm.ClientHeight/2-3
$txtSource.ScrollBars    = 3
$txtSource.AcceptsTab    = 1
$txtSource.FontName      = "Courier New"
$txtSource.FontSize      = 8
$txtSource.MultiLine     = 1
$txtSource.OnChange      = "TextSource_Change()"

$txtTarget               = $frm.TextBox(,5,5 + $txtSource.Bottom)
$txtTarget.Right         = $frm.ClientWidth - 110
$txtTarget.Bottom        = $frm.ClientHeight - 20
$txtTarget.ScrollBars    = 3
$txtTarget.FontName      = "Courier New"
$txtTarget.FontSize      = 8
$txtTarget.MultiLine     = 1

$lblStatus1              = $frm.Label("",5,$frm.ClientHeight-17,$frm.ClientWidth/3*2,15)
$lblStatus1.BorderStyle  = 5

$lblStatus2              = $frm.Label("",$lblStatus1.Right+3,$frm.ClientHeight-17,$frm.ClientWidth/3-13,15)
$lblStatus2.BorderStyle  = 5

$prg                     = $lblStatus2.ProgressBar
$prg.Size                = $frm.ClientWidth/3-10,13
$prg.Style               = 1
$prg.BorderStyle         = 0
$prg.Value               = 0
$prg.ForeColor           = DarkBlue
$prg.Visible             = 0

$btnOpen                 = $frm.Button("Open...",$txtTarget.Right+10,5,90,25)
$btnOpen.BorderStyle     = 5
$btnOpen.OnClick         = "btnOpen_Click()"

$btnClear                = $frm.Button("Clear",$txtTarget.Right+10,$btnOpen.Bottom+2,90,25)
$btnClear.BorderStyle    = 5
$btnClear.OnClick        = "btnClear_Click()"
$btnClear.Enabled        = 0

$btnKeyWords             = $frm.Button("Keywords...",$txtTarget.Right+10,$btnClear.Bottom+2,90,25)
$btnKeyWords.BorderStyle = 5
$btnKeyWords.OnClick     = "btnKeyWords_Click()"

$btnColor                = $frm.Button("Set Colors...",$txtTarget.Right+10,$btnKeyWords.Bottom+2,90,25)
$btnColor.BorderStyle    = 5
$btnColor.OnClick        = "btnColor_Click()"

$fraFormat               = $frm.Frame("Convert:",$txtTarget.Right + 9,$btnColor.Bottom + 5,92,204)

dim $Top
$Top = 17
for $i = 0 to ubound($Sections)
    $ = execute("$$txtFormat$i = $$fraFormat.TextBox($$Sections[$i],6,$Top,80,20)")
    $ = execute("$$txtFormat$i.Caption = $$Sections[$i]")
    $ = execute("$$txtFormat$i.ForeColor = &"+readprofilestring($Wordfile,$Sections[$i],'Color'))
    $ = execute("$$txtFormat$i.FontBold = -"+val(readprofilestring($Wordfile,$Sections[$i],'Bold')))
    $ = execute("$$txtFormat$i.Locked = 2")
    $ = execute("$$txtFormat$i.TabStop = 0")
    $ = execute("$$Top = $$txtFormat$i.Bottom + 3")
next

$chkShowStats           = $frm.CheckBox("Show Statistics",$txtTarget.Right+10$FraFormat.Bottom+10,100,15)
$chkShowStats.Value     = $ShowStatistics
$chkShowStats.OnClick   = "chkShowStats_CLick($$chkShowStats.Value)"

$chkWordWrap            = $frm.CheckBox("Word Wrap",$txtTarget.Right+10$chkShowStats.Bottom+2,100,15)
$chkWordWrap.Value      = $wrap
$chkWordWrap.OnClick    = "chkWordWrap_CLick($$chkWordWrap.Value)"

$btnConvert             = $frm.Button("Convert",$txtTarget.Right+10,$chkWordWrap.Bottom+3,90,25)
$btnConvert.BorderStyle = 5
$btnConvert.OnClick     = "$$btnConvert.Enabled=0 btnConvert_Click() $$btnConvert.Enabled=1"
$btnConvert.Enabled     = 0

$btnPreview             = $frm.Button("Preview...",$txtTarget.Right+10,$btnConvert.Bottom+2,90,25)
$btnPreview.BorderStyle = 5
$btnPreview.OnClick     = "btnPreview_Click($$txtTarget.text)"
$btnPreview.Enabled     = 0

$btnCopy                = $frm.Button("Copy",$txtTarget.Right+10,$btnPreview.Bottom+2,90,25)
$btnCopy.BorderStyle    = 5
$btnCopy.OnClick        = "btnCopy_Click()"
$btnCopy.Enabled        = 0

$btnSave                = $frm.Button("Save As...",$txtTarget.Right+10,$btnCopy.Bottom+2,90,25)
$btnSave.BorderStyle    = 5
$btnSave.OnClick        = "btnSave_Click()"
$btnSave.Enabled        = 0

$btnOpen.SetFocus

$frm.Show
while $frm.Visible
    $ = execute($frm.DoEvents)
loop

function btnAdd_Click()
    $frmAdd            = createobject("Kixtart.Form")
    $frmAdd.Caption    = "Add " + $cboSel.Text
    $frmAdd.Size       = 200,100
    $frmAdd.Location   = $frm.Right-400,$frm.Top+142
    $frmAdd.SysMenu    = 0

    $txtAdd            = $frmAdd.TextBox("",13,10,150,20)
    $txtAdd.OnChange   = "if $$txtAdd.Text <> '' and ascan($$"+$cboSel.Text+",$$txtAdd.Text)=-1 $$btnOk.Enabled=1 else $$btnOk.Enabled=0 endif"

    $btnOk             = $frmAdd.Button("OK",$frmAdd.ClientWidth/2-83,$frmAdd.ClientHeight-30,80,25)
    $btnOk.BorderStyle = 5
    $btnOk.Enabled     = 0
    $btnOk.OnClick     = "$$=$$lvw.Items.Add($$txtAdd.Text)
                          redim $$"
+$cboSel.Text+"[0]
                          for $$i=1 to $$lvw.Items.Count redim preserve $$"
+$cboSel.Text+"[$$i-1] $$"+$cboSel.Text+"[$$i-1]=$$lvw.Items($$i-1).Text next
                          $$=writeprofilestring($$Wordfile,$$cboSel.Text,'Words',join($$"
+$cboSel.Text+",','))
                          for each $$item in $$lvw.SelectedItems $$Item.Selected = 0 next
                          $$txtAdd.SetFocus $$txtAdd.Text=''"


    $btnEx             = $frmAdd.Button("Exit",$frmAdd.CLientWidth/2+3,$frmAdd.ClientHeight-30,80,25)
    $btnEx.BorderStyle = 5
    $btnEx.Cancel      = 1
    $btnEx.OnClick     = "$$frmAdd=0"

    $frmAdd.Show
    $txtAdd.SetFocus
    while $frmAdd.Visible
        $ = execute($frmAdd.DoEvents)
    loop
endfunction

function btnClear_Click()
    $txtSource.Text     = ''
    $txtTarget.Text     = ''
    $lblStatus1.Text    = ''
    $btnSave.Enabled    = 0
    $btnCopy.Enabled    = 0
    $btnClear.Enabled   = 0
    $btnConvert.Enabled = 0
    $btnPreview.Enabled = 0
endfunction

function btnColor_Click()
    dim $Left$Top$index
    $index = 0 $Left = 7 $Top = 19

    $frmDialog1            = createobject("Kixtart.Form")
    $frmDialog1.Size       = 245,233
    $frmDialog1.Caption    = "Set Colors"
    $frmDialog1.Location   = $frm.Right - $frmDialog1.ClientWidth - 120 , $frm.Top + $btnColor.Bottom - 2
    $frmDialog1.ForeColor  = MediumBlue
    $frmDialog1.DrawWidth  = 2
    $frmDialog1.SysMenu    = 0

    $cboStrings            = $frmDialog1.ComboBox
    $cboStrings.List       = $Sections
    $cboStrings.Location   = 5,8
    $cboStrings.ListIndex  = 0
    $cboStrings.Style      = 1
    $cboStrings.Default    = 1
    $cboStrings.OnClick    = "$$index = cboStrings_CLick($$Index,$$cboStrings.ListIndex)"

    $chkBold               = $frmDialog1.CheckBox("Bold",112,11,50,15)
    $chkBold.OnClick       = "chkBold_Click($$index)"
    $chkBold.Value         = val(readprofilestring($Wordfile,$Sections[0],"Bold"))

    $btnClose1             = $frmDialog1.Button("Close",$frmDialog1.ClientWidth-75,7,70,25)
    $btnClose1.BorderStyle = 5
    $btnClose1.Cancel      = 1
    $btnClose1.OnClick     = "$$frmDialog1=0"

    $fraColor              = $frmDialog1.Frame("Colors:",5,40,230,163)

    for $i = 0 to ubound($CTable)
        $ = execute("$$lblColor$i = $$fraColor.Label('',$Left,$Top,20,18)")
        $ = execute("$$lblColor$i.BorderStyle = 2")
        $ = execute("$$lblColor$i.BackColor = &" + $CTable[$i])
        $ = execute("$$lblColor$i.OnClick = 'Color_Change($$$$index,$i)'")
        $Left = $Left + 28
        if $Left = 231
            $Left = 7
            $Top = $Top + 24
        endif
    next

    $e = ascan($CTable$Colors[$index])
    $  = execute("$$frmDialog1.Rectangle($$lblColor$e.Left+3,$$lblColor$e.Top+38,24,22)")

    $frm.Enabled = 0
    $frmDialog1.Show

    while $frmDialog1.Visible
        $ = execute($frmDialog1.DoEvents)
    loop

    $frm.Enabled = 1
endfunction

function btnConvert_Click()
    dim $StartTime$EndTime$HColors[7], $out$i,$fb
    $txtSource.Locked    =  2
    $frm.MousePointer    = 11
    $prg.Visible         =  1
    $btnOpen.Enabled     =  0
    $btnKeyWords.Enabled =  0
    $btnColor.Enabled    =  0
    $btnPreview.Enabled  =  0
    $btnCopy.Enabled     =  0
    $btnSave.Enabled     =  0
    $btnClear.Enabled    =  0
    for $i = 0 to ubound($Colors)
        $HColors[$i] = right($Colors[$i],2) + substr($Colors[$i],3,2) + left($Colors[$i],2)
        $ = execute("$$fb=''+$$fb+$$txtFormat$i.FontBold+' '")
    next
    $fb=split(left($fb,len($fb)-1))
    $StartTime = @time + ':' + @msecs
    $out = kix2htm($txtSource.Text,$HColors,$fb,$Functions,$Commands,$wrap)
    $EndTime = @time + ':' + @msecs
    $txtTarget.Text = $out[0]
    $txtSource.Locked    = 0
    $frm.MousePointer    = 0
    $prg.Value           = 0
    $btnCopy.Enabled     = 1
    $btnPreview.Enabled  = 1
    $btnSave.Enabled     = 1
    $btnClear.Enabled    = 1
    $btnOpen.Enabled     = 1
    $btnKeyWords.Enabled = 1
    $btnColor.Enabled    = 1
    $prg.Visible         = 0
    if $ShowStatistics
        $ = ShowStats(DeltaTime($StartTime$EndTime), $out[3], $out[4], $out[2], $out[1])
    endif
endfunction

function btnCopy_Click()
    $txtTarget.SelStart  = 0
    $txtTarget.SelLength = -1
    $txtTarget.Copy
endfunction

function btnDel_Click()
    dim $
    if $lvw.SelectedItems.Count > 0 and $lvw.FocusedItem.Selected
        $lvw.SelectedItems.clear
        $ = execute("redim $$"+$cboSel.Text+"[0]")
        for $i = 1 to $lvw.Items.Count
            $=execute("redim preserve $$"+$cboSel.Text+"[$$i-1] $$"+$cboSel.Text+"[$$i-1]=$$lvw.Items($$i-1).Text")
        next
        $ = execute("$$=writeprofilestring($$Wordfile,$$cboSel.Text,'Words',join($$"+$cboSel.Text+",','))")
    endif
endfunction

function btnKeyWords_Click()
    dim $frmDialog2
    $frm.Enabled = 0
    $frmDialog2            = createobject("Kixtart.form")
    $frmDialog2.Size       = 400,380
    $frmDialog2.Caption    = "Maintain Keywords"
    $frmDialog2.Location   = $frm.Right-$frmDialog2.ClientWidth-120,$frm.Top+$btnKeyWords.Bottom-2
    $frmDialog2.SysMenu    = 0

    $cboSel                = $frmDialog2.ComboBox
    $cboSel.List           = "Commands","Functions"
    $cboSel.Location       = 5,8
    $cboSel.ListIndex      = 0
    $cboSel.Style          = 1
    $cboSel.OnClick        = "cboSel_Click()"

    $btnAdd                = $frmDialog2.Button("Add Keywords...",$cboSel.Right+5,5,95,25)
    $btnAdd.BorderStyle    = 5
    $btnAdd.OnCLick        = "btnAdd_Click()"

    $btnDel                = $frmDialog2.Button("Delete Selected",$btnAdd.Right+5,5,95,25)
    $btnDel.BorderStyle    = 5
    $btnDel.OnClick        = "btnDel_Click()"

    $btnClose2             = $frmDialog2.Button("Close",$frmDialog2.ClientWidth-75,5,70,25)
    $btnClose2.BorderStyle = 5
    $btnClose2.Cancel      = 1
    $btnClose2.OnClick     = "$$frmDialog2=0"

    $lvw                   = $frmDialog2.ListView()
    $lvw.Left              = 5
    $lvw.Top               = 35
    $lvw.Right             = $frmDialog2.ClientWidth-5
    $lvw.Bottom            = $frmDialog2.ClientHeight-5
    $lvw.View              = 2
    $lvw.Gridlines         = True
    $lvw.MultiSelect       = True
    $lvw.Sorted            = 1

    for $i = 0 to ubound($Commands)
        $ = $lvw.Items.Add($Commands[$i])
    next

    for each $Item in $lvw.SelectedItems
        $Item.Selected = 0
    next

    $frmDialog2.Show
    while $frmDialog2.Visible
        $=execute($frmDialog2.DoEvents)
    loop
    $frm.Enabled = 1
endfunction

function btnOpen_Click()
    dim $FileName$nl
    $FileName = $frm.FileOpenDialog("Open",$PathOpen,, "KiX Files|*.kix;*.udf;*.k2k;*.udf|All Files|*.*",1)
    if $FileName
        $ = open(1,$Filename,2)
        if not @error
            $PathOpen = substr($FileName,1,instrrev($FileName,'\')-1)
            $ = writeprofilestring($Wordfile,"Global","PathOpen",$PathOpen)
            $frm.MousePointer   = 11
            $lblStatus1.Caption = ""
            $btnCopy.Enabled    =  0
            $btnSave.Enabled    =  0
            $btnClear.Enabled   =  1
            $txtTarget.Text     = ""
            $txtSource.Text     = ""
            $txtSource.BeginUpdate
            dim $in
            $nl = readline(1)
            while @error = 0
                $in = $in + $nl + @crlf
                $nl = readline(1)
            loop
            $in = substr($in,1,instrrev($in,@crlf)-1)
            $ = close(1)
            $txtSource.Text = $in
            $txtSource.EndUpdate
            $frm.MousePointer   = 0
            $lblStatus1.Caption = " " + $FileName
            if $txtSource.Text
                $btnConvert.Enabled = 1
            else
                $btnConvert.Enabled = 0
            endif
        endif
    endif
endfunction

function btnPreview_Click($data)
    dim $ie,$doc,$f,$t
    $ie = createobject("internetexplorer.application")
    $ie.addressbar=0
    $ie.menubar=0
    $ie.toolbar=0
    $ie.statusbar=0
    $ie.navigate("about:blank")
    $doc = $ie.document
    $doc.write("<html><head><title>PostPrep Preview</title></head>"+join(split($data,@crlf),"<br>")+"</html>")
    $ie.visible=1
    while setfocus("PostPrep Preview"sleep 0.01 loop
    $frm.show(2)
    while $ie.visible sleep 0.04 loop
    $frm.show(1)
endfunction

function btnSave_Click()
    dim 
_________________________