PDA

View Full Version : Any interest in this?


headhawg
02-08-2018, 11:56 AM
My interest in coding has had a resurgence lately so I have been working on a couple of things. One of them is a scratch program for Bris files. I have some of NCG's programs and as many of you know the programs don't allow the user to unscratch; you have to reload the data file and start again from...um...scratch. :eek:

Is there any interest in this? I know that a couple of years ago JustCoolGene was selling a program called Scratch Manager. It was kind of expensive, and maybe he didn't sell too many copies as it's off the market AFAIK. My program won't be that sophisticated; it will just rewrite the .drf file without the scratched horses so every time the modified file is opened there will be no need to re-scratch. I'm asking about the amount of interest as I would have to make it more user-friendly if I am going to release it to the public. The user-friendly part will take a lot more time.

It will probably be free of charge. Maybe users can donate to the PA site. I will work out the details when needed. I actually have to finish coding it first. :D

jim michalak
02-08-2018, 11:19 PM
i would be interested.

headhawg, do you code spot plays ? my old programmer, stevan farmer who did a lot of work for me, all of it excellent informed me that due to time constraints he will no longer be doing this type of work anymore and that includes for norcal greg. i would be willing to pay for it, of course. thanks.

Vinnie
02-08-2018, 11:26 PM
Hello Headhawg:

I would also be very interested. I have several of NCG's programs as well and to have that feature added or to be able to utilize such a thing would be excellent indeed. Same as the person that posted prior, I would of course be willing to pay for such a useful and needed development. :) Hope that all is well with you Headhawg? :)

Floyd
02-09-2018, 07:57 AM
I, too, would be interested in this tool! It would make my home life a bit more pleasant:
"What are you swearing at NOW?"
"Nothing, dear."
"Did you mess up the scratches AGAIN??"
*Mumbles.*

headhawg
02-09-2018, 08:54 AM
220+ views and only three takers. Now I know why JustCoolGene stopped selling Scratch Manager. :D

I am still working on it and will take me a little bit of time to finish, but I will have PA post it here or maybe use Dropbox or some other cloud space service. Floyd got me with his post. :lol: I have to complete it now to save his home life. :p

@jim michalak -- I am just a guy who codes for some enjoyment (although many times I feel like Floyd and scratches :)). I am nowhere close to being a professional for hire. A guy like Stevan Farmer probably had a code shell to import data files, create a GUI, routines for loading/saving files, etc. When he was given spot plays to code most of the programming was likely done. That's why NCG's stuff and Pandy's PowerPace program looked and worked in similar ways.

So the short answer to your question is, yes I could probably code spot plays, but writing something for you would take too long at the moment. I am learning a new programming language and don't have a code shell. Once I get more skilled and create a "handicapping software template" I would take on the challenge if I have the time.

@Vinnie -- I am doing ok, thanks. How's you?

I just want to be clear about something: my little scratch utility will only change the .drf data file to eliminate scratched horses so that they are not included in the calculations. I cannot alter the vendor's software directly as I don't have access to the source code. So while it would be great to be able to unscratch in NCG's Pace View program, for example, my program won't add that ability.

vegasone
02-09-2018, 12:32 PM
Coding the program should be fairly easy once you get the hang of your language. Most programs I believe use the entry field to put a code indicating the horse is scratched. At least what I do. This way the original contents are kept intact. There will be some issues with some of the fields that you should be aware of and should test quite a few days worth.

headhawg
02-09-2018, 01:22 PM
@vegasone

Yes, an "S" in field 5 indicates scratches. When I was (emphasis on was) coding HHXv3 that's how I was going to handle scratched horses. Somebody had mentioned that in a thread and I thought that was a clever and efficient way to handle scratches. HHX would then only do the calculations on those horses without an "S" in that field. EZ breezy. The problem is that I don't think that is how some (most?) of these programs handle scratches. They might use some kind of internal flag to figure that out, who knows? It would probably depend on the skill of the coder.

