@platypus, @lrmigrant, @Martijn_KL Sorry it has taken this long and is not finished yet and I have run into a problem!
So the screen currently looks like this
and and the PureBasic source is 597 lines and that will increase for just the fix basic functions, all the backup code is already in place and working.
I have modified my DOP analysis program, removed big chunks of code and it currently produces this
and the source file is currently 831 lines long!
So, while there is some common code, the combined logic will be well over 800 lines long and I still need to add the code to change the field values and write out the amended DOP!
As a licensed user I can compile a program of any size and distribute it as an .exe, the potential issues are
- Lack of “Transparency”, i.e. the users need to trust that there is no “malicious” code, either deliberate (which there won’t be) or accidental (which I cannot absolutely guarantee!?). I can deliver the source file alongside the compiled file but there is no way for a user to verify that they produce the same results is the file size exceeds 800 lines.
- No obvious path to a Mac version
I believe that the DOP analysis part of the process does not require the 2 pass coding necessary to use the ‘Completion Date’ logic required to sort “Albums” into sequence for Mac DOPs. A “fix” does not require knowledge of which is the [M]aster and which is a VC.
So with that removed I now have 540 lines of code to give
2025/08/17_11:40:59.949 Processing File #1
2025/08/17_11:40:59.949 ==============
2025/08/17_11:40:59.950 08/08/2025 - F:\___PureBasic\DOPs\Mac.dop
2025/08/17_11:40:59.951 @ line 3 Software = "DxO PhotoLab 8.7.2.48",
2025/08/17_11:40:59.953 @ line 3 Extracted Software # = 8.7.2.48
2025/08/17_11:40:59.959 @ line 704 Album # 1 Extracted Version = 19.8
2025/08/17_11:40:59.959 @ line 713 Extracted End Version = 19.0
2025/08/17_11:40:59.960 ==================================================================================
2025/08/17_11:40:59.960
2025/08/17_11:40:59.960 Processing File #2
2025/08/17_11:40:59.961 ==============
2025/08/17_11:40:59.962 24/09/2024 - F:\___PureBasic\DOPs\P1137215.RW2.dop
2025/08/17_11:40:59.962 @ line 3 Software = "DxO PhotoLab 7.9",
2025/08/17_11:40:59.963 @ line 3 Extracted Software # = 7.9
2025/08/17_11:40:59.967 @ line 517 Album # 1 Extracted Version = 18.6
2025/08/17_11:40:59.970 @ line 1034 Album # 2 Extracted Version = 18.6
2025/08/17_11:40:59.974 @ line 1551 Album # 3 Extracted Version = 18.6
2025/08/17_11:40:59.978 @ line 2068 Album # 4 Extracted Version = 18.6
2025/08/17_11:40:59.983 @ line 2584 Album # 5 Extracted Version = 18.6
2025/08/17_11:40:59.983 @ line 2597 Extracted End Version = 18.1
2025/08/17_11:40:59.984 ==================================================================================
2025/08/17_11:40:59.984
2025/08/17_11:40:59.984 Processing File #3
2025/08/17_11:40:59.985 ==============
2025/08/17_11:40:59.985 13/08/2025 - F:\___PureBasic\DOPs\P1140023.RW2.dop
2025/08/17_11:40:59.986 @ line 3 Software = "DxO PhotoLab 8.7.1",
2025/08/17_11:40:59.986 @ line 3 Extracted Software # = 8.7.1
2025/08/17_11:40:59.989 @ line 495 Album # 1 Extracted Version = 19.5
2025/08/17_11:40:59.990 @ line 508 Extracted End Version = 19.0
2025/08/17_11:40:59.990 ==================================================================================
2025/08/17_11:40:59.990
2025/08/17_11:40:59.990 Processing File #4
2025/08/17_11:40:59.991 ==============
2025/08/17_11:40:59.991 13/08/2025 - F:\___PureBasic\DOPs\WinMac.RW2.dop
2025/08/17_11:40:59.992 @ line 3 Software = "DxO PhotoLab 8.7.1",
2025/08/17_11:40:59.993 @ line 3 Extracted Software # = 8.7.1
2025/08/17_11:40:59.998 @ line 811 Album # 1 Extracted Version = 19.5
2025/08/17_11:41:00.003 @ line 1623 Album # 2 Extracted Version = 19.5
2025/08/17_11:41:00.004 @ line 1636 Extracted End Version = 19.0
2025/08/17_11:41:00.004 ==================================================================================
2025/08/17_11:41:00.005 ++++++++++++++++++++++++++++++++++++++++++++++++++
Getting better but still some way off.
I will add the “Fix” logic to the analysis version first and my proposal is
- If the original field is “Blank” then the Fix value will automatically be substituted.
- If the original field has a value that will be compared with the original value in the table and the replacement (Fix) will only take place if they are the same.
- If the replacement value start with a +, e.g. +0.2 then the original value will be aligned on the “.” and the value added to the original to determine the “fix” value.
If it is “-0.2” the value will be subtracted to determine the new field value.
If the field length of the fix is shorter that the original the additional original field elements will be omitted, e.g. 8.7.2.48 would become 8.7.1 if the fix input was -0.0.1
The options for proceeding are
- Retain the full logic shown earlier, i.e. the Backup and the Fixup in one application, which will likely exceed 800 lines.
- Split the logic and create a new fixup version which will certainly be smaller than item 1 but might exceed 800 lines.
- Use the new version of the analysis program to include a “crude” screen data entry providing just the Log field with “Original” and “Fix” fields which might be lower than 800 lines
- Implement 3 but with only the “Version” field fix, which appears to be the right one anyway.
My plan is to proceed with 3 for now and then see what 4 looks like and then make decisions about 2 and 1 thereafter.
Sorry but back to gardening today.