#69315 - 2002-08-23 06:59 PM
Re: KiXtart Golf Tournament IV: Anagrams (Part 2, The code!)
|
Howard Bullock
KiX Supporter
Registered: 2000-09-15
Posts: 5809
Loc: Harrisburg, PA USA
|
I wrote the KixGolf code and we have had this discussion previously about the spaces that would be required for example in "For Each $a IN $array" but I do not have the desire to code every command syntax that includes spaces as part of the syntax. the program as is provides an easy method to score a program giving a consistent measurement for which to compare scripts.
As for not including Asc(127), that was by design because I saw no reason anyone would include it as part of normal coding for these sessions of Fun and comradery. [ 23. August 2002, 19:00: Message edited by: Howard Bullock ]
|
Top
|
|
|
|
#69316 - 2002-08-23 07:04 PM
Re: KiXtart Golf Tournament IV: Anagrams (Part 2, The code!)
|
Howard Bullock
KiX Supporter
Registered: 2000-09-15
Posts: 5809
Loc: Harrisburg, PA USA
|
If anyone wants to improve upon the KixGolf scoring script feel free. I think that using regular expressions would be the easiest way to locate commands that require spaces, count them and them adjust the score accordingly. (See my last Kix Golf tournament code for how to use RegEx.) [ 23. August 2002, 19:08: Message edited by: Howard Bullock ]
|
Top
|
|
|
|
#69318 - 2002-08-23 07:30 PM
Re: KiXtart Golf Tournament IV: Anagrams (Part 2, The code!)
|
Fernando Madruga
Starting to like KiXtart
Registered: 2002-08-21
Posts: 149
Loc: Coimbra.Portugal.Europe.Earth....
|
Ok.
So I felt free to "improve/fix" KixGolf3 and here's the updated version, featuring only 2 changes: - Added a line with a version info and latest coder to "fix/change" something, plus a change history. - Fixed the 127 char (as I can see no reason why not to fix it.
Later, Madruga
code:
; KixGolf.kix (Version 3) ; ; V 3.0.1 (2002/08/23@18:30) - Fernando Madruga ; Fixed handling of CHR(127) and added version info ; ; This function scores the specified file and returns ; the KixGolf score. That is the total number of key strokes ; used to build a script not counting comments, spaces, tabs, ; or any ASCII character above 126. ; ; The script will start counting on "odd" (1,3,5,...) occurrences ; of ";!" and the script will stop counting after "even" (0,2,4,...) ; instances of ";!". Note that ";!" must be placed starting in column ; number 1. ; ;A debug mode has been added in this version. The debug mode ;is controlled with the use of ";~" at the beginning of the line like ; the count controller (;!) above. You start and stop debugging ;as many time as you like while counting is enabled. ; ;Debug data is written to a file in the same directory that this ;program resides. The file name is that of the target file name with ;".debug" as an extension. Data will only be written while counting is ;active. ; ;The data written if the character being analyzed, it's ASCII decimal ;value, if it was counted or not, and a running total. ; ;Syntax: %tmp%\kix32 kixgolf.kix $F=Kixgolf.kix ;
; $F must be initialized on the command line. ; Syntax: kix32 kixgolf.kix $F=test.kix ? ? "KixGolf score = " + KixGolf($F) ?
;! Function KixGolf($F) $debugfile=@ScriptDir+"\"+$F+".debug" Del $debugfile $Line=0 $Y=0 $D=0 $S=0 if open (1,$F) = 0 Do if $L $Line = $Line + 1 $ZZ = (left($L,2)=";~") $debug = $debug + $ZZ & 1 if $debug & $olddebug<>$debug WriteLog2($debugfile,"Debug Started at Line: " + $Line,1) WriteLog2($debugfile,"--------------------------------------------------") $olddebug=$debug endif if not $debug & $olddebug<>$debug WriteLog2($debugfile,"--------------------------------------------------") WriteLog2($debugfile,"Debug Stopped at Line: " + $Line,1) $olddebug=$debug endif $Z = (left($L,2)=";!") $Y = $Y + $Z & 1 if not $Z & not $ZZ $x=len($L) for $h=1 to $x $A=asc(substr($L,$h,1))-32 $D = $D + ($A=2) & 1 & not $S $S = $S + ($A=7) & 1 & not $D if $debug $Q = $D | $S if $Q<>$oldQ if $Q WriteLog2($debugfile,"Quotes ON at: " + chr($A+32)) else WriteLog2($debugfile,"Quotes OFF at: " + chr($A+32)) endif endif $oldQ=$Q endif if not $D & not $S & ($A=27) $h=$x+1 if $debug WriteLog2($debugfile,chr($A+32) + " " + ($A+32) + " Count=0 ") $text="Comment found. Ignore to EOL. Next character should be" + " 1st char of new line." WriteLog2($debugfile,$text) endif else $=$+($Y & (($A>0 & $A<96) | $D | $S)) if $debug $text=chr($A+32) + " " + ($A+32) + " Count=" + ($Y & (($A>0 & $A<96) | $D | $S)) + " " + $ WriteLog2($debugfile,$text) endif endif next endif endif $L=ReadLine(1) Until @error else "Bad File Name: $F" ? $="NA" endif if $D | $S ? "Mis-matched quotes. Probable score error." ? endif if $olddebug ? "Debug File: " +$debugfile ? endif $KixGolf=$ EndFunction
;-------------------------------------------------------------------------------------------------- ;FUNCTION WriteLog2() ; ;AUTHOR Howard A. Bullock (hbullock@tycoelectronics.com) ; ;ACTION Generic logging facility for scripts. Appends log entry to a file with an ; optional TimeStamp. ; ;SYNTAX WriteLog2($File, $text, [0|1]) ; ;PARAMETERS $File (Required) - String value ; $text (Required) - String value ; $TimeStamp (Optional) Default(0) no TimeStamp (1 or 0) ; ; ;REMARKS This function writes (appends) an optionally time stamped log entry to the file ; defined in function. This function searches for the first unused file handle, ; open the file, and write the entry. The file handle is then closed. When the ; function is unable to perform its it write the error is displayed in a message box. ; ;RETURNS Nothing ; ;DEPENDENCIES None ; ;EXAMPLES WriteLog2("junk.txt","This is a test") ; WriteLog2("junk.txt","This is a test",0) ; WriteLog2("junk.txt","This is a test",1) ; ; Function WriteLog2($File, $Text, optional $TimeStamp) dim $RC, $File, $text, $FH, $TimeStamp $FH=1 $RC=Open ($FH, $File, 5) while $RC = -3 $FH=$FH +1 $RC=Open ($FH, $File, 5) Loop Select Case $RC=0 if ($TimeStamp=1) $TimeStamp = @Date + " " + @Time + " - " else $TimeStamp = "" endif $RC=Writeline ($FH, $TimeStamp + $Text + @CRLF) $RC=Close ($FH) Case $RC=-2 $text = "WriteLog2: Invalid file handle ($FH) specified when trying to Open $File." $RC=MessageBox ($text,"Script Error",48) Case $RC=-1 $text = "WriteLog2: Invalid file name ($File) specified for log file." $RC=MessageBox ($text,"Script Error",48) Case $RC=>0 $text = "System Error($RC) while attempting to open log file ($File)." $RC=MessageBox ($text,"Script Error",48) Endselect EndFunction ;--------------------------------------------------------------------------------------------------
_________________________
Later,
[b]Mad[/b]ruga
|
Top
|
|
|
|
#69319 - 2002-08-23 07:42 PM
Re: KiXtart Golf Tournament IV: Anagrams (Part 2, The code!)
|
Fernando Madruga
Starting to like KiXtart
Registered: 2002-08-21
Posts: 149
Loc: Coimbra.Portugal.Europe.Earth....
|
Eheh... Here's 3.0.2
It's nicer (and useful) to have the version info printed alongside the score, so one does not have to look into the script...
Later, Fernando Madruga
code:
; KixGolf.kix (Version 3) ; $Version = "3.0.2" ; (2002/08/23@18:45) - Fernando Madruga ; Now prints the version code with the score ; ; V 3.0.1 (2002/08/23@18:30) - Fernando Madruga ; Fixed handling of CHR(127) and added version info ; ; This function scores the specified file and returns ; the KixGolf score. That is the total number of key strokes ; used to build a script not counting comments, spaces, tabs, ; or any ASCII character above 126. ; ; The script will start counting on "odd" (1,3,5,...) occurrences ; of ";!" and the script will stop counting after "even" (0,2,4,...) ; instances of ";!". Note that ";!" must be placed starting in column ; number 1. ; ;A debug mode has been added in this version. The debug mode ;is controlled with the use of ";~" at the beginning of the line like ; the count controller (;!) above. You start and stop debugging ;as many time as you like while counting is enabled. ; ;Debug data is written to a file in the same directory that this ;program resides. The file name is that of the target file name with ;".debug" as an extension. Data will only be written while counting is ;active. ; ;The data written if the character being analyzed, it's ASCII decimal ;value, if it was counted or not, and a running total. ; ;Syntax: %tmp%\kix32 kixgolf.kix $F=Kixgolf.kix ;
; $F must be initialized on the command line. ; Syntax: kix32 kixgolf.kix $F=test.kix ? ? "KixGolf v" + $Version + " score = " + KixGolf($F) ?
;! Function KixGolf($F) $debugfile=@ScriptDir+"\"+$F+".debug" Del $debugfile $Line=0 $Y=0 $D=0 $S=0 if open (1,$F) = 0 Do if $L $Line = $Line + 1 $ZZ = (left($L,2)=";~") $debug = $debug + $ZZ & 1 if $debug & $olddebug<>$debug WriteLog2($debugfile,"Debug Started at Line: " + $Line,1) WriteLog2($debugfile,"--------------------------------------------------") $olddebug=$debug endif if not $debug & $olddebug<>$debug WriteLog2($debugfile,"--------------------------------------------------") WriteLog2($debugfile,"Debug Stopped at Line: " + $Line,1) $olddebug=$debug endif $Z = (left($L,2)=";!") $Y = $Y + $Z & 1 if not $Z & not $ZZ $x=len($L) for $h=1 to $x $A=asc(substr($L,$h,1))-32 $D = $D + ($A=2) & 1 & not $S $S = $S + ($A=7) & 1 & not $D if $debug $Q = $D | $S if $Q<>$oldQ if $Q WriteLog2($debugfile,"Quotes ON at: " + chr($A+32)) else WriteLog2($debugfile,"Quotes OFF at: " + chr($A+32)) endif endif $oldQ=$Q endif if not $D & not $S & ($A=27) $h=$x+1 if $debug WriteLog2($debugfile,chr($A+32) + " " + ($A+32) + " Count=0 ") $text="Comment found. Ignore to EOL. Next character should be" + " 1st char of new line." WriteLog2($debugfile,$text) endif else $=$+($Y & (($A>0 & $A<96) | $D | $S)) if $debug $text=chr($A+32) + " " + ($A+32) + " Count=" + ($Y & (($A>0 & $A<96) | $D | $S)) + " " + $ WriteLog2($debugfile,$text) endif endif next endif endif $L=ReadLine(1) Until @error else "Bad File Name: $F" ? $="NA" endif if $D | $S ? "Mis-matched quotes. Probable score error." ? endif if $olddebug ? "Debug File: " +$debugfile ? endif $KixGolf=$ EndFunction
;-------------------------------------------------------------------------------------------------- ;FUNCTION WriteLog2() ; ;AUTHOR Howard A. Bullock (hbullock@tycoelectronics.com) ; ;ACTION Generic logging facility for scripts. Appends log entry to a file with an ; optional TimeStamp. ; ;SYNTAX WriteLog2($File, $text, [0|1]) ; ;PARAMETERS $File (Required) - String value ; $text (Required) - String value ; $TimeStamp (Optional) Default(0) no TimeStamp (1 or 0) ; ; ;REMARKS This function writes (appends) an optionally time stamped log entry to the file ; defined in function. This function searches for the first unused file handle, ; open the file, and write the entry. The file handle is then closed. When the ; function is unable to perform its it write the error is displayed in a message box. ; ;RETURNS Nothing ; ;DEPENDENCIES None ; ;EXAMPLES WriteLog2("junk.txt","This is a test") ; WriteLog2("junk.txt","This is a test",0) ; WriteLog2("junk.txt","This is a test",1) ; ; Function WriteLog2($File, $Text, optional $TimeStamp) dim $RC, $File, $text, $FH, $TimeStamp $FH=1 $RC=Open ($FH, $File, 5) while $RC = -3 $FH=$FH +1 $RC=Open ($FH, $File, 5) Loop Select Case $RC=0 if ($TimeStamp=1) $TimeStamp = @Date + " " + @Time + " - " else $TimeStamp = "" endif $RC=Writeline ($FH, $TimeStamp + $Text + @CRLF) $RC=Close ($FH) Case $RC=-2 $text = "WriteLog2: Invalid file handle ($FH) specified when trying to Open $File." $RC=MessageBox ($text,"Script Error",48) Case $RC=-1 $text = "WriteLog2: Invalid file name ($File) specified for log file." $RC=MessageBox ($text,"Script Error",48) Case $RC=>0 $text = "System Error($RC) while attempting to open log file ($File)." $RC=MessageBox ($text,"Script Error",48) Endselect EndFunction ;--------------------------------------------------------------------------------------------------
[ 23. August 2002, 19:43: Message edited by: Fernando Madruga ]
_________________________
Later,
[b]Mad[/b]ruga
|
Top
|
|
|
|
#69321 - 2002-08-23 11:21 PM
Re: KiXtart Golf Tournament IV: Anagrams (Part 2, The code!)
|
Fernando Madruga
Starting to like KiXtart
Registered: 2002-08-21
Posts: 149
Loc: Coimbra.Portugal.Europe.Earth....
|
Well, I don't think that I know KiXtart enough to go beyong this... Maybe there are some fat bytes around, but it probably won't be me the one who trims them down...
As for the counter, I felt curious at one time and had a look at it; found a bug; reported; fixed; all done...
Right now I'm into analysing sealeopard's code in KSMS so that I have a better understanding of what/how to change/propose changes for.
One particular situation that I'm studying is a way to make inventory reports work quickly, even on some of the branches that are linked only by a 32/64 kbps Frame-Relay link. Using an access DB is most likely out of the question (too slow over a slow link), as will probably be using SQL server (needs client DB drivers), so I'll probably stick with an HTTP server (maybe something I'll hack quickly in perl) that will receive url requests that are in fact posting info, like http:81//myserver/inventory/pc_name="foobar"&processor="PIII@1100MHz"& etc, etc, etc and will then update a local DB with any postings received...
I'll let the group know when I'm done with that. I'm considering implementing KSMS sometime next week...
As for the Golf Contest, well, I'll keep checking the results to see if someone drops below 454...
Later, Madruga [ 23. August 2002, 23:23: Message edited by: Fernando Madruga ]
_________________________
Later,
[b]Mad[/b]ruga
|
Top
|
|
|
|
#69322 - 2002-08-24 02:26 AM
Re: KiXtart Golf Tournament IV: Anagrams (Part 2, The code!)
|
Howard Bullock
KiX Supporter
Registered: 2000-09-15
Posts: 5809
Loc: Harrisburg, PA USA
|
Fernando, I thought I recognized your name. Now that you mentioned Perl, I remember you from the Perl-Win32-Users@listserv.ActiveState.com.
|
Top
|
|
|
|
#69325 - 2002-08-25 12:22 AM
Re: KiXtart Golf Tournament IV: Anagrams (Part 2, The code!)
|
Anonymous
Anonymous
Unregistered
|
I must be seriously missing something because the last version of the script that passes test 2 (the empty array) is the 471 code. I am running Kix 4.10 build 99. Starting with the 466 code all scripts report: 'The output array has an incorrect size of 9'
Also the 457 code changes will work provided the number of anagrams is less than 10 (due to the SubStr($[$a],3) lower down)
|
Top
|
|
|
|
#69327 - 2002-08-24 02:06 PM
Re: KiXtart Golf Tournament IV: Anagrams (Part 2, The code!)
|
Fernando Madruga
Starting to like KiXtart
Registered: 2002-08-21
Posts: 149
Loc: Coimbra.Portugal.Europe.Earth....
|
You're {edit} half {/edit} right...
1st, the code DOES work in 4.11 RC 1 (the one I'm using) (wait a sec...) Just cheking under 4.10 and yes, it does work here!
code:
[d:\work\admin\kixtart\kix 2001 - 4.10]KIX32.EXE anagram_test.kix
feeling fleeing snooped spooned last salt slat ablest bleats stable tables UDF passed regular input array test admirer married aphrodite atrophied perseus peruses filets itself stifle hoes hose shoe ladder larded raddle filters lifters stifler trifles parental parlante paternal prenatal portes poster presto repost UDF passed another regular input array test UDF passed empty input array test UDF passed empty input string test UDF passed no anagram input array test The Anagram() UDF passed validation kix32 Kixgolf3.kix $f=anagram_test.kix
KixGolf v3.0.2 score = 454
I'd sugest copying the latest KixGolf (3.0.2) {edit} 3.0.3 {/edit} and using that instead.
As for not working with more than 10 anagrams, that is not true. I tried with these input:
code:
$inputarray='a1,1a,a2,2a,a3,3a,a4,4a,a5,5a,a6,6a,a7,7a,a8,8a,a9,9a,hack,snooped,tables, salt,spiff,feeling,spooned,last,grep,bleats,gas,ablest,fleeing,stable,slat,drive' $correctoutput='1a a1,2a a2,3a a3,4a a4,5a a5,6a a6,7a a7,8a a8,9a a9,feeling fleeing, snooped spooned,last salt slat,ablest bleats stable tables'
(sorry for the long lines...) {edit} I added some breaks into the big lines, just reassemble them when you copy/paste! {/edit}
and it turned out like this:
code:
1a a1 2a a2 3a a3 4a a4 5a a5 6a a6 7a a7 8a a8 9a a9 feeling fleeing snooped spooned last salt slat ablest bleats stable tables UDF passed regular input array test admirer married aphrodite atrophied perseus peruses filets itself stifle hoes hose shoe ladder larded raddle filters lifters stifler trifles parental parlante paternal prenatal portes poster presto repost UDF passed another regular input array test UDF passed empty input array test UDF passed empty input string test UDF passed no anagram input array test The Anagram() UDF passed validation kix32 Kixgolf3.kix $f=anagram_test.kix
KixGolf v3.0.2 score = 454
So I guess it DOES work with more than 10...
It does not work with anagrams returning more than 10 words (that's the purpose of $d - count the words in the anagram to be returned) so as to sort the results by number of words 1st)
And because that could happen quote: Each set of anagrams will not exceed 15 words per anagram
I decided to make a test case for that too:
code:
$inputarray='0123456789abcdef,123456789abcdef0,23456789abcdef01,3456789abcdef012, 456789abcdef0123,56789abcdef01234,6789abcdef012345,789abcdef0123456,89abcdef01234567, 9abcdef012345678,admirer,parental,whatever,trifles,repost,kixtart,raddle,lifters,tartkiz, atrophied,filters,warez,perseus,paternal,married,with,children,larded,hoes,poster,hose, filets,prenatal,parlante,itself,stifler,aphrodite,stifle,portes,shoe,ladder,peruses,presto' $correctoutput='admirer married,aphrodite atrophied,perseus peruses,filets itself stifle, hoes hose shoe,ladder larded raddle,filters lifters stifler trifles, parental parlante paternal prenatal,portes poster presto repost,0123456789abcdef 123456789abcdef0 23456789abcdef01 3456789abcdef012 456789abcdef0123 56789abcdef01234 6789abcdef012345 789abcdef0123456 89abcdef01234567 9abcdef012345678';
{edit} same as above... {/edit} And, as you said, it won't work on this one...
In that case, the code has to go "back" to a previous state with a score of 460 by sealeopard... And in this one, I can't cut any more bytes...
Later, Madruga
But that does give me another idea for KixGolf 3.0.3... Be back soon... [ 24. August 2002, 14:29: Message edited by: Fernando Madruga ]
_________________________
Later,
[b]Mad[/b]ruga
|
Top
|
|
|
|
#69328 - 2002-08-24 02:14 PM
Re: KiXtart Golf Tournament IV: Anagrams (Part 2, The code!)
|
Fernando Madruga
Starting to like KiXtart
Registered: 2002-08-21
Posts: 149
Loc: Coimbra.Portugal.Europe.Earth....
|
Now for an updated (3.0.3) version of KiXGolf 3... This version now prints the KiXtart version under wich it was started, like this:
code:
KixGolf v3.0.3 score = 460, running under KiXtart v4.10 {edit} another example: KixGolf v3.0.3 score = 460, running under KiXtart v4.11 RC 1 {/edit}
And here it is:
code:
; KixGolf.kix (Version 3) ; $Version = "3.0.3" ; (2002/08/24@13:15) - Fernando Madruga ; Now prints KiXtart version too ; ;$Version = "3.0.2" ; (2002/08/23@18:45) - Fernando Madruga ; Now prints the version code with the score ; ; V 3.0.1 (2002/08/23@18:30) - Fernando Madruga ; Fixed handling of CHR(127) and added version info ; ; This function scores the specified file and returns ; the KixGolf score. That is the total number of key strokes ; used to build a script not counting comments, spaces, tabs, ; or any ASCII character above 126. ; ; The script will start counting on "odd" (1,3,5,...) occurrences ; of ";!" and the script will stop counting after "even" (0,2,4,...) ; instances of ";!". Note that ";!" must be placed starting in column ; number 1. ; ;A debug mode has been added in this version. The debug mode ;is controlled with the use of ";~" at the beginning of the line like ; the count controller (;!) above. You start and stop debugging ;as many time as you like while counting is enabled. ; ;Debug data is written to a file in the same directory that this ;program resides. The file name is that of the target file name with ;".debug" as an extension. Data will only be written while counting is ;active. ; ;The data written if the character being analyzed, it's ASCII decimal ;value, if it was counted or not, and a running total. ; ;Syntax: %tmp%\kix32 kixgolf.kix $F=Kixgolf.kix ;
; $F must be initialized on the command line. ; Syntax: kix32 kixgolf.kix $F=test.kix ? ? "KixGolf v" + $Version + " score = " + KixGolf($F) + ", running under KiXtart v" + @KIX ?
;! Function KixGolf($F) $debugfile=@ScriptDir+"\"+$F+".debug" Del $debugfile $Line=0 $Y=0 $D=0 $S=0 if open (1,$F) = 0 Do if $L $Line = $Line + 1 $ZZ = (left($L,2)=";~") $debug = $debug + $ZZ & 1 if $debug & $olddebug<>$debug WriteLog2($debugfile,"Debug Started at Line: " + $Line,1) WriteLog2($debugfile,"--------------------------------------------------") $olddebug=$debug endif if not $debug & $olddebug<>$debug WriteLog2($debugfile,"--------------------------------------------------") WriteLog2($debugfile,"Debug Stopped at Line: " + $Line,1) $olddebug=$debug endif $Z = (left($L,2)=";!") $Y = $Y + $Z & 1 if not $Z & not $ZZ $x=len($L) for $h=1 to $x $A=asc(substr($L,$h,1))-32 $D = $D + ($A=2) & 1 & not $S $S = $S + ($A=7) & 1 & not $D if $debug $Q = $D | $S if $Q<>$oldQ if $Q WriteLog2($debugfile,"Quotes ON at: " + chr($A+32)) else WriteLog2($debugfile,"Quotes OFF at: " + chr($A+32)) endif endif $oldQ=$Q endif if not $D & not $S & ($A=27) $h=$x+1 if $debug WriteLog2($debugfile,chr($A+32) + " " + ($A+32) + " Count=0 ") $text="Comment found. Ignore to EOL. Next character should be" + " 1st char of new line." WriteLog2($debugfile,$text) endif else $=$+($Y & (($A>0 & $A<96) | $D | $S)) if $debug $text=chr($A+32) + " " + ($A+32) + " Count=" + ($Y & (($A>0 & $A<96) | $D | $S)) + " " + $ WriteLog2($debugfile,$text) endif endif next endif endif $L=ReadLine(1) Until @error else "Bad File Name: $F" ? $="NA" endif if $D | $S ? "Mis-matched quotes. Probable score error." ? endif if $olddebug ? "Debug File: " +$debugfile ? endif $KixGolf=$ EndFunction
;-------------------------------------------------------------------------------------------------- ;FUNCTION WriteLog2() ; ;AUTHOR Howard A. Bullock (hbullock@tycoelectronics.com) ; ;ACTION Generic logging facility for scripts. Appends log entry to a file with an ; optional TimeStamp. ; ;SYNTAX WriteLog2($File, $text, [0|1]) ; ;PARAMETERS $File (Required) - String value ; $text (Required) - String value ; $TimeStamp (Optional) Default(0) no TimeStamp (1 or 0) ; ; ;REMARKS This function writes (appends) an optionally time stamped log entry to the file ; defined in function. This function searches for the first unused file handle, ; open the file, and write the entry. The file handle is then closed. When the ; function is unable to perform its it write the error is displayed in a message box. ; ;RETURNS Nothing ; ;DEPENDENCIES None ; ;EXAMPLES WriteLog2("junk.txt","This is a test") ; WriteLog2("junk.txt","This is a test",0) ; WriteLog2("junk.txt","This is a test",1) ; ; Function WriteLog2($File, $Text, optional $TimeStamp) dim $RC, $File, $text, $FH, $TimeStamp $FH=1 $RC=Open ($FH, $File, 5) while $RC = -3 $FH=$FH +1 $RC=Open ($FH, $File, 5) Loop Select Case $RC=0 if ($TimeStamp=1) $TimeStamp = @Date + " " + @Time + " - " else $TimeStamp = "" endif $RC=Writeline ($FH, $TimeStamp + $Text + @CRLF) $RC=Close ($FH) Case $RC=-2 $text = "WriteLog2: Invalid file handle ($FH) specified when trying to Open $File." $RC=MessageBox ($text,"Script Error",48) Case $RC=-1 $text = "WriteLog2: Invalid file name ($File) specified for log file." $RC=MessageBox ($text,"Script Error",48) Case $RC=>0 $text = "System Error($RC) while attempting to open log file ($File)." $RC=MessageBox ($text,"Script Error",48) Endselect EndFunction ;--------------------------------------------------------------------------------------------------
Later, Madruga [ 24. August 2002, 14:20: Message edited by: Fernando Madruga ]
_________________________
Later,
[b]Mad[/b]ruga
|
Top
|
|
|
|
#69329 - 2002-08-24 02:53 PM
Re: KiXtart Golf Tournament IV: Anagrams (Part 2, The code!)
|
Anonymous
Anonymous
Unregistered
|
First my apologies I had amended the test data to check something and forgot about it! I inserted 2 null elements and they are returned as anagrams in the 466 code and following. Also the test for an empty array uses Redim $InputArray[0] If this used Redim $InputArray[5] (as I presumed in original coding) it would fail in the 466 code and following
Your second interpretation of my 'more than 10 anagrams' was the one meant. Namely an output line with more than 9 words on it will begin with a space character
|
Top
|
|
|
|
#69330 - 2002-08-24 03:37 PM
Re: KiXtart Golf Tournament IV: Anagrams (Part 2, The code!)
|
Anonymous
Anonymous
Unregistered
|
Just a note about the scoring program. From 4.10 you can use @ScriptName to get the name of the running program. If KixGolf is in your udf library, you can just use it in your test program and @ScriptName will be the name of your test script. I use my scoring program this way, and run scripts from my editing session (it saves the file to disk before executing it and so ReadLine picks up the current state of the edited script).
|
Top
|
|
|
|
Moderator: Glenn Barnas, NTDOC, Arend_, Jochen, Radimus, Allen, ShaneEP, Ruud van Velsen, Mart
|
0 registered
and 248 anonymous users online.
|
|
|