Page 1 of 1 1
Topic Options
#134179 - 2005-02-21 12:00 AM VarName indexer
NTDOC Administrator Offline
Administrator
*****

Registered: 2000-07-28
Posts: 11631
Loc: CA
Some how the code posted by Glenn broke the posting to the point where it was not possible to edit or delete.
NTDOC deleted the entire thread. Below are the results of the original posting minus the code which I'll host on KiXhelp.com if needed.

Original posting by: Glenn Barnas
133420 - 20/02/2005 07:56
Hey, guys!

Just about finishing a large project, and have been running without Explicit On, since development of some components is 3+ years old.

I'm now going back to find every Var in every UDF to make sure it's DIMmed, so I modified PostPrep to log the variables it encounters, by function where they were found. It outputs a txt file with each function name followed by the var names used in that function. Now I can easily take those lines and use them as DIM statements in each function.

Would this be worth posting? I'm not sure of PostPrep is still being maintained. This version of PostPrep is my modified version that outputs either HTML or UBB code.

Glenn


Reply from: sealeopard
Definitely go ahead with the posting.

Reply from: NTDOC
I'd love to see the script Glenn. Please post or provide a link for download if that's easier.


Reply from: Glenn Barnas
Posting it here for now.. the varname indexer was just cobbled together today, and I'd like some suggestions for how it might be more useful.

You'll still need the Wordfile.ini from the original to run. Notice that there are now two Convert buttons - Cvt HTM and Cvt UBB. Either will create a varnames.ini and varnames.txt file in the same dir as your script. I'll probably remove the .ini file once this script is polished.

Glenn

PS - these are the default colors - not my choice!


Top
#134180 - 2005-02-21 12:02 AM Re: VarName indexer
NTDOC Administrator Offline
Administrator
*****

Registered: 2000-07-28
Posts: 11631
Loc: CA
Glenn,

I'll get with you later on tonight if possible and get the script from you and test it out. Then if it can not be properly posted on Korg I'll host it in a zip file on my site.

You can e-mail me the script when you're ready.
ntdoc@kixhelp.com

Top
#134181 - 2005-02-21 01:15 AM Re: VarName indexer
Bryce Offline
KiX Supporter
*****

Registered: 2000-02-29
Posts: 3167
Loc: Houston TX
it was the evil in the kix2html() udf... right??
Top
#134182 - 2005-02-21 06:32 AM Re: VarName indexer
Glenn Barnas Administrator Offline
KiX Supporter
*****

Registered: 2003-01-28
Posts: 4402
Loc: New Jersey
No, that one mostly worked. It was the Kix2UBB udf.

Ron - Thanks, You've got mail.

Glenn
_________________________
Actually I am a Rocket Scientist! \:D

Top
#134183 - 2005-02-21 06:21 PM Re: VarName indexer
NTDOC Administrator Offline
Administrator
*****

Registered: 2000-07-28
Posts: 11631
Loc: CA
Glenn, no e-mail found, and none in spam folder either.
Top
#134184 - 2005-02-22 01:25 PM Re: VarName indexer
Glenn Barnas Administrator Offline
KiX Supporter
*****

Registered: 2003-01-28
Posts: 4402
Loc: New Jersey
It bounced back to me. I will send it to your work account.
_________________________
Actually I am a Rocket Scientist! \:D

Top
#134185 - 2005-02-22 08:50 PM Re: VarName indexer
NTDOC Administrator Offline
Administrator
*****

Registered: 2000-07-28
Posts: 11631
Loc: CA
I got the code, sent you an e-mail back. Found a couple issue you may want to correct before I post.
Top
#134186 - 2005-02-23 06:06 AM Re: VarName indexer
Glenn Barnas Administrator Offline
KiX Supporter
*****

Registered: 2003-01-28
Posts: 4402
Loc: New Jersey
Here's a test of the new PostPrep in UBB format:

still broken on long posts.. but can edit in UBB


Edited by Glenn Barnas (2005-02-23 06:07 AM)
_________________________
Actually I am a Rocket Scientist! \:D

Top
#134187 - 2005-02-23 06:11 AM Re: VarName indexer
Glenn Barnas Administrator Offline
KiX Supporter
*****

Registered: 2003-01-28
Posts: 4402
Loc: New Jersey
Next test of HTM:

[NTDOC testing editing of the HTML]

hmmm.. now that is weird. The PREVIEW looked great so I said go ahead and complete the post. The completed post is SCREWED UP, but the preview was not.


Edited by NTDOC (2005-02-23 07:54 AM)
_________________________
Actually I am a Rocket Scientist! \:D

Top
#134188 - 2005-02-23 06:13 AM Re: VarName indexer
Glenn Barnas Administrator Offline
KiX Supporter
*****

Registered: 2003-01-28
Posts: 4402
Loc: New Jersey
HTM seems to post fine, but can't edit it
_________________________
Actually I am a Rocket Scientist! \:D

Top
#134189 - 2005-02-23 07:57 AM Re: VarName indexer
NTDOC Administrator Offline
Administrator
*****

Registered: 2000-07-28
Posts: 11631
Loc: CA
Here is a small UBB post test.

Break On
<b>;ADDDED THIS LINE 01 </b>
Dim $SO,$Pause
$SO=SetOption('Explicit','On')
$SO=SetOption('NoVarsInStrings','On')
$SO=SetOption('WrapAtEOL','On')

GetMACInfo(<b>@WKSTA</b>)
<b>;ADDDED THIS LINE 02 </b>
Color 'w+r'
? 'Completed, press a key to continue...'
Get $Pause

Function GetMACInfo(optional $sComputer)
<b>;ADDDED THIS LINE 03 </b>
If Not $sComputer $sComputer=<b>@WKSTA</b> EndIf
Dim $objWMIService,$objItem,$colItems,$objShare,$wbemFlagReturnImmediately,$wbemFlagForwardOnly
Dim $strDefaultIPGateway,$strDNSDomainSuffixSearchOrder,$strDNSServerSearchOrder,$strGatewayCostMetric
Dim $strIPAddress,$strIPSecPermitIPProtocols,$strIPSecPermitTCPPorts,$strIPSecPermitUDPPorts,$strIPSubnet
Dim $strIPXFrameType,$strIPXNetworkNumber
$wbemFlagReturnImmediately=&10
$wbemFlagForwardOnly=&20
$objWMIService = GetObject("winmgmts:\\"+$sComputer+"\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration","WQL",$wbemFlagReturnImmediately+$wbemFlagForwardOnly)
For Each $objItem In $colItems
$strDefaultIPGateway=Join($objItem.DefaultIPGateway,",")
$strDNSDomainSuffixSearchOrder=Join($objItem.DNSDomainSuffixSearchOrder,",")
$strDNSServerSearchOrder=Join($objItem.DNSServerSearchOrder,",")
$strGatewayCostMetric=Join($objItem.GatewayCostMetric,",")
$strIPAddress=Join($objItem.IPAddress,",")
$strIPSecPermitIPProtocols=Join($objItem.IPSecPermitIPProtocols,",")
$strIPSecPermitTCPPorts=Join($objItem.IPSecPermitTCPPorts,",")
$strIPSecPermitUDPPorts=Join($objItem.IPSecPermitUDPPorts,",")
$strIPSubnet=Join($objItem.IPSubnet,",")
$strIPXFrameType=Join($objItem.IPXFrameType,",")
$strIPXNetworkNumber=Join($objItem.IPXNetworkNumber,",")

? "Caption: " + $objItem.Caption
? "Description: " + $objItem.Description
? "Index: " + $objItem.Index
? "IPAddress: " + $strIPAddress
? "IPSubnet: " + $strIPSubnet
? "DefaultIPGateway: " + $strDefaultIPGateway
? "MACAddress: " + $objItem.MACAddress
? "DNSDomainSuffixSearchOrder: " + $strDNSDomainSuffixSearchOrder
? "DNSHostName: " + $objItem.DNSHostName
? "DNSServerSearchOrder: " + $strDNSServerSearchOrder
? "ServiceName: " + $objItem.ServiceName
? "WINSPrimaryServer: " + $objItem.WINSPrimaryServer
? "WINSSecondaryServer: " + $objItem.WINSSecondaryServer
?
Next
EndFunction


Edited by NTDOC (2005-02-23 08:00 AM)

Top
#134190 - 2005-02-23 08:02 AM Re: VarName indexer
NTDOC Administrator Offline
Administrator
*****

Registered: 2000-07-28
Posts: 11631
Loc: CA
Glenn,

The UBB portion is using code from the HTML which it should not use at all. I manually removed the begin/end of the HTML code but as you can see there is still code in the middle that is used for the HTML portion.

