From 8762e7b0bce582fefd5ae271fe8ed9b1a5c2f7cb Mon Sep 17 00:00:00 2001 From: gsmander <109293278+gsmander@users.noreply.github.com> Date: Fri, 29 Sep 2023 14:09:15 -0400 Subject: [PATCH 1/2] Updated ToStringAlternative() ConsoleTable.cs --- src/ConsoleTables/ConsoleTable.cs | 39 ++++++++++++++++--------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/src/ConsoleTables/ConsoleTable.cs b/src/ConsoleTables/ConsoleTable.cs index e2c2df6..4f9d89d 100644 --- a/src/ConsoleTables/ConsoleTable.cs +++ b/src/ConsoleTables/ConsoleTable.cs @@ -225,31 +225,32 @@ public string ToMinimalString() } public string ToStringAlternative() - { - var builder = new StringBuilder(); +{ + var builder = new StringBuilder(); - // find the longest formatted line - var columnHeaders = string.Format(Formats[0].TrimStart(), Columns.ToArray()); + // find the longest formatted line + var columnHeaders = string.Format(Formats[0].TrimStart(), Columns.ToArray()); - // add each row - var results = Rows.Select((row, i) => string.Format(Formats[i + 1].TrimStart(), row)).ToList(); + // add each row + var results = Rows.Select((row, i) => string.Format(Formats[i + 1].TrimStart(), row)).ToList(); - // create the divider - var divider = Regex.Replace(columnHeaders, @"[^|]", "-"); - var dividerPlus = divider.Replace("|", "+"); + // create the divider + var divider = Regex.Replace(columnHeaders, "[^| ]", "-"); + var dividerPlus = divider.Replace("|", "+"); - builder.AppendLine(dividerPlus); - builder.AppendLine(columnHeaders); + builder.AppendLine(dividerPlus); + builder.AppendLine(columnHeaders); - foreach (var row in results) - { - builder.AppendLine(dividerPlus); - builder.AppendLine(row); - } - builder.AppendLine(dividerPlus); + foreach (var row in results) + { + builder.AppendLine(dividerPlus); + builder.AppendLine(row); + } + builder.AppendLine(dividerPlus); + + return builder.ToString(); +} - return builder.ToString(); - } private string Format(List columnLengths, char delimiter = '|') { From abe793c1f3ab6f0b4dbcf40dcf2427f4cd97c051 Mon Sep 17 00:00:00 2001 From: gsmander <109293278+gsmander@users.noreply.github.com> Date: Fri, 29 Sep 2023 14:29:29 -0400 Subject: [PATCH 2/2] Fixed: Write method which gave issues while using Alternative format --- src/ConsoleTables/ConsoleTable.cs | 44 ++++++++++++++++--------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/src/ConsoleTables/ConsoleTable.cs b/src/ConsoleTables/ConsoleTable.cs index 4f9d89d..ea8cd1c 100644 --- a/src/ConsoleTables/ConsoleTable.cs +++ b/src/ConsoleTables/ConsoleTable.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -72,7 +72,7 @@ public static ConsoleTable FromDictionary(Dictionary x.Value.Keys).Distinct().ToList(); - columNames.Insert(0,""); + columNames.Insert(0, ""); table.AddColumn(columNames); foreach (var row in values) { @@ -225,31 +225,31 @@ public string ToMinimalString() } public string ToStringAlternative() -{ - var builder = new StringBuilder(); + { + var builder = new StringBuilder(); - // find the longest formatted line - var columnHeaders = string.Format(Formats[0].TrimStart(), Columns.ToArray()); + // find the longest formatted line + var columnHeaders = string.Format(Formats[0].TrimStart(), Columns.ToArray()); - // add each row - var results = Rows.Select((row, i) => string.Format(Formats[i + 1].TrimStart(), row)).ToList(); + // add each row + var results = Rows.Select((row, i) => string.Format(Formats[i + 1].TrimStart(), row)).ToList(); - // create the divider - var divider = Regex.Replace(columnHeaders, "[^| ]", "-"); - var dividerPlus = divider.Replace("|", "+"); + // create the divider + var divider = Regex.Replace(columnHeaders, "[^| ]", "-"); + var dividerPlus = divider.Replace("|", "+"); - builder.AppendLine(dividerPlus); - builder.AppendLine(columnHeaders); + builder.AppendLine(dividerPlus); + builder.AppendLine(columnHeaders); - foreach (var row in results) - { - builder.AppendLine(dividerPlus); - builder.AppendLine(row); - } - builder.AppendLine(dividerPlus); + foreach (var row in results) + { + builder.AppendLine(dividerPlus); + builder.AppendLine(row); + } + builder.AppendLine(dividerPlus); - return builder.ToString(); -} + return builder.ToString(); + } private string Format(List columnLengths, char delimiter = '|') @@ -290,6 +290,8 @@ private List ColumnLengths() public void Write(Format format = ConsoleTables.Format.Default) { + SetFormats(ColumnLengths(), Enumerable.Range(0, Columns.Count).Select(GetNumberAlignment).ToList()); + switch (format) { case ConsoleTables.Format.Default: