From df2311dbdaf279fe79d3b2173126b358e4480e39 Mon Sep 17 00:00:00 2001 From: Paul Larsen Date: Mon, 24 Aug 2026 10:51:54 -0400 Subject: [PATCH] C2026-041-invisible-position-changes-as-differences --- PROMS/Baseline/frmBaseline.Designer.cs | 16 +++- PROMS/Baseline/frmBaseline.cs | 22 +++++- PROMS/Baseline/frmBaseline.resx | 3 - PROMS/Volian.Base.Library/DebugPrint.cs | 89 ++++++++++++++++++++-- PROMS/Volian.Print.Library/PromsPrinter.cs | 4 +- 5 files changed, 119 insertions(+), 15 deletions(-) diff --git a/PROMS/Baseline/frmBaseline.Designer.cs b/PROMS/Baseline/frmBaseline.Designer.cs index 88f69955..949a6aed 100644 --- a/PROMS/Baseline/frmBaseline.Designer.cs +++ b/PROMS/Baseline/frmBaseline.Designer.cs @@ -30,6 +30,7 @@ { this.components = new System.ComponentModel.Container(); this.panel1 = new System.Windows.Forms.Panel(); + this.cbUseTruncatedData = new System.Windows.Forms.CheckBox(); this.btnUC = new System.Windows.Forms.Button(); this.cbCaseSensitive = new System.Windows.Forms.CheckBox(); this.cbFile2 = new System.Windows.Forms.ComboBox(); @@ -72,6 +73,7 @@ // this.panel1.Controls.Add(this.btnUC); this.panel1.Controls.Add(this.cbCaseSensitive); + this.panel1.Controls.Add(this.cbUseTruncatedData); this.panel1.Controls.Add(this.cbFile2); this.panel1.Controls.Add(this.cbFile1); this.panel1.Controls.Add(this.tbSearch); @@ -87,6 +89,17 @@ this.panel1.Size = new System.Drawing.Size(707, 80); this.panel1.TabIndex = 0; // + // cbUseTruncatedData + // + this.cbUseTruncatedData.AutoSize = true; + this.cbUseTruncatedData.Location = new System.Drawing.Point(456, 56); + this.cbUseTruncatedData.Name = "cbUseTruncatedData"; + this.cbUseTruncatedData.Size = new System.Drawing.Size(123, 17); + this.cbUseTruncatedData.TabIndex = 11; + this.cbUseTruncatedData.Text = "Use Truncated Data"; + this.tt.SetToolTip(this.cbUseTruncatedData, "Set the Search to be Case Sensitive\r\nUppercase and Lowercase will not match"); + this.cbUseTruncatedData.UseVisualStyleBackColor = true; + // // btnUC // this.btnUC.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); @@ -263,7 +276,7 @@ this.lbProcedures.FormattingEnabled = true; this.lbProcedures.Location = new System.Drawing.Point(0, 0); this.lbProcedures.Name = "lbProcedures"; - this.lbProcedures.Size = new System.Drawing.Size(707, 25); + this.lbProcedures.Size = new System.Drawing.Size(150, 46); this.lbProcedures.TabIndex = 1; this.tt.SetToolTip(this.lbProcedures, "Procedures withDifferences or Search Text"); this.lbProcedures.SelectedIndexChanged += new System.EventHandler(this.lbProcedures_SelectedIndexChanged); @@ -381,6 +394,7 @@ private System.Windows.Forms.ComboBox cbFile2; private System.Windows.Forms.ComboBox cbFile1; private System.Windows.Forms.CheckBox cbCaseSensitive; + private System.Windows.Forms.CheckBox cbUseTruncatedData; private System.Windows.Forms.Button btnUC; private System.Windows.Forms.ToolTip tt; } diff --git a/PROMS/Baseline/frmBaseline.cs b/PROMS/Baseline/frmBaseline.cs index f47f77cb..555ea2bf 100644 --- a/PROMS/Baseline/frmBaseline.cs +++ b/PROMS/Baseline/frmBaseline.cs @@ -708,8 +708,16 @@ namespace Baseline lbResults1.Items.Clear(); lbResults2.Items.Clear(); MyStatus = "Searching..."; + FindFiles fnd; // Perform code to find DebugMeta files with diffences - FindFiles fnd = new FindFiles(cbFile1.Text, cbFile2.Text, "DebugMeta.txt",MyIgnore); + if (cbUseTruncatedData.Checked) + { + fnd = new FindFiles(cbFile1.Text, cbFile2.Text, "DebugMeta_Truncate.txt", MyIgnore); + } + else + { + fnd = new FindFiles(cbFile1.Text, cbFile2.Text, "DebugMeta.txt", MyIgnore); + } lbDifferent.DataSource = fnd; lbDifferent.DisplayMember = "File1"; MyStatus = string.Format("{0} Differences Found", fnd.Count); @@ -730,10 +738,19 @@ namespace Baseline lbDifferent.Items.Clear(); lbResults1.Items.Clear(); lbResults2.Items.Clear(); + FindFiles fnd; MyStatus = "Searching..."; //Perform Search - FindFiles fnd = new FindFiles(cbFile1.Text, cbFile2.Text, "DebugMeta.txt", tbSearch.Text, SearchType.Contains, cbCaseSensitive.Checked); + if (cbUseTruncatedData.Checked) + { + fnd = new FindFiles(cbFile1.Text, cbFile2.Text, "DebugMeta_Truncate.txt", tbSearch.Text, SearchType.Contains, cbCaseSensitive.Checked); + } + else + { + fnd = new FindFiles(cbFile1.Text, cbFile2.Text, "DebugMeta.txt", tbSearch.Text, SearchType.Contains, cbCaseSensitive.Checked); + } lbDifferent.DataSource = fnd; + lbDifferent.DisplayMember = "File1"; MyStatus = string.Format("{0} Differences Found", fnd.Count); } @@ -814,6 +831,7 @@ namespace Baseline CompareOneFile(ff.File1, ff.File2); } } + } public enum SearchType { diff --git a/PROMS/Baseline/frmBaseline.resx b/PROMS/Baseline/frmBaseline.resx index 2f985086..309156e4 100644 --- a/PROMS/Baseline/frmBaseline.resx +++ b/PROMS/Baseline/frmBaseline.resx @@ -120,9 +120,6 @@ 306, 17 - - 306, 17 - 17, 17 diff --git a/PROMS/Volian.Base.Library/DebugPrint.cs b/PROMS/Volian.Base.Library/DebugPrint.cs index bd0e4b44..026b67f8 100644 --- a/PROMS/Volian.Base.Library/DebugPrint.cs +++ b/PROMS/Volian.Base.Library/DebugPrint.cs @@ -1,7 +1,10 @@ +using DevComponents.DotNetBar; +using Org.BouncyCastle.Utilities; using System; using System.Collections.Generic; -using System.Text; using System.IO; +using System.Net.NetworkInformation; +using System.Text; namespace Volian.Base.Library { @@ -148,16 +151,86 @@ namespace Volian.Base.Library public static class BaselineMetaFile { private static DebugPrint _MyDebugPrint = new DebugPrint(); - public static void Open(string fileName) - { _MyDebugPrint.Open(fileName); } + private static DebugPrint _MyDebugPrint_Truncated = new DebugPrint(); + public static void Open(string fileName) + { _MyDebugPrint.Open(fileName); + _MyDebugPrint_Truncated.Open(fileName.Replace(".txt", "_Truncated.txt")); + } public static void Close() - { _MyDebugPrint.Close(); } + { _MyDebugPrint.Close(); + _MyDebugPrint_Truncated.Close(); } public static void Write(string format, params object[] args) - { _MyDebugPrint.Write(format, args); } + { + if (args.Length > 8) + { + if (args[args.GetUpperBound(0)] == "truncate_false" || args[args.GetUpperBound(0)] == "truncate_true") // if there is a 9th element test the value for truncated data. + { + int myvalue = args.GetUpperBound(0); + // test and save untruncated and truncated version of the data. + if (args[args.GetUpperBound(0)] == "truncate_false")// when untruncated data is being saved + { + _MyDebugPrint.Write(format, args); + } + else // when truncated data is being saved + { + _MyDebugPrint_Truncated.Write(format, args); + } + } + else + { + _MyDebugPrint_Truncated.Write(format, args); + _MyDebugPrint.Write(format, args); // there is a 9th element, but not for truncated data + + } + } + else // test if asgs does not have a 9th element save data (no truncate data is available) + { + _MyDebugPrint_Truncated.Write(format, args); + _MyDebugPrint.Write(format, args); + + } + } public static void WriteLine(string format, params object[] args) - { _MyDebugPrint.WriteLine(format, args); } - public static void Show() - { _MyDebugPrint.Show(); } + { + if(args.Length > 8) + { + if (args[8] == "truncate_false" || args[8] == "truncate_true") // if there is a 9th element test the value for truncated data. + { + // test and save untruncated and truncated version of the data. + if (args[8] == "truncate_false")// when untruncated data is being saved + { + _MyDebugPrint.WriteLine(format, args); + } + else // when truncated data is being saved + { + _MyDebugPrint_Truncated.WriteLine(format, args); + } + } + else + { + _MyDebugPrint.WriteLine(format, args); // there is a 9th element, but not for truncated data + _MyDebugPrint_Truncated.WriteLine(format, args); + } + } + else // test if asgs does not have a 9th element save data (no truncate data is available) + { + _MyDebugPrint.WriteLine(format, args); + _MyDebugPrint_Truncated.WriteLine(format, args); + } + + } + public static void TruncateWriteLine(string format, params object[] args) + { + _MyDebugPrint_Truncated.WriteLine(format, args); + } + public static void TruncateWrite(string format, params object[] args) + { + _MyDebugPrint_Truncated.Write(format, args); + } + public static void Show() + { _MyDebugPrint.Show(); + _MyDebugPrint_Truncated.Show(); + } public static bool IsOpen { get { return _MyDebugPrint.IsOpen; } } private static bool _IncludeWordSecText = true; diff --git a/PROMS/Volian.Print.Library/PromsPrinter.cs b/PROMS/Volian.Print.Library/PromsPrinter.cs index d6a95ec6..33905a44 100644 --- a/PROMS/Volian.Print.Library/PromsPrinter.cs +++ b/PROMS/Volian.Print.Library/PromsPrinter.cs @@ -1419,7 +1419,9 @@ namespace Volian.Print.Library if (_MyHelper.DidFirstPageDocStyle) yoff = origYoff - (float)mySection.MyDocStyle.Layout.TopMargin; // C2018-004 create meta file for baseline compares - Volian.Base.Library.BaselineMetaFile.WriteLine("WD Height={0} Width={1} scPgCnt={2} locEnd={3} pdfSz={4} xOff={5} yOff={6} ScPgNum {7}", fgPage.Height, fgPage.Width, sectPageCount, Truncate(locEndOfWordDoc, 2), Truncate(pdfSize, 2), (float)(mySection.MyDocStyle.Layout.MSWordXAdj ?? 0.0), (float)(mySection.MyDocStyle.Layout.MSWordYAdj ?? 0.0) + yoff, pageNumber); + Volian.Base.Library.BaselineMetaFile.WriteLine("WD Height={0} Width={1} scPgCnt={2} locEnd={3} pdfSz={4} xOff={5} yOff={6} ScPgNum {7}", fgPage.Height, fgPage.Width, sectPageCount, locEndOfWordDoc, pdfSize, (float)(mySection.MyDocStyle.Layout.MSWordXAdj ?? 0.0), (float)(mySection.MyDocStyle.Layout.MSWordYAdj ?? 0.0) + yoff, pageNumber, "truncate_false"); + + Volian.Base.Library.BaselineMetaFile.TruncateWriteLine("WD Height={0} Width={1} scPgCnt={2} locEnd={3} pdfSz={4} xOff={5} yOff={6} ScPgNum {7}", fgPage.Height, fgPage.Width, sectPageCount, Truncate(locEndOfWordDoc, 2), Truncate(pdfSize, 2), (float)(mySection.MyDocStyle.Layout.MSWordXAdj ?? 0.0), (float)(mySection.MyDocStyle.Layout.MSWordYAdj ?? 0.0) + yoff, pageNumber, "truncate_true"); AddImportedPageToLayer(cb.PdfWriter.DirectContent, _MSWordLayer, fgPage, (float)(mySection.MyDocStyle.Layout.MSWordXAdj ?? 0), (float)(mySection.MyDocStyle.Layout.MSWordYAdj ?? 0) + yoff); // B2019-102 Handle PDF Destinations for Word Sections