I think if you can seperate out the UBB from the HTML it will work fine.

Top
#134191 - 2005-02-23 08:11 AM Re: VarName indexer
NTDOC_TEST Offline
Lurker

Registered: 2005-02-23
Posts: 3
Okay testing with a test account

There is no choice for posting type when replying.

Okay, I logged on with a normal user account and you CAN NOT edit the HTML post as it will screw it up.

You can not add any text or anything, you can't delete all the text and add HTML as it will still destroy the code.

Currently logged on with an Admin account on Korg I can add/edit/delete and everything looks, works fine with PostPrep.

So the culprit appears to be even more weird coding behavior of UBB Threads and NOT PostPrep.

Well, appears to show/mean that at least Mods can use PostPrep and still come back and edit okay - or is it still only Admins


Break On

Dim $SO,CHANGED THIS LINE WHILE LOGGED IN TO KORG WITH AN ADMIN ACCOUNT
$SO=SetOption('Explicit','On')
$SO=SetOption('NoVarsInStrings','On')
$SO=SetOption('WrapAtEOL','On')

GetMACInfo(@WKSTA)
Color 'w+r'
? 'Completed, press a key to continue...'
Get $Pause

Function GetMACInfo(optional $sComputer)
If Not $sComputer $sComputer=@WKSTA EndIf
Dim $objWMIService,$objItem,$colItems,$objShare,$wbemFlagReturnImmediately,$wbemFlagForwardOnly
Dim $strDefaultIPGateway,$strDNSDomainSuffixSearchOrder,$strDNSServerSearchOrder,
$strGatewayCostMetric
Dim $strIPAddress,$strIPSecPermitIPProtocols,$strIPSecPermitTCPPorts,$strIPSecPermitUDPPorts,
$strIPSubnet
Dim $strIPXFrameType,$strIPXNetworkNumber
$wbemFlagReturnImmediately=&10
$wbemFlagForwardOnly=&20
$objWMIService = GetObject("winmgmts:\\"+$sComputer+"\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration","WQL",
$wbemFlagReturnImmediately+$wbemFlagForwardOnly)
For Each $objItem In $colItems
$strDefaultIPGateway=Join($objItem.DefaultIPGateway,",")
$strDNSDomainSuffixSearchOrder=Join($objItem.DNSDomainSuffixSearchOrder,",")
$strDNSServerSearchOrder=Join($objItem.DNSServerSearchOrder,",")
$strGatewayCostMetric=Join($objItem.GatewayCostMetric,",")
$strIPAddress=Join($objItem.IPAddress,",")
$strIPSecPermitIPProtocols=Join($objItem.IPSecPermitIPProtocols,",")
$strIPSecPermitTCPPorts=Join($objItem.IPSecPermitTCPPorts,",")
$strIPSecPermitUDPPorts=Join($objItem.IPSecPermitUDPPorts,",")
$strIPSubnet=Join($objItem.IPSubnet,",")
$strIPXFrameType=Join($objItem.IPXFrameType,",")
$strIPXNetworkNumber=Join($objItem.IPXNetworkNumber,",")

? "Caption: " + $objItem.Caption
? "Description: " + $objItem.Description
? "Index: " + $objItem.Index
? "IPAddress: " + $strIPAddress
? "IPSubnet: " + $strIPSubnet
? "DefaultIPGateway: " + $strDefaultIPGateway
? "MACAddress: " + $objItem.MACAddress
? "DNSDomainSuffixSearchOrder: " + $strDNSDomainSuffixSearchOrder
? "DNSHostName: " + $objItem.DNSHostName
? "DNSServerSearchOrder: " + $strDNSServerSearchOrder
? "ServiceName: " + $objItem.ServiceName
? "WINSPrimaryServer: " + $objItem.WINSPrimaryServer
? "WINSSecondaryServer: " + $objItem.WINSSecondaryServer
?
Next
EndFunction


Break On
Dim $SO,$Pause
$SO=SetOption('Explicit','On')
$SO=SetOption('NoVarsInStrings','On')
$SO=SetOption('WrapAtEOL','On')

GetMACInfo(@WKSTA)
Color 'w+r'
? 'Completed, press a key to continue...'
Get $Pause