Yeah I will do a reasonable amount of testing. I'll release it as a beta and have the users just tell me about all of the bugs. ;) This is mostly a coding project for fun, not some kind of commercial release.

vegasone
02-09-2018, 11:19 PM
5 Entry CHARACTER X 1 A- part of A entry B- part of B entry C- part of C entry F- part of FIELD S- if scratched


this is actual data structure of bris files so would mean that all software should recognize scratches


http://www.brisnet.com/cgi-bin/static.cgi?page=mcstruct

headhawg
02-11-2018, 10:32 AM
I'm going to use this thread as kind of a developer's blog to keep me on task. This is a screenshot of the main screen. I'm not sure this is how I want to implement it yet but it's the working screen for now. Currently the only buttons that work are the Download Scratch File and Exit Program. Each button has a tool tip. I'm debating about using a standard menu as well, but with the user having limited options I don't think I want to complicate things.

I'm still working through learning a new language and using a new GUI creator which is a language in itself. I'm not a gifted coder so this may take a while. A long while. :)

It seems like you have to double-click on the attachment for a larger view without having weird colors being displayed.

headhawg
02-14-2018, 01:46 PM
Made a mistake and lost some time having to redo some things. :mad: After that I had to step away from coding. Back to it today and working on parsing the Equibase XML file. The goal is to give the user an option to manually scratch or let the program use the XML file to do scratches and then let the user scratch/unscratch horses as needed. We'll see how that works out.

I am not sure yet how I want to display the scratch screen and the horses in each race. I will probably keep it simple for the first version and maybe work on improving it later.

headhawg
02-17-2018, 10:33 AM
The XML parser is done. Yay! I hate parsing; it's too easy to make stupid logic errors writing the code for it. I really need to learn MSXML which will help in the long run, but I don't think I will be reading/writing much XML overall. Another day, perhaps.

Next up is coding the manual scratch routine. I still haven't decided on how to display the horses or how the user will do the scratches. Checkboxes? Double Listview boxes with one containing running horses and the other the scratches? A single Listview with some kind of scratch indicator: a different font color (red maybe), Strikethrough text, Italics... I will probably wind up with what is easiest for me to code. :p

My expectation is to have a version ready for my beta testers within a week. I hope.

mikesal57
02-18-2018, 09:09 AM
The XML parser is done. Yay! I hate parsing; it's too easy to make stupid logic errors writing the code for it. I really need to learn MSXML which will help in the long run, but I don't think I will be reading/writing much XML overall. Another day, perhaps.

Next up is coding the manual scratch routine. I still haven't decided on how to display the horses or how the user will do the scratches. Checkboxes? Double Listview boxes with one containing running horses and the other the scratches? A single Listview with some kind of scratch indicator: a different font color (red maybe), Strikethrough text, Italics... I will probably wind up with what is easiest for me to code. :p

My expectation is to have a version ready for my beta testers within a week. I hope.

Hey HH....

One thing more , will your utility work with JCP files ?
and maybe some others that P-V uses...

Thxs

Mike

headhawg
02-18-2018, 09:54 AM
Good question, Mike. I think that .drf, .jcp, .eg, and .mcp files all have the same file structure so I will make sure that the users can load any of those file types. As I use Bris .drf that's what I'm testing with, but I think that one of my beta testers uses .jcp files. I might have some very old .eg and .mcp files to test on as well.

mikesal57
02-18-2018, 11:43 AM
Good question, Mike. I think that .drf, .jcp, .eg, and .mcp files all have the same file structure so I will make sure that the users can load any of those file types. As I use Bris .drf that's what I'm testing with, but I think that one of my beta testers uses .jcp files. I might have some very old .eg and .mcp files to test on as well.

:ThmbUp:

headhawg
02-18-2018, 07:53 PM
I ran a simple test to see if rewriting the .drf file would cause a problem. After all, that's the main job of this program. I deleted a "scratched" horse's data and then saved the modified file. I then loaded the modified file into Equisim, Pace View Platinum, Exotic Bets, Best 5, and PowerPace. The deleted horse data did not show and there didn't appear to be any problems with the programs handling the modified file. Yay -- more progress.

mikesal57
02-18-2018, 09:04 PM
Hey HH...your on a freaking roll :headbanger:

Mike

headhawg
02-23-2018, 07:23 PM
I didn't make much progress this week. <sigh> I did send what I had to a tester and he confirmed that it worked on Win8.1 so that's a plus. I am developing on Win7 so it's good to know that it works on a different OS. My goal now is to finish by Sunday and send a complete working version to the beta testers. Hopefully I will attain that goal.

headhawg
02-28-2018, 04:45 PM
Almost gave up on this as I lost a lot of whatever coding skill I had. Anyway, still plugging along. I am not in love with the scratch screen by any means but what I wanted to do requires delving into more unfamiliar Windows controls programming techniques that I don't feel like spending time on right now. I might increase the font size but not going to do any major changes unless I have to.

Two major hurdles left -- keeping track of scratched/unscratched horses when the user closes the scratch screen or switches races, and making sure that the modified datafile works. I posted earlier that I did some pre-testing on that and it seemed to work so <fingers crossed>.

Make that three...I forgot that I have to combine the scratches from the Equibase xml file and whatever the user adds/subtracts. Ugh.

Orlo
03-01-2018, 03:20 PM
Perfect

headhawg
03-08-2018, 11:05 PM
The scratch screen appears to work correctly when the user scratches/unscratches. It also reads the downloaded Equibase xml file and populates the scratched horses list box. A couple of my testers have the program now and hopefully will put it through its paces and see how many bugs are left.

Assuming no major problems with scratches there's only one more hurdle and that is the writing of the modified data file. Once my testers get back to me about the scratch screen I will work on the file section of the code. I could have this done as early as tomorrow but that will only happen if things go very smoothly which they rarely do.

Vinnie
03-09-2018, 03:14 AM
You are "THE MAN" HH!! I only wish that I knew how to write code/program. :)

headhawg
03-09-2018, 09:29 AM
The obvious reply to you Vinnie is that I wish I knew how to code, too. :D

Programming is both rewarding and frustrating for me. I have given up on the scratch tool at least three times but there was this desire in me to overcome the obstacles. It's close to being finished, so hopefully nothing will stop me from getting a working version completed soon.

headhawg
03-09-2018, 12:12 PM
Murphy's Law, of course. Scratches didn't work correctly due to the incorrect parsing of the xml file. I told you that I hated parsing. :) Fixed version sent to the testers so hopefully they will report that it works now. Thank you testers.

Vinnie
03-09-2018, 03:11 PM
The obvious reply to you Vinnie is that I wish I knew how to code, too. :D

Programming is both rewarding and frustrating for me. I have given up on the scratch tool at least three times but there was this desire in me to overcome the obstacles. It's close to being finished, so hopefully nothing will stop me from getting a working version completed soon.


You are something else HH...... :lol:

Have a great day and a terrific weekend. Thank you for all of your efforts sir!

headhawg
03-09-2018, 10:30 PM
The good news: the modified data file loads in Equisim, Excel, and Handifast.
The bad news: the modified file will NOT load into any of NCG's programs or Pandy's PowerPace.

I have spent way too much time on this, and am at the point where this just doesn't make sense to me. There must be some minor issue with writing back the data file with some rows (horse data) missing that some programs don't like when they try to load the new file. The kicker is that every field lines up perfectly in Excel; no data appears out of place. You would think that all programs would either load it or not.

I will take one more look at it tomorrow but I am fresh out of ideas.

headhawg
03-10-2018, 12:10 AM
I think I know what the issue is. In the data file the first horse in each race contains fields of race information that no other horse has in its record. Specifically I am referring to Fields 16 and 225 and there may be others. I suspect that the NCG programs and other programs that won't work with a modified data file rely on those fields for some kind of data processing.

