All posts by Jon

SWTracTracWeb

TracTrac to Sailwave

This programme allows you to create a file for import into Sailwave from the TracTrac tracking system for one design classes.

The programme is implemented as a web app hosted on Microsoft’s Azure platform.


To launch the app, click this button.

https://swtractracweb-d3dfc0bchgendjgy.ukwest-01.azurewebsites.net
or paste the above into the address bar of your browser


To use the programme, you need an API token supplied by TracTrac and also the UUID for the event.

Enter the event UUID, race numbers, and API token,
then select **Download CSV**. Make sure the event UUID is correctly filled. Enter one race or a comma-separated list and inclusive ranges, such as `1,3,4,6-8`.

Up to 25 distinct races can be selected; duplicates are downloaded once.

Results are combined in one CSV. Missing races are reported and skipped; if none are found, no CSV is downloaded. JavaScript is required to download a partial selection when some races are missing and to show the busy indicator.

The browser stores the event UUID and the last entered API token in its local storage so it can be reused when the token field is blank. Use **Clear saved token** to remove it; do not save a token on a shared browser. JavaScript is needed for remembering the token, but a token can still be entered for each download without it. The server does not save tokens or generated CSV files.

Once you have downloaded the CSV files, you can import it into Sailwave using File > Import Results from CSV.
The operation is very straightforward, but full details are available in the Sailwave user manual if you require it.

Sailwave Race Extractor

This is a web app that allows the extraction of one or multiple races from a Sailwave .blw file.

To start the web app, simply click the button here.


You should then see something similar to this open in your browser.

Operation is extremely simple. Simply click “Choose File”, upload the Sailwave .blw file, not forgetting to save the file if it’s open in Sailwave previously. Enter the race to extract. This can be a comma-separated list or a range using a hyphen. Click Extract and Download. You’ll then download a file with the file name in the format shown above, and you now have a CSV of the races extracted.

You can import these races using “File > Import Results from CSV”, and you can create other events. Made up of these races