Function GetMACInfo(optional $sComputer)
If Not $sComputer $sComputer=@WKSTA EndIf
Dim $objWMIService,$objItem,$colItems,$objShare,$wbemFlagReturnImmediately,$wbemFlagForwardOnly
Dim $strDefaultIPGateway,$strDNSDomainSuffixSearchOrder,$strDNSServerSearchOrder,
$strGatewayCostMetric
Dim $strIPAddress,$strIPSecPermitIPProtocols,$strIPSecPermitTCPPorts,$strIPSecPermitUDPPorts,
$strIPSubnet
Dim $strIPXFrameType,$strIPXNetworkNumber
$wbemFlagReturnImmediately=&10
$wbemFlagForwardOnly=&20
$objWMIService = GetObject("winmgmts:\\"+$sComputer+"\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration","WQL",
$wbemFlagReturnImmediately+$wbemFlagForwardOnly)
For Each $objItem In $colItems
$strDefaultIPGateway=Join($objItem.DefaultIPGateway,",")
$strDNSDomainSuffixSearchOrder=Join($objItem.DNSDomainSuffixSearchOrder,",")
$strDNSServerSearchOrder=Join($objItem.DNSServerSearchOrder,",")
$strGatewayCostMetric=Join($objItem.GatewayCostMetric,",")
$strIPAddress=Join($objItem.IPAddress,",")
$strIPSecPermitIPProtocols=Join($objItem.IPSecPermitIPProtocols,",")
$strIPSecPermitTCPPorts=Join($objItem.IPSecPermitTCPPorts,",")
$strIPSecPermitUDPPorts=Join($objItem.IPSecPermitUDPPorts,",")
$strIPSubnet=Join($objItem.IPSubnet,",")
$strIPXFrameType=Join($objItem.IPXFrameType,",")
$strIPXNetworkNumber=Join($objItem.IPXNetworkNumber,",")

? "Caption: " + $objItem.Caption
? "Description: " + $objItem.Description
? "Index: " + $objItem.Index
? "IPAddress: " + $strIPAddress
? "IPSubnet: " + $strIPSubnet
? "DefaultIPGateway: " + $strDefaultIPGateway
? "MACAddress: " + $objItem.MACAddress
? "DNSDomainSuffixSearchOrder: " + $strDNSDomainSuffixSearchOrder
? "DNSHostName: " + $objItem.DNSHostName
? "DNSServerSearchOrder: " + $strDNSServerSearchOrder
? "ServiceName: " + $objItem.ServiceName
? "WINSPrimaryServer: " + $objItem.WINSPrimaryServer
? "WINSSecondaryServer: " + $objItem.WINSSecondaryServer
?
Next
EndFunction


Break On
Dim $SO,$Pause
$SO=SetOption('Explicit','On')
$SO=SetOption('NoVarsInStrings','On')
$SO=SetOption('WrapAtEOL','On')

GetMACInfo(@WKSTA)
Color 'w+r'
? 'Completed, press a key to continue...'
Get $Pause

Function GetMACInfo(optional $sComputer)
If Not $sComputer $sComputer=@WKSTA EndIf
Dim $objWMIService,$objItem,$colItems,$objShare,$wbemFlagReturnImmediately,$wbemFlagForwardOnly
Dim $strDefaultIPGateway,$strDNSDomainSuffixSearchOrder,$strDNSServerSearchOrder,
$strGatewayCostMetric
Dim $strIPAddress,$strIPSecPermitIPProtocols,$strIPSecPermitTCPPorts,$strIPSecPermitUDPPorts,
$strIPSubnet
Dim $strIPXFrameType,$strIPXNetworkNumber
$wbemFlagReturnImmediately=&10
$wbemFlagForwardOnly=&20
$objWMIService = GetObject("winmgmts:\\"+$sComputer+"\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration","WQL",
$wbemFlagReturnImmediately+$wbemFlagForwardOnly)
For Each $objItem In $colItems
$strDefaultIPGateway=Join($objItem.DefaultIPGateway,",")
$strDNSDomainSuffixSearchOrder=Join($objItem.DNSDomainSuffixSearchOrder,",")
$strDNSServerSearchOrder=Join($objItem.DNSServerSearchOrder,",")
$strGatewayCostMetric=Join($objItem.GatewayCostMetric,",")
$strIPAddress=Join($objItem.IPAddress,",")
$strIPSecPermitIPProtocols=Join($objItem.IPSecPermitIPProtocols,",")
$strIPSecPermitTCPPorts=Join($objItem.IPSecPermitTCPPorts,",")
$strIPSecPermitUDPPorts=Join($objItem.IPSecPermitUDPPorts,",")
$strIPSubnet=Join($objItem.IPSubnet,",")
$strIPXFrameType=Join($objItem.IPXFrameType,",")
$strIPXNetworkNumber=Join($objItem.IPXNetworkNumber,",")

? "Caption: " + $objItem.Caption
? "Description: " + $objItem.Description
? "Index: " + $objItem.Index
? "IPAddress: " + $strIPAddress
? "IPSubnet: " + $strIPSubnet
? "DefaultIPGateway: " + $strDefaultIPGateway
? "MACAddress: " + $objItem.MACAddress
? "DNSDomainSuffixSearchOrder: " + $strDNSDomainSuffixSearchOrder
? "DNSHostName: " + $objItem.DNSHostName
? "DNSServerSearchOrder: " + $strDNSServerSearchOrder
? "ServiceName: " + $objItem.ServiceName
? "WINSPrimaryServer: " + $objItem.WINSPrimaryServer
? "WINSSecondaryServer: " + $objItem.WINSSecondaryServer
?
Next
EndFunction


Break On
Dim $SO,$Pause
$SO=SetOption('Explicit','On')
$SO=SetOption('NoVarsInStrings','On')
$SO=SetOption('WrapAtEOL','On')

GetMACInfo(@WKSTA)
Color 'w+r'
? 'Completed, press a key to continue...'
Get $Pause

Function GetMACInfo(optional $sComputer)
If Not $sComputer $sComputer=@WKSTA EndIf
Dim $objWMIService,$objItem,$colItems,$objShare,$wbemFlagReturnImmediately,$wbemFlagForwardOnly
Dim $strDefaultIPGateway,$strDNSDomainSuffixSearchOrder,$strDNSServerSearchOrder,
$strGatewayCostMetric
Dim $strIPAddress,$strIPSecPermitIPProtocols,$strIPSecPermitTCPPorts,$strIPSecPermitUDPPorts,
$strIPSubnet
Dim $strIPXFrameType,$strIPXNetworkNumber
$wbemFlagReturnImmediately=&10
$wbemFlagForwardOnly=&20
$objWMIService = GetObject("winmgmts:\\"+$sComputer+"\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration","WQL",
$wbemFlagReturnImmediately+$wbemFlagForwardOnly)
For Each $objItem In $colItems
$strDefaultIPGateway=Join($objItem.DefaultIPGateway,",")
$strDNSDomainSuffixSearchOrder=Join($objItem.DNSDomainSuffixSearchOrder,",")
$strDNSServerSearchOrder=Join($objItem.DNSServerSearchOrder,",")
$strGatewayCostMetric=Join($objItem.GatewayCostMetric,",")
$strIPAddress=Join($objItem.IPAddress,",")
$strIPSecPermitIPProtocols=Join($objItem.IPSecPermitIPProtocols,",")
$strIPSecPermitTCPPorts=Join($objItem.IPSecPermitTCPPorts,",")
$strIPSecPermitUDPPorts=Join($objItem.IPSecPermitUDPPorts,",")
$strIPSubnet=Join($objItem.IPSubnet,",")
$strIPXFrameType=Join($objItem.IPXFrameType,",")
$strIPXNetworkNumber=Join($objItem.IPXNetworkNumber,",")

? "Caption: " + $objItem.Caption
? "Description: " + $objItem.Description
? "Index: " + $objItem.Index
? "IPAddress: " + $strIPAddress
? "IPSubnet: " + $strIPSubnet
? "DefaultIPGateway: " + $strDefaultIPGateway
? "MACAddress: " + $objItem.MACAddress
? "DNSDomainSuffixSearchOrder: " + $strDNSDomainSuffixSearchOrder
? "DNSHostName: " + $objItem.DNSHostName
? "DNSServerSearchOrder: " + $strDNSServerSearchOrder
? "ServiceName: " + $objItem.ServiceName
? "WINSPrimaryServer: " + $objItem.WINSPrimaryServer
? "WINSSecondaryServer: " + $objItem.WINSSecondaryServer
?
Next
EndFunction


If OPEN(1,"%temp%\computerattribs.txt", 5)= 0
$out = WriteLine(1, $strComp+"*"+$strLocation+"*"+$strDescription+"*"+$strOS+"*"+$strOSVer+"*"+$strOSSP+"*"+@crlf)
$x = CLOSE(1)
EndIf
Next