For example, perhaps a handicapping program won't process a non-thoroughbred race. So maybe the program searches Field 16 for the word "thoroughbred" and when it doesn't find the word it doesn't load the race. Or maybe the program is parsing out the race information from those fields. Without the source code I don't know exactly what the NCG programs look for but I suspect it's something exclusive to the information in the record of the first horse in each race. Obviously if that information is missing because the horse was scratched and its record (data row) is no longer in the modified file the program won't work properly.

This also explains why Handifast HHX and Equisim work -- they are not reliant upon the information found in the first horse's record so they happily load the modified file that is missing the scratched horse(s) data.

Bottom line? I could probably do a workaround for the scratch program that won't delete the data for the first horse in each race but that kind of defeats the purpose of the program.

headhawg
03-10-2018, 02:15 PM
I finished coding the workaround which I am referring to as "Safe Mode". I figured what the hell -- I already have a bunch of hours into this so I may as well see it to completion.

So what does Safe Mode do? It prevents the record of the first horse from being deleted no matter if it's in the xml file or if the user manually scratches it. I have done some minimal testing and it appears to work fine. The programs that didn't work correctly with the modified data file now appear to run normally.

What does the workaround mean to the user? It simply means that you will have to manually scratch the first horse in every race from within your program of choice (e.g., the NCG programs) if necessary. The data will still be in the modified file even if the horse was scratched from within the scratch program. It will be minimal extra work as all of the other horses scratched by my program will not have their data in the modified file so they don't show up as needing to be scratched.

I still have to do some more testing and write up some documentation, and then code in some minor details and do some code clean-up, but I will release this as soon as I can. I won't send this version to the beta testers; I figure that the users here will tell me what's wrong with it. :)

headhawg
03-10-2018, 08:37 PM
So here goes. I am attaching the scratch program. Officially it's called Headhawg's Datafile Scratch Tool or HDST. It seems to work fine but there are bugs left in it no doubt -- I just haven't come across them yet. There are also a few things that I haven't implemented yet either. But before you use it there are a few things to know. Read the Readme.txt file! As people probably won't -- at least not at first -- I will summarize:


The author is NOT responsible for any computer damage or data loss. HDST writes nothing to the Windows registry. There isn't even an installation program. However, if you have any doubts about my coding skills then don't download, install, or use it.
No user support or warranty is expressed or implied. I will do my best to help out here on PA, but there is no guarantee of that. I almost quit writing the code for this darn program so I reserve the right to just let this thing die a natural death.
HDST is released as freeware which essentially means there is no fee to use the program. It is NOT open source and the author retains all rights.
From the Readme: If you use HDST and like it (and the author assumes that using = liking) please consider making a donation supporting the PaceAdvantage.com website. Details for doing so can be found at the site. If you're feeling really generous, please make the donation on behalf of headhawg. He would like to have VIP status, even if it is by proxy. :)

Installation and use: Extract the HDST.zip file to a drive/folder of your choosing. If extracted properly you should see the HDST folder with a couple of subfolders and some files. Don't mess with the contents or HDST won't run.

Double-click the HDST.exe file to launch the program. The main screen buttons are self-explanatory but include tool tips if you hover. You can manually scratch without the Equibase file, but the program will use the xml file as a starting point if you so desire. Be patient when downloading -- I haven't put in a progress bar yet but a message box will pop up when the download is finished. NOTE: I have not put in a date check yet, so you will experience some weirdness if you use mismatched data and xml files.

You can only load one datafile at a time. My suggestion is to put the data files in the main HDST folder. The files must be UNzipped.

The scratch screen shows running horses on the left (in black) and scratched horses on the right (in red). Of course, not literally horses but horse NAMES. Use the buttons to scratch/unscratch. Single click to select horses; the program accepts multiple item selection.

When done with scratches click the Save New File button. HDST will write a new file in the same folder as the original file. If you follow my suggestion that will be in the main HDST folder. HDST appends an "m" to the file name. For example, AQU0310.DRF would be named AQU0310m.DRF. Be smart and use copies of your data files. See #1 above.

I think that's it. I hope HDST works correctly and people find it useful. Please provide feedback and any bug reports by making a reply in this thread. Good luck.