If you have any questions or any comments, please post them in the Sailwave User Group (https://forum.sailingresults.co.uk)

.

SWCList

Competitor Lists for use with Sailwave

This program is included with the Sailwave installation

Simply type SWCList in the Windows search box, and it should appear

This Program also allows creation of CSV files to allow exporting data to other parties.

Sailwave includes the ability to print Competitor lists, so why use this program?

This program adds some features currently not available in Sailwave

  • Ability to sort on 3 Columns
  • Ability to create and sort on the last 4 or 3 digits of the sail number
  • Can sort on Lastname (HelmNameRev) when Sailwave format is “Firstname Lastname”
  • Highlights in Bold any duplicate sail numbers, full and shortened
  • Ability to add Headings on changes of Sort key
  • Adds Count to Headings
  • Can produce page breaks and adds column headers for multiple pages
  • Only temporarily opens the file in read-only mode, so it can be used in multi-user situations
  • Sorts Gold, Silver, Bronze in the correct order ( not alphabetical ). Also Yellow, Blue, Red, and Green

So what does it produce? Below is a sample of the output:



Some of the Key Features are:-

  • Designed to be extremely easy to use and very fast
  • When you run the program, it automatically reads the last file opened with Sailwave
  • Displays the Event, Venue, and Title
  • Counts and displays the Number of competitors
  • Learns the columns used within Sailwave and the properties of these.
  • Uses the same Styles as used by Sailwave, with optional Default Plus Override.
  • Can be sorted on 3 columns
  • Ability to specify which Columns are published – Use the Columns to publish button
  • Can create a CSV file or HTML
    You can create PDF files from the HTML file by using the Print to PDF
    The CSV Export also allows optional filtering to be applied. Leave the filter blank if you wish to export all records

Normally, it will automatically load the last file used by Sailwave; however, if you wish to use a different file:-

  • The Dropdown box is populated with the last 20 files used by Sailwave
  • The Browse allows you to open any Sailwave .blw file
  • Reload allows the file to be reloaded if it changes (You are warned with the option to reload if the file has changed since you loaded it when you click Publish)

You can create a page break whenever the 1st sort field changes.

Examples would be starting a new page for each flight, e.g., Gold, Silver, Bronze

or starting a new page for each Fleet, e.g., Techno, RSX, Raceboard, Formula.

It can break the output into pages, with the headings repeated at the top of each page. This is not an exact science, as it depends on many factors, such as your styles and browser magnification. You can adjust the number of lines per page; the default of 40 can be increased or decreased if needed. This is a trial-and-error process but is very quick to do.

Sorting on Reversed names

Version 1.1 adds the ability to sort on reversed helmname. So if you like to use the more friendly/informal format of Firstname Lastname, this version will allow you to produce lists in Lastname order but still display them in FirstName Lastname order. This works by detecting the space in the name. Just be careful if you have dual First names, such as Mary Ann Smith. In this case, enter this as Mary-Ann Smith or Mary_Ann Smith

SWPrize

SWPrize

Prize List for use with Sailwave

SWPrize is included with the standard installation of Sailwave.

So what does it produce? Below is a sample of the output:

And this is the format of program that specifies the output

Some of the Key Features are

  • Designed to be extremely easy to use and very fast
  • When you run the program, it automatically reads the last file opened with Sailwave
  • Displays the Event, Venue, and Title
  • Counts and displays the Number of competitors
  • Learns the columns used within Sailwave and the properties of these.
  • Uses the same Styles as used by Sailwave.

Normally, it will automatically load the last file used by Sailwave however, if you wish to use a different file:-

  • The Dropdown box is populated with the last 20 files used by Sailwave
  • The Browse allows you to open any Sailwave .blw file
  • Reload allows the file to be reloaded if it changes (You are warned with the option to reload if the file has changed since you loaded it when you click Publish)
  • If you have entered prizes for this event, then they are loaded with the. blw Sailwave file
  • If you have defined a prize list for a different event, then to save re-entering it, you can use the Load Prizes to use the same for this event.

The Prizes are defined in a 50-row by 3-column grid

  • If the Prize Description starts with a #, e.g., #Techno then this signifies a Heading
  • The Criteria for Prize allows you to define the Criteria that the Prize is given for.
  • Qty for Prize allows you to specify when Prizes are given – Looking at the example above 3,4,8
    • The first 3 signifies that a 1st prize is awarded if there are 3 or more eligible Competitors (No prize is awarded if less than 3 eligible competitors)
    • The Second 4 signifies that a 2nd prize is awarded if there are 4 or more eligible Competitors
    • The third 8 signifies that a 3rd prize is awarded if there are 8 or more eligible Competitors.
    • You are not limited to just 3 prizes
    • If there is only one prize, then only enter one number; a 1 would give a prize if there is a single eligible competitor.
  • If the number of eligible competitors does not meet the minimum, then the Prize is not printed.
  • If there are no eligible prizes within the Heading Group, the Heading is not printed.

When you click in the Criteria column, the Selection Criteria boxes appear as shown above.

  • You can select 3 conditions for the prize. Looking at the example above for the Techno 7,8 Girl prize:-
    • The First Box is automatically populated with the Columns used in Sailwave
    • Once you select a value, the Second box is populated with the Valid values you can select
    • Here we have selected 2 prizes for Techno 7.8 Girls where the Division = T7.8 and Helmsex = F
    • If you rename columns in Sailwave, the renamed values will appear in the Dropdown boxes, but the true name will appear in the grid. This allows the same prize definition to be used when columns are renamed for different events
    • In the rare occasion when more than 3 criteria are needed then it is recommended that you use a column in Sailwave to hold the conditions. This column can be populated within Sailwave using the Toolset Competitor fields. This is also safer, as it allows you to check which competitors are affected
  • To enable easier editing of the grid, right-click on the boxes at the left of the grid, and you can Copy, Paste, Insert, or Delete Rows of the grid

When you have defined the prizes, click Publish and this will

  • Save the prize definitions to a file in the same directory as the blw file with the same name but a .prz extension
  • The Prizes are calculated and displayed in the Default Browser, similar to publishing results in Sailwave.
  • The Same Style as was used by Sailwave for the results is used unless the checkbox to use the Blue blocks is checked
  • A file Prizes.htm is stored in the same directory as the blw file.
  • If the Combine prizes for the same competitor is checked, Then when a prize is displayed, any other prizes that this competitor has won are displayed immediately following.
  • The column displays are semi-intelligent in that they depend upon which ones are used in Sailwave. e.g., above, the Nationality is not used, but if it had been used in Sailwave, then the Column would have been displayed
  • You can use the Helm or Crew fields, or both.

SFTP and SSH-V2 as now used by IONOS

It has recently come to my attention that two Sailwave users have found that the SFTP upload from Sailwave to IONOS website has stopped working this week.  After investigation it appears that they IONOS have now switched from SFTP with SSH to SFTP with SSH-2.
Unfortunately SSH-2 is not currently supported in the Sailwave SFTP upload. It supports SSH but not SSH-2

Sailwave actually uses a paid third-party library, SocketTools, to implement this functionality.   It currently uses version 10 of SocketTools, which doesn’t support the SSH-2 it is, however, supported in version 11 of SocketTools, but the cost of an upgrade is $295.   Whether I can justify paying this at the moment is questionable for this functionality.

You could just save a file on your PC and use FileZilla or Core FTP LE, both of which are free of charge and work with SSH-2 but this requires a lot more manual work

As a workaround, the following is a solution that works quite effectively. This uses WinSCP, which is a free download and can be downloaded from here WinSCP :: Official Site :: Download

You don’t need to use WinSCP directly. It is just used in the background, but it needs to be installed.

Create a file upload-auto.bat with the following contents in a directory of your choice.

Change the three lines, USER, PASS, and HOST, to contain your username, password, and host name.

@echo off
setlocal

:: Check if a file was provided
if “%~1″==”” (
echo Usage: %~nx0 ^<path_to_file^>
exit /b 1
)

:: Check if the file exists
if not exist “%~1” (
echo Error: File “%~1” does not exist.
exit /b 1
)

set “FILEPATH=%~1”
set “ORIG_BASENAME=%~n1”
set “USER=Change to your username”
set “PASS=Change to your Password”
set “HOST=Change to your host name”

echo Selected file: %FILEPATH%
echo.

:: Prompt the user for the remote filename
set “REMOTE_NAME=”
set /p “REMOTE_NAME=Enter the remote filename (leave blank to default to %ORIG_BASENAME%.htm): ”

:: If the user pressed Enter without typing anything, use the original name + .htm
if “%REMOTE_NAME%”==”” (
set “REMOTE_NAME=%ORIG_BASENAME%.htm”
) else (
:: If they typed a name, check if they included an extension. If not, add .htm
for %%I in (“%REMOTE_NAME%”) do (
if “%%~xI”==”” set “REMOTE_NAME=%REMOTE_NAME%.htm”
)
)

echo.
echo Uploading file automatically as ‘%REMOTE_NAME%’…

:: Run WinSCP via command line, passing the local path and the remote name
“C:\Program Files (x86)\WinSCP\WinSCP.com” /command ^
“open sftp://%USER%:%PASS%@%HOST%/ -hostkey=*” ^
“put “”%FILEPATH%”” “”%REMOTE_NAME%””” ^
“exit”

echo Upload finished!

===================================================

Now publish from Sailwave

 

Select the destination as An installed Application
and the Application is where you saved the upload-auto.bat in my case, P:\Temp\to be deleted\upload-auto.bat. This should get remembered, so you don’t need to type this every time.
When you click Publish. You will be prompted for the file name you wish to use. It will automatically add an .htm extension if you don’t add one, or you can just press Enter, and you will get a random name, which you can then rename at a later date if you prefer
Note: this batch file contains your password, so store it in a directory that has the necessary permissions

For any discussions and use of this, please see the Sailwave User Group forum (https://forum.sailingresults.co.uk)

Remove Empty Races

This page was last updated 08-07-2026 by Jon

Updated to correctly remove the race caption and the table it now shows as version 1.03

This Effect can be used to remove races that have no results

Imagine a situation where you have multiple handicap fleets and the fleets are sailing a different number of races.  You ask Sailwave to publish individual races and all sailed races.  R3 will have been sailed but it might not of for one particular fleet.  If Sailwave publishes R3 it will publish for all fleets.  This effect will remove those races for fleets that have not sailed that race

It can be downloaded from Here

RenumberRaces V3

This page was updated 30-06-2026 by Jon

This effect renumbers the Race numbers so as to be consecutive when publishing.

A common issue when racing multiple fleets is that some fleets may not participate in every race, yet the results for a given race come from the race area with fleets intermixed.  Let’s say we have two fleets, A and B, that are being scored intermixed as the results come in for scoring.  Sailwave handles this and separates the fleets automatically.  But on day 1, Fleet B doesn’t participate in the 3rd race of the series, so Fleet A sails 3 races, while Fleet B sails only 2.

The problem comes on Day 2 as the next race will be R4 for the A fleet and R3 for the B fleet.

One solution is to separate the results into A and B fleets and enter them in the appropriate race, but this is very time-consuming and prone to error.
Or name R4 as Day2R1. This is easy to understand, but some Race officers and the jury may not like this; they want the Races to be numbered consecutively.
The solution is to use this effect, which numbers each fleet with consecutive numbers at publish time.

The effect also has 2 additional features. If you name the race within Sailwave as +Day2, it will add the text you specify to the Race Number.  In the above example, if we name R4 in Sailwave as +Day2, when the results are published, the R4 will appear in the published Results as R4 Day2 for the A fleet and R3 Day2 for the B fleet

If the name of the race starts with a – e.g., Marathon, then that name will be displayed without any autogenerated Race number Rx

This effect in its first Version was only for 1 design racing as it only renumbered the Races in the summary table.

Version 2 now renumbers the individual races, so it can be used for all types of racing

Version 3 now supports the Optional Race Date

If you use it with the scoredseparatelymatrixV3, make sure this is after the RenumberRaces effect

V3  can be downloaded from here.

ScoredSeparatelyMatrixV4 (Jon)

This page was last updated 30-06-2026 by Jon

V4 adds support for the optional Race date

This V3 is an update to V2, where the Race columns are aligned so that all the race columns contain the same race

This is an update to the original ScoredSeparatelyMatrix effect

It can be downloaded from Here

Adaptive/Responsive ‘Effect’ (Huw)

This page was updated 27-04-2026 by Jon

The Adaptive/Responsive ‘Effect’ that has been created by Huw for Sailwave adapts the published output to different device screen sizes, making it easier to view published results on small screen sizes like smartphones.

Caveats

  • The ‘Effect’ currently only works with summary tables. Not with individual race tables, this might change in the future.
  • The ‘Effect’ has not been tested in use with all the other ‘Effects’ available for use.
  • Do not use the TableSorter ‘Effect’ with this ‘Effect’ as it includes sorting.
  • The ‘Effect’ does not work with the ‘ ScoredSeparatelyMatrix ‘Effect’
  • The summary table header does not maintain the header background colour from the chosen ‘Style’. The ‘Style header background colour can be maintained by editing the ‘Style’ and adding two bits of code. Editing information can be provided on request.

I give a big thank you to John Doyle, a Sailwave user, for refining my hand-coded work and refining it so it could be made into this Adaptive/Responsive ‘Effect’ for other users. The ‘Effect’ has been made possible by the work of the DataTables (https://datatables.net/) developers and code by Dirk Drijkoningen (https://codepen.io/RedJokingInn/pen/bGoppqP ).

When the normal table view cannot show the full width of the results table due to screen size, a small arrow icon appears in the ranking column. On clicking the icon, the columns that could not be viewed appear.

There is also an alternative view to the normal table view, the card view. The card view presentation is presented by clicking the ‘Card view’ button.

Other options (Copy, CSV, Excel, PDF, Print) are available, which can be removed with careful editing of the code, if not required.

To use the sorting functionality of this ‘Effect’ click a column header. To add additional sort or sorts, hold down the shift key and click the required column header(s). When two or more columns have been selected, little numbered icons will appear in the selected sort column headers.

The current version can be downloaded from here.

Remove Unused Columns

This page was updated 18-06-2026 by Jon

This effect removes unused columns on a table-by-table basis

You can decide within Sailwave which columns are published, but if your classes use different columns, then some classes will have empty columns.  e.g., if you have a handicap fleet, it will have a rating column, but a one-design will not, so, as standard, assuming you have two fleets in the same results, the rating column for the one-design will contain only the heading.  This effect will remove that column, but only for the one design table.  Similary if one fleet is using Bow Numbers and another is using Sail Numbers, the unused columns will be removed with this effect

V1.1 Updated to not remove unused columns in the HeaderTable

V1.2 Updated to not remove columns containing images and no text

V1.2  can be downloaded from here.