Function ModifyLogonScript($DN,$Script)
Dim $User, $Users
$Users = GetObject('LDAP://'+$DN)
For Each $User In $Users
If $user.class = "USER"
If $User.loginscript <> $Script
? "Acct " +$User.SamAccountName +" = " + $User.loginscript + " <-> " + $Script
EndIf
$user.loginscript=$Script
$user.SetInfo
EndIf
Next
EndFunction





Edited by NTDOC (2005-02-23 08:29 AM)

Top
#134192 - 2005-02-23 08:14 AM Re: VarName indexer
NTDOC_TEST Offline
Lurker

Registered: 2005-02-23
Posts: 3
Okay will try some UBB posting too, but remove the HTML from it.

Break On
Dim $SO,$Pause
$SO=SetOption('Explicit','On')
$SO=SetOption('NoVarsInStrings','On')
$SO=SetOption('WrapAtEOL','On')

Function ModifyLogonScript($DN,$Script)
Dim $User, $Users
$Users = GetObject('LDAP://'+$DN)
For Each $User In $Users
If $user.class = "USER"
If $User.loginscript <> $Script
? "Acct " +$User.SamAccountName +" = " + $User.loginscript + " <-> " + $Script
EndIf
$user.loginscript=$Script
$user.SetInfo
EndIf
Next
EndFunction

Top
#134193 - 2005-02-23 08:31 AM Re: VarName indexer
NTDOC Administrator Offline
Administrator
*****

Registered: 2000-07-28
Posts: 11631
Loc: CA
Glenn,

Please see the post above. Logged on with Admin rights allows PostPrep to work great. Somehow we need to get an update to this stupid UBB Threads software.

Top
#134194 - 2005-02-23 02:01 PM Re: VarName indexer
Glenn Barnas Administrator Offline
KiX Supporter
*****

Registered: 2003-01-28
Posts: 4402
Loc: New Jersey
OK - so, no need to remove the minimal HTM from the UBB Section then? What about the method of embedding a HTM tag in an HTM tag that appears in your code to make that tag display and not be interpreted?

I'll polish the varname indexer code tonight and we can post it for that purpose at least. I think PP V2 is at least 2 weeks away based on my free time.

Thanks for the help!

Glenn
_________________________
Actually I am a Rocket Scientist! \:D

Top
#134195 - 2005-02-23 03:03 PM Re: VarName indexer
Kdyer Offline
KiX Supporter
*****

Registered: 2001-01-03
Posts: 6241
Loc: Tigard, OR
Doc/Glenn,

I am intersted.. Can you send me the code in e-mail?

Thanks,

Kent
_________________________
Utilize these resources:
UDFs (Full List)
KiXtart FAQ & How to's

Top
#134196 - 2005-02-23 04:41 PM Re: VarName indexer
Glenn Barnas Administrator Offline
KiX Supporter
*****

Registered: 2003-01-28
Posts: 4402
Loc: New Jersey
We're still cleaning it up, but here's the current code. It generates a VarNames.txt in the same folder as your source file. This only works in HTM conversions due to a problem with the UBB parser that I haven't had time to fix yet.

;; KixGenerated: 2005/02/23 - 10:31:05  

; UBB PostPrep 1.0.3.3 (Engine threads revision 1.0.1)
; ----------------------------------------------------------------------------------------------
; MINIMUM REQUIREMENTS
;
; KIXTART 4.20 (WKiX32)
; KIXFORMS 2.3.0 Beta 3 (build 41)
; ----------------------------------------------------------------------------------------------
; AUTHORs
; Jochen Polster - Form, Controls, Design, Codestarter
; Jooel Nieminen - Conversion Engine !
; ----------------------------------------------------------------------------------------------
; ACKNOWLEDGEMENTS
; Shawn Tassie (for Kixforms of course!)
; Richard Howarth (for pointing out the <br>-tag Issue and for being such a dude)
; All KiXtart Enthusiasts for which we wrote this
; ----------------------------------------------------------------------------------------------
; VERSION HISTORY
;
; 1.0.3.4 - 02/20/2005 Glenn Barnas - modularized source, updated conversion engines
; to support HTM & UBB, added variable name logging feature
;
; 1.0.3.3 - 06/06/2004 converted to support ubbThreads
; http://www.kixtart.org/ubbthreads/editpost.php?Cat=&Board=UBB13&Number=119546
;
; 1.0.3.2 - 09/25/2003 Form now remembers last size (somehow lost in 1.0.3.1)
; http://www.kixtart.org/cgi-bin/ultimatebb.cgi?ubb=get_topic&f=13&t=000687
;
; 1.0.3.1 - 09/25/2003 Fixed to reflect changed Anchor Properties, new engine added
; http://www.kixtart.org/board/ultimatebb.php?ubb=get_topic;f=13;t=000686
;
; 1.0.3 - 03/17/2003 Form now resizable
; http://www.kixtart.org/board/ultimatebb.php?ubb=get_topic;f=13;t=000568
;
; 1.0.2 - 03/10/2003 replaced Buttons with ToolButtons
; http://www.kixtart.org/board/ultimatebb.php?ubb=get_topic;f=13;t=000562
;
; 1.0.1 - 01/28/2003 bug-fixes to conversion engine, optional WordWrap added
; http://www.kixtart.org/board/ultimatebb.php?ubb=get_topic;f=13;t=000512
;
; 1.0 - 01/27/2003 Initial worthwhile release
; http://www.kixtart.org/board/ultimatebb.php?ubb=get_topic;f=13;t=000510
;
; 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 = 41
$Version = "1.0.3.4gb"
$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, $WordFile
$Sections = "Comments","Strings","Numbers","Commands","Functions","Macros","Operators","Variables"


;;
;;======================================================================
;;
;;FUNCTION EnumIni()
;;
;;ACTION Enumerates sections or keys of an INI file
;;
;;AUTHOR Glenn Barnas / FRIT-EROC
;;
;;SYNTAX EnumIni($File [, $Section])
;;
;;PARAMETERS $File - REQUIRED, path/name of INI file to examine
;;
;; $Section - OPTIONAL, Section name to parse
;;
;;REMARKS Returns an array containing the sections in an INI file, or
;; an array of each key in a specified section. Errors are returned
;; for non-existant files or INI file reads. If the specified file
;; contains no sections, or the specified section contains no keys,
;; a successful exit is returned with no array. Thus, a For Each loop
;; will properly perform no iterations if no data is returned.
;; CAUTION - no error is returned for empty files, or nonexistant sections.
;;
;;RETURNS Array of sections or keys in a section
;;
;;DEPENDENCIES none
;;
;;TESTED WITH Kix 4.2+, NT4, W2K, WXP, W2K3
;;
;;EXAMPLES $Sections = EnumIni('.\config.ini')
;; $Keys = EnumIni('.\config.ini', 'Common')
;
Function EnumIni($fSrcFile, OPTIONAL $fSectName)

Dim $fSectList

; die if the file doesn't exist
If Exist($fSrcFile) = 0
Exit 2
EndIf

; Get the list of sections or keys
$fSectList = ReadProfileString($fSrcFile, $fSectName, '')
; Return if error occurred
If @ERROR
Exit @ERROR
EndIf

; If len is >0, return an array of sections
; If len is 0, either no sections or keys exist, or an invalid section name was specified. Return nothing.
If Len($fSectList) > 0
$EnumIni = Split(left($fSectList,len($fSectList)-1), Chr(10))
EndIF

Exit 0

EndFunction




; initialization
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"))
$LastSize = split(readprofilestring($Wordfile,"Global","FormSize"),',')
$LastLocation = split(readprofilestring($Wordfile,"Global","FormLocation"),',')
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 = "Universal Postprep " + $Version
$frm.Icon = @scriptdir + "\Kix.ico"
$frm.Resizable = 1
$frm.MaxButton = 1
$frm.MinimumSize = 700,620
$frm.SizeGripStyle = 1
$frm.ClipChildren = 1


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


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


$hypBoard = $frm.HyperLink("Bulletin Board",$frm.ClientWidth-87, $frm.ClientHeight-37, 100, 20)
$hypBoard.Value = "http://www.kixtart.org/ubbthreads/ubbthreads.php?Cat="
$hypBoard.ToolTip = $hypBoard.Value
$hypBoard.Anchor = 2+8


