[SimpleSort] Can we get this as configurable as possible?

This commit is contained in:
Matt Nadareski
2016-06-26 22:08:35 -07:00
parent 462f03f52e
commit 02b6cd7d75
2 changed files with 25 additions and 6 deletions

View File

@@ -137,7 +137,9 @@ namespace SabreTools.Helper
// USER and ERROR writes to console
if (loglevel == LogLevel.USER || loglevel == LogLevel.ERROR)
{
Console.WriteLine((loglevel == LogLevel.ERROR ? loglevel.ToString() + " " : "") + output);
int padlength = (int)(Math.Ceiling((double)output.Length / 80) * 80) - 1;
string tempoutput = output.PadRight(padlength, ' ');
Console.WriteLine((loglevel == LogLevel.ERROR ? loglevel.ToString() + " " : "") + tempoutput);
}
// If we're writing to file, use the existing stream
@@ -162,11 +164,22 @@ namespace SabreTools.Helper
/// Write the given exact string to the log output
/// </summary>
/// <param name="output">String to be written log</param>
/// <param name="loglevel">Severity of the information being logged</param>
/// <param name="line">Line number to write out to</param>
/// <param name="column">Column number to write out to</param>
/// <returns>True if the output could be written, false otherwise</returns>
public bool LogExact(string output)
public bool Log(string output, int line, int column)
{
Console.Write(output);
// Set the cursor position (if not being redirected)
if (!Console.IsOutputRedirected)
{
Console.CursorTop = line;
Console.CursorLeft = column;
}
// Write out to the console
int padlength = (int)(Math.Ceiling((double)output.Length / 80) * 80) - 1;
string tempoutput = output.PadRight(padlength, ' ');
Console.Write(tempoutput);
// If we're writing to file, use the existing stream
if (_tofile)

View File

@@ -21,6 +21,10 @@ namespace SabreTools
private ArchiveScanLevel _zip;
private Logger _logger;
// Other private variables
private int _cursorTop;
private int _cursorLeft;
/// <summary>
/// Create a new SimpleSort object
/// </summary>
@@ -307,6 +311,7 @@ namespace SabreTools
// Then, loop through and check each of the inputs
_logger.User("Processing files:\n");
_cursorTop = Console.CursorTop;
for (int i = 0; i < files.Count; i++)
{
success &= RebuildToOutputHelper(files[i], i, files.Count);
@@ -347,8 +352,9 @@ namespace SabreTools
bool success = true;
// Get the full path of the input for movement purposes
string statement = "\r" + (100 * index / total) + "% - " + Path.GetFileName(input);
_logger.LogExact(statement.PadRight(79, ' '));
string percentage = Math.Round((100 * ((double)index / total)), 2, MidpointRounding.AwayFromZero).ToString();
string statement = percentage + "% - " + input;
_logger.Log(statement, _cursorTop, 0);
// Get if the file should be scanned internally and externally
bool shouldExternalScan = true;