Floyd
03-11-2018, 08:37 AM
Thanks so much for all your hard work, headhawg! I'll be giving it a try today with NCG's programs and I'll report back. Today's a good day to try it, the wife is out of town!:D

headhawg
03-11-2018, 08:59 AM
I'm attaching yesterday' (3/10) scratch file. Put it in the main HDST folder so that you can give the program a test run using yesterday's data files. Once you use the Download Scratch File button it will overwrite the xml file which, of course, will be fine for today's races. I will add a feature that will let you archive the scratch files so that you can use HDST with previous racing dates.

Floyd...when you use HDST today and you're wife still hears you screaming about scratches while she's out of town we will both be in trouble. :lol:

I forgot to put this in the instructions post -- don't forget about the Safe Mode workaround. HDST will NOT delete the first horse in any race. That is not a bug it's a feature. ;) See post #27 for an explanation.

headhawg
03-11-2018, 10:49 AM
mmdorn (of Handifast fame and one of my testers) let me know that he loaded the modified file into several programs, homegrown and commercial. They included NCG's programs, QuickPlay, Hurst's Horse Race Analyzer, Fast Fred Pro, Race Prophet, and a couple of others. The only program that didn't work was CompuTrak.

Thanks for testing Mike.

headhawg
03-11-2018, 12:42 PM
Mike has informed me that CompuTrak doesn't like the modified file name. He says that if the modified file is renamed back to the original name it works fine.

BTW, HDST is really designed to be used with programs that don't allow users to scratch/unscratch. So if you're using EquiSim, for example, it doesn't make too much sense to use HDST as ES handles scratches fine. You still could use HDST if you like the idea of using the xml scratch file to do automatic scratches, however. It is a bit of a time saver.

Also, I think I'm obsessed. I added the xml file date check and the archive scratch file feature to HDST. I won't release it until I get more feedback from users of version 1 in case there are other things that I need to add/fix.

Happy 'capping.

mikesal57
03-11-2018, 12:58 PM
HH...does Handifast work with this?

Mike

headhawg
03-11-2018, 01:00 PM
BUG warning -- Don't click on the Save New File button unless you have a data file loaded. It won't crash the program but will write a zero byte file named "m". Rookie mistake; bug squashed for next version.

@mikesal -- I think that mmdorn tested it and told me it worked, yes. I tried the HHX version and it worked fine, but I did not check all versions of Handifast.

mikesal57
03-11-2018, 01:23 PM
BUG warning -- Don't click on the Save New File button unless you have a data file loaded. It won't crash the program but will write a zero byte file named "m". Rookie mistake; bug squashed for next version.

@mikesal -- I think that mmdorn tested it and told me it worked, yes. I tried the HHX version and it worked fine, but I did not check all versions of Handifast.

:ThmbUp:

headhawg
03-12-2018, 10:08 AM
Attached is the latest version. Here are the changes:

- Fixed: Bug that created a 0 byte file if the user clicked on Save New File without having a data file loaded.
* Added: A date check feature that prevents the xml scratch file from being used if the date of the loaded data file doesn't match the xml file date.
* Added: A feature that allows the user to archive the scratch file. The scratches.xml file will be renamed with date added (e.g. scratches031118.xml).

When you exit v1.1 you will be asked if you want to archive the scratch file. If you click Yes then the file will be renamed and the original will be deleted. If you click No then the program will simply close.

The purpose of archiving is to create a scratch file that can be used on previous days races. I put this in mostly for myself so that I can check older races to see if HDST is working correctly. However, users can use it for a similar reason - to create the modified file for past racing days. Users must rename the archived file back to scratches.xml so that HDST will use it properly.

TIP: Users are not required to use the xml file. I put it in as a time saver so that the user doesn't have to manually scratch all the horses, just the ones that wouldn't be in the scratch file. So if you went to the OTB or track and didn't have an Internet connection you can still create a modified file by doing all the scratches manually.

If you haven't installed HDST already, instructions are in post #28.

thoroughbred
05-12-2018, 07:28 PM
CompuTrak includes the scratch tool for BRIS files