$txtSource = $frm.TextBox(,3,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.Anchor = 1+2+4+8
$txtSource.OnChange = "TextSource_Change()"
$txtSource.MaxLength = 0


$txtTarget = $frm.TextBox(,3,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
$txtTarget.Anchor = 2+4+8
$txtTarget.MaxLength = 0


$lblStatus1 = $frm.Label("",3,$frm.ClientHeight-17,$frm.ClientWidth/3*2,16)
$lblStatus1.BorderStyle = 5
$lblStatus1.Anchor = 2+4+8


$lblStatus2 = $frm.Label("",$lblStatus1.Right+3,$frm.ClientHeight-17,$frm.ClientWidth/3-6,16)
$lblStatus2.BorderStyle = 5
$lblStatus2.Anchor = 2+8


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


$btnOpen = btn_Create($frm,"Open...",$txtTarget.Right+9,5,92,25,1,5,"btnOpen_Click()",1,"1+8")
$btnClear = btn_Create($frm,"Clear",$txtTarget.Right+9,$btnOpen.Bottom,92,25,44,5,"btnClear_Click()",0,"1+8")
$btnKeyWords = btn_Create($frm,"Keywords...",$txtTarget.Right+9,$btnClear.Bottom,92,25,41,5,"btnKeyWords_Click()",1,"1+8")
$btnColor = btn_Create($frm,"Set Colors...",$txtTarget.Right+9,$btnKeyWords.Bottom,92,25,17,5,"btnColor_Click()",1,"1+8")
$fraFormat = $frm.GroupBox("Convert:",$txtTarget.Right+9,$btnColor.Bottom+5,92,239)
$fraFormat.Anchor = 1+8


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 = $fraFormat.CheckBox("Statistics",6, $txtFormat7.Bottom+4,80,15)
$chkShowStats.Value = $ShowStatistics
$chkShowStats.onclick = "chkShowStats_CLick($$chkShowStats.Value)"


$chkWordWrap = $fraFormat.CheckBox("Borders",6, $chkShowStats.Bottom+2,80,15)
$chkWordWrap.Value = $wrap
$chkWordWrap.onclick = "chkWordWrap_CLick($$chkWordWrap.Value)"


$btnConvertH = btn_Create($frm,"Cvt HTM",$txtTarget.Right+9,$fraFormat.Bottom+10,92,25,36,5,"btnConvert_Click(0)",0,"1+8")
$btnConvertU = btn_Create($frm,"Cvt UBB",$txtTarget.Right+9,$btnConvertH.Bottom, 92,25,36,5,"btnConvert_Click(1)",0,"1+8")
$btnPreview = btn_Create($frm,"Preview",$txtTarget.Right+9,$btnConvertU.Bottom, 92,25,43,5,"btnPreview_Click($$txtTarget.text)",0,"1+8")
$btnCopy = btn_Create($frm,"Copy All",$txtTarget.Right+9,$btnPreview.Bottom, 92,25,7,5,"btnCopy_Click()",0,"1+8")
$btnSave = btn_Create($frm,"Save As...",$txtTarget.Right+9,$btnCopy.Bottom, 92,25,3,5,"btnSave_Click()",0,"1+8")


if vartype($LastSize) > 8192 and ubound($LastSize) > 0
if val($LastSize[0]) > 810 and val($LastSize[1]) > 620
$frm.Size = val($LastSize[0]),val($LastSize[1])
endif
endif
$txtSource.SetFocus
if vartype($LastLocation) > 8192 and ubound($LastLocation) > 0
$frm.Location = val($LastLocation[0]),val($LastLocation[1])
else
$frm.Center
endif


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


$ = writeprofilestring($Wordfile,"Global","FormSize","" + $frm.ClientWidth + "," + $frm.ClientHeight)
$ = writeprofilestring($Wordfile,"Global","FormLocation","" + $frm.Left + "," + $frm.Top)


; Form Functions
function btn_Create($ob,$z1,$z2,$z3,$z4,$z5,$z6,$z7,$z8,$z9,$z10)
dim $,$!
$ = "$$"
$! = execute('$$btn_Create=$$ob.ToolButton("$z1",$z2,$z3,$z4,$z5)
$$btn_Create.Icon=$z6
$$btn_Create.BorderStyle=$z7
$$btn_Create.onclick="$$z8"
$$btn_Create.Enabled=$z9
$$btn_Create.Anchor=$z10
'
)
endfunction


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
$btnConvertH.Enabled = 0
$btnConvertU.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($Format)
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
If $Format
$out = kix2ubb($txtSource.Text,$HColors,$fb,$Functions,$Commands,$wrap)
Else
$out = kix2htm($txtSource.Text,$HColors,$fb,$Functions,$Commands,$wrap
Search the board with:
superb Board Search
or try with google:
Google
Web kixtart.org