Here are the examples of the csharp api double.ToString(string) taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
1350 Examples
19
View Source File : DownloadHandle.cs
License : GNU General Public License v3.0
Project Creator : 2dust
License : GNU General Public License v3.0
Project Creator : 2dust
void ws_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
try
{
if (UpdateCompleted != null)
{
if (e.Cancelled)
{
((WebClientEx)sender).Dispose();
TimeSpan ts = (DateTime.Now - totalDatetime);
string speed = string.Format("{0} M/s", (totalBytesToReceive / ts.TotalMilliseconds / 1000).ToString("#0.0"));
UpdateCompleted(this, new ResultEventArgs(true, speed.PadLeft(8, ' ')));
return;
}
if (e.Error == null
|| Utils.IsNullOrEmpty(e.Error.ToString()))
{
TimeSpan ts = (DateTime.Now - totalDatetime);
string speed = string.Format("{0} M/s", (totalBytesToReceive / ts.TotalMilliseconds / 1000).ToString("#0.0"));
UpdateCompleted(this, new ResultEventArgs(true, speed.PadLeft(8, ' ')));
}
else
{
throw e.Error;
}
}
}
catch (Exception ex)
{
Utils.SaveLog(ex.Message, ex);
Error?.Invoke(this, new ErrorEventArgs(ex));
}
}
19
View Source File : HSVUtil.cs
License : MIT License
Project Creator : 734843327
License : MIT License
Project Creator : 734843327
public override string ToString()
{
return "{" + H.ToString("f2") + "," + S.ToString("f2") + "," + V.ToString("f2") + "}";
}
19
View Source File : ActiveValueLabel.cs
License : MIT License
Project Creator : a1xd
License : MIT License
Project Creator : a1xd
public void SetValue(double value)
{
SetValue(value.ToString(FormatString));
}
19
View Source File : Field.cs
License : MIT License
Project Creator : a1xd
License : MIT License
Project Creator : a1xd
private string DecimalString(double value)
{
return value.ToString(FormatString);
}
19
View Source File : DoubleExtensions.cs
License : GNU Affero General Public License v3.0
Project Creator : ACEmulator
License : GNU Affero General Public License v3.0
Project Creator : ACEmulator
public static string FormatChance(this double chance)
{
if (chance == 1)
{
return "100%";
}
if (chance == 0)
{
return "0%";
}
double r = (chance * 100);
string p = r.ToString("F99").TrimEnd('0');
if (!p.StartsWith("0."))
{
int extra = 2;
if (p.IndexOf(".0") > -1 || p.EndsWith("."))
{
extra = 0;
}
return p.Substring(0, p.IndexOf('.') + extra) + "%";
}
int i = p.IndexOfAny(new char[] { '1', '2', '3', '4', '5', '6', '7', '8', '9' });
if (i < 0)
{
return "0%";
}
return p.Substring(0, i + 1) + "%";
}
19
View Source File : DatabasePerfTest.cs
License : GNU Affero General Public License v3.0
Project Creator : ACEmulator
License : GNU Affero General Public License v3.0
Project Creator : ACEmulator
private static void ReportResult(Session session, string testDescription, int biotasPerTest, TimeSpan duration, TimeSpan queueWaitTime, TimeSpan totalQueryExecutionTime, long trueResults, long falseResults)
{
if (session != null && !SessionIsStillInWorld(session))
return;
CommandHandlerHelper.WriteOutputInfo(session, $"{biotasPerTest} {testDescription.PadRight(17)} Duration: {duration.TotalSeconds.ToString("N1").PadLeft(5)} s. Queue Wait Time: {queueWaitTime.TotalMilliseconds.ToString("N0").PadLeft(3)} ms. Average Execution Time: {(totalQueryExecutionTime.TotalMilliseconds / biotasPerTest).ToString("N0").PadLeft(3)} ms. Success/Fail: {trueResults}/{falseResults}.", ChatMessageType.System);
}
19
View Source File : BaseballStatValueConverter.cs
License : MIT License
Project Creator : Actipro
License : MIT License
Project Creator : Actipro
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
#endif
if(value is double) {
var doubleValue = (double)value;
return doubleValue.ToString("0.000");
}
return value;
}
19
View Source File : HeadingConverter.cs
License : MIT License
Project Creator : Actipro
License : MIT License
Project Creator : Actipro
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
if (!(value is double))
throw new ArgumentException("The value preplaceded to this converter must be a Double.");
var doubleValue = (double)value;
if (doubleValue < 0.0)
doubleValue += 360.0;
if (doubleValue >= 360.0)
doubleValue -= 360.0;
return doubleValue.ToString("N0");
}
19
View Source File : MiniJson.cs
License : MIT License
Project Creator : AdamCarballo
License : MIT License
Project Creator : AdamCarballo
void SerializeOther(object value) {
// NOTE: decimals lose precision during serialization.
// They always have, I'm just letting you know.
// Previously floats and doubles lost precision too.
if (value is float) {
builder.Append(((float) value).ToString("R"));
} else if (value is int
|| value is uint
|| value is long
|| value is sbyte
|| value is byte
|| value is short
|| value is ushort
|| value is ulong) {
builder.Append(value);
} else if (value is double
|| value is decimal) {
builder.Append(Convert.ToDouble(value).ToString("R"));
} else {
SerializeString(value.ToString());
}
}
19
View Source File : Global.cs
License : MIT License
Project Creator : adamped
License : MIT License
Project Creator : adamped
public static string ToStringAsFixed(this double d, int value) => d.ToString($"N{value}");
19
View Source File : Helper.cs
License : MIT License
Project Creator : adamped
License : MIT License
Project Creator : adamped
public static string toStringAsFixed(this double value, int points)
{
return value.ToString($"N{points}");
}
19
View Source File : MainWindow.xaml.cs
License : MIT License
Project Creator : ADeltaX
License : MIT License
Project Creator : ADeltaX
private void UpdateVolume(double volume)
{
Dispatcher.Invoke(new Action(() =>
{
UpdateVolumeGlyph(volume);
_isInCodeValueChange = true;
VolumeSlider.Value = Math.Round(volume);
_isInCodeValueChange = false;
textVal.Text = Math.Round(volume).ToString("00");
}));
}
19
View Source File : FileSize.cs
License : MIT License
Project Creator : Adoxio
License : MIT License
Project Creator : Adoxio
public string ToString(int precision, IFormatProvider formatProvider = null)
{
var pow = Math.Floor((_value > 0 ? Math.Log(_value) : 0) / Math.Log(1024));
pow = Math.Min(pow, _units.Length - 1);
var value = _value / Math.Pow(1024, pow);
var precisionString = formatProvider == null
? precision.ToString(CultureInfo.CurrentCulture)
: precision.ToString(formatProvider);
return value.ToString(Math.Abs(pow - 0) < double.Epsilon ? "F0" : "F" + precisionString) + " " + _units[(int)pow];
}
19
View Source File : EngineMain.cs
License : The Unlicense
Project Creator : aeroson
License : The Unlicense
Project Creator : aeroson
public override string ToString()
{
return "FPS: " + fps.ToString("0.") +
"\t countMeshesRendered: " + countMeshesRendered;
}
19
View Source File : Profiler.cs
License : The Unlicense
Project Creator : aeroson
License : The Unlicense
Project Creator : aeroson
static string TimeSpanToString(TimeSpan timeSpan)
{
return timeSpan.TotalMilliseconds + "ms";
if (timeSpan.TotalMinutes > 1) return timeSpan.TotalMinutes.ToString("0.##") + "m";
if (timeSpan.TotalSeconds > 1) return timeSpan.TotalSeconds.ToString("0.##") + "s";
double ms = timeSpan.TotalMilliseconds;
if (ms > 1) return ms.ToString("0.##") + "ms";
ms *= 1000.0;
if (ms > 1) return ms.ToString("0.##") + "μs";
ms *= 1000.0;
return ms.ToString("0.##") + "ns";
}
19
View Source File : ExcelImporter.cs
License : Mozilla Public License 2.0
Project Creator : agebullhu
License : Mozilla Public License 2.0
Project Creator : agebullhu
protected static string GetNumericValue(ICell cell, double vl)
{
if (DateUtil.IsCellDateFormatted(cell)) return ExcelHelper.ExcelBaseDate.AddDays(vl).ToString("s");
return (decimal)vl == (int)vl ? ((int)vl).ToString() : vl.ToString("s");
}
19
View Source File : StringHelper.cs
License : Mozilla Public License 2.0
Project Creator : agebullhu
License : Mozilla Public License 2.0
Project Creator : agebullhu
public static string ToFixLenString(this double d, int len, int dit)
{
var s = d.ToString("F" + dit);
var sb = new StringBuilder();
var l = len - s.Length;
if (l > 0)
sb.Append(' ', l);
sb.Append(s);
return sb.ToString();
}
19
View Source File : ExcelImporter.cs
License : Mozilla Public License 2.0
Project Creator : agebullhu
License : Mozilla Public License 2.0
Project Creator : agebullhu
protected static string GetNumericValue(ICell cell, double vl)
{
if (DateUtil.IsCellDateFormatted(cell))
{
return ExcelHelper.ExcelBaseDate.AddDays(vl).ToString("s");
}
return (decimal)vl == (int)vl ? ((int)vl).ToString() : vl.ToString("s");
}
19
View Source File : NumericManipulator.cs
License : MIT License
Project Creator : akaskela
License : MIT License
Project Creator : akaskela
public string RoundToDecimalPlaces(string input, int places)
{
string displayValue = String.Empty;
double inputAsDouble = new double();
if (double.TryParse(input, out inputAsDouble))
{
displayValue = Math.Round(inputAsDouble, places, MidpointRounding.AwayFromZero).ToString("N" + places.ToString());
}
return displayValue;
}
19
View Source File : PerformanceGauge.cs
License : MIT License
Project Creator : alaabenfatma
License : MIT License
Project Creator : alaabenfatma
private void CountRam()
{
Task.Factory.StartNew(() =>
{
Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() =>
{
//This code can be used to mimick a real-life experience
//memsize += 1;
//Ram = memsize + " MB";
//ReBuild();
_pc.InstanceName = _proc.ProcessName;
_memsize = Convert.ToDouble(_pc.NextValue() / 1048576);
Ram = _memsize.ToString("#.0") + " MB";
ReBuild();
}));
});
}
19
View Source File : NumericExtensions.cs
License : MIT License
Project Creator : albyho
License : MIT License
Project Creator : albyho
public static string ToFloatFileSize(this long size)
{
double fSize = size;
var i = 0;
while (fSize >= FileSizeMod)
{
fSize /= FileSizeMod;
i++;
}
return fSize.ToString("f2") + FileSizeUnits[i];
}
19
View Source File : UpdatePriceSettings.cs
License : GNU Affero General Public License v3.0
Project Creator : alexander-pick
License : GNU Affero General Public License v3.0
Project Creator : alexander-pick
private void trackBarPriceEstAvg_ValueChanged(object sender, EventArgs e)
{
priceByAvg = (double)trackBarPriceEstAvg.Value / (trackBarPriceEstAvg.Maximum - trackBarPriceEstAvg.Minimum);
if (priceByAvg == 1)
labelPriceEstSliderValue.Text = "Max Price";
else if (priceByAvg > 0.5)
labelPriceEstSliderValue.Text = "AVG + " + ((priceByAvg - 0.5) * 2).ToString("f2") + " * (Max Price - AVG)";
else if (priceByAvg == 0)
labelPriceEstSliderValue.Text = "Min Price";
else if (priceByAvg < 0.5)
labelPriceEstSliderValue.Text = "Min Price + " + ((priceByAvg) * 2).ToString("f2") + " * (AVG - Min Price)";
else
labelPriceEstSliderValue.Text = "AVG";
}
19
View Source File : UpdatePriceSettings.cs
License : GNU Affero General Public License v3.0
Project Creator : alexander-pick
License : GNU Affero General Public License v3.0
Project Creator : alexander-pick
private void trackBarPriceEstAvgWorld_ValueChanged(object sender, EventArgs e)
{
priceByAvg = (double)trackBarPriceEstAvgWorld.Value / (trackBarPriceEstAvgWorld.Maximum - trackBarPriceEstAvgWorld.Minimum);
if (priceByAvg == 1)
labelPriceEstSliderValueWorld.Text = "Max Price";
else if (priceByAvg > 0.5)
labelPriceEstSliderValueWorld.Text = "AVG + " + ((priceByAvg - 0.5) * 2).ToString("f2") + " * (Max Price - AVG)";
else if (priceByAvg == 0)
labelPriceEstSliderValueWorld.Text = "Min Price";
else if (priceByAvg < 0.5)
labelPriceEstSliderValueWorld.Text = "Min Price + " + ((priceByAvg) * 2).ToString("f2") + " * (AVG - Min Price)";
else
labelPriceEstSliderValueWorld.Text = "AVG";
}
19
View Source File : PerformanceAnalyzer.cs
License : MIT License
Project Creator : AlexGyver
License : MIT License
Project Creator : AlexGyver
public static string GenerateReport(double totalTime)
{
StringBuilder sb = new StringBuilder();
int len = 0;
foreach (PerformanceInfo info in Performances)
len = Math.Max(info.Name.Length, len);
sb.AppendLine("Name".PadRight(len) + " Count Total Time, ms Avg. Time, ms Percentage, %");
sb.AppendLine("----------------------------------------------------------------------------------------------");
foreach (PerformanceInfo info in Performances)
{
sb.Append(info.Name.PadRight(len));
double p = 0;
double avgt = 0;
if (totalTime != 0)
p = info.TotalTime / totalTime;
if (info.Count > 0)
avgt = info.TotalTime * 1000 / info.Count;
string c = info.Count.ToString("0,0").PadRight(20);
string tt = (info.TotalTime * 1000).ToString("0,0.00").PadRight(20);
string t = avgt.ToString("0.0000").PadRight(20);
string sp = (p * 100).ToString("###").PadRight(20);
sb.AppendFormat(" " + c + tt + t + sp + "\n");
}
return sb.ToString();
}
19
View Source File : DoubleExtensions.cs
License : MIT License
Project Creator : AlexGyver
License : MIT License
Project Creator : AlexGyver
public static double RemoveNoise(this double value, int maxDigits = 8)
{
return double.Parse(value.ToString("e" + maxDigits));
}
19
View Source File : FormatHelper.cs
License : Apache License 2.0
Project Creator : alexyakunin
License : Apache License 2.0
Project Creator : alexyakunin
public static string ToString(this double? value, string format, string unit) =>
value.HasValue ? (value.Value.ToString(format) + " " + unit) : "n/a";
19
View Source File : WMIRealtimeReader.cs
License : GNU General Public License v3.0
Project Creator : Alois-xx
License : GNU General Public License v3.0
Project Creator : Alois-xx
private void Parser_OnProcessEndedWithDuration(Microsoft.Diagnostics.Tracing.Parsers.Kernel.ProcessTraceData endEvent, TimeSpan processDuration)
{
var kvp = new KeyValuePair<string, int>(endEvent.CommandLine, endEvent.ProcessID);
if( myProcessCmdLineWithPids.Contains(kvp))
{
myProcessCmdLineWithPids.Remove(kvp);
string msg = Row.Print(
DateString(endEvent.TimeStamp),
TimeString(endEvent.TimeStamp),
WMIOperation.ProcessEnd.ToString(),
endEvent.CommandLine,
endEvent.ProcessID.ToString(),
null,
null,
null,
null,
null,
processDuration.TotalSeconds.ToString("F1"));
FileLogger.Logger.Log(msg);
}
}
19
View Source File : JobBase.cs
License : MIT License
Project Creator : alonsoalon
License : MIT License
Project Creator : alonsoalon
public async Task<string> ExecuteJob(IJobExecutionContext context, Func<Task> func)
{
string jobHistory = $"【{DateTime.Now}】执行任务【Id:{context.JobDetail.Key.Name},组别:{context.JobDetail.Key.Group}】";
try
{
var s = context.Trigger.Key.Name;
//记录Job时间
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
await func();//执行任务
stopwatch.Stop();
jobHistory += $",【执行成功】,完成时间:{stopwatch.Elapsed.TotalMilliseconds.ToString("00")}毫秒";
}
catch (Exception ex)
{
JobExecutionException e2 = new JobExecutionException(ex);
//true 是立即重新执行任务
e2.RefireImmediately = true;
jobHistory += $",【执行失败】,异常日志:{ex.Message}";
}
Console.Out.WriteLine(jobHistory);
return jobHistory;
}
19
View Source File : IsNumberIntConverter.cs
License : MIT License
Project Creator : Altevir
License : MIT License
Project Creator : Altevir
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
int number;
int.TryParse(value.ToString(), out number);
return number == 0 ? System.Convert.ToDouble(value).ToString("N1") : number.ToString();
}
19
View Source File : PerformanceResizeAnalyze.cs
License : MIT License
Project Creator : AlturosDestinations
License : MIT License
Project Creator : AlturosDestinations
public void Start()
{
var yoloWrapper = new YoloWrapper("yolov2-tiny-voc.cfg", "yolov2-tiny-voc.weights", "voc.names");
var files = Directory.GetFiles(@".\Images");
var imageResizer = new ImageResizer();
var retrys = 10;
Console.WriteLine(string.Format("|{0,20}|{1,29}|{2,43}|", "", "Resize with yolo", "Resize before yolo"));
Console.WriteLine(string.Format("|{0,20}|{1,15}|{2,13}|{3,15}|{4,13}|{5,13}|{6,10}|{7,10}|", "Image", "detected items", "elapsed (ms)", " detected items", "resize (ms)", "yolo (ms)", "diff (ms)", "faster"));
foreach (var file in files)
{
for (var i = 0; i < retrys; i++)
{
var fileInfo = new FileInfo(file);
var imageData = File.ReadAllBytes(file);
var result1 = this.ProcessResizeAfter(yoloWrapper, imageData);
var result2 = this.ProcessResizeBefore(yoloWrapper, imageResizer, imageData);
var diff = result1.Item3 - result2.Item4;
Console.WriteLine(string.Format("|{0,20}|{1,15}|{2,13}|{3,15}|{4,13}|{5,13}|{6,10}|{7,10}|", fileInfo.Name, result1.Item1.Count, result1.Item2, result2.Item1.Count, result2.Item2, result2.Item3, diff.ToString("0.00"), diff > 0));
}
}
yoloWrapper.Dispose();
}
19
View Source File : NumberToHumanReadableConverter.cs
License : GNU General Public License v3.0
Project Creator : Amebis
License : GNU General Public License v3.0
Project Creator : Amebis
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
return null;
double number = System.Convert.ToDouble(value);
int b = parameter != null ? System.Convert.ToInt32(parameter) : Base;
if (number <= 0.5 && EmptyIfZero)
return "";
int n = number > 0.5 ? Math.Min((int)Math.Truncate(Math.Log(Math.Abs(number)) / Math.Log(b)), Prefixes.Length) : 0;
double x = number / Math.Pow(b, n);
return string.Format(
Views.Resources.Strings.NumberToHumanReadable,
n > 0 && Math.Abs(x) < 10 ?
(Math.Truncate(x * 10) / 10).ToString("N1") :
Math.Truncate(x).ToString(),
Prefixes[n],
Unit);
}
19
View Source File : NumericTextBox.cs
License : Apache License 2.0
Project Creator : AmpScm
License : Apache License 2.0
Project Creator : AmpScm
private void SetText(double dValue)
{
//Use "R" to use the max precision necessary
string strValue = dValue.ToString("R");
if (strValue != base.Text)
{
base.Text = strValue;
}
}
19
View Source File : NumberBox.cs
License : MIT License
Project Creator : amwx
License : MIT License
Project Creator : amwx
private void UpdateTextToValue()
{
if (_textBox == null)
return;
string newText = "";
if (!double.IsNaN(_value))
{
// Round to 12 digits (standard .net rounding per WinUI in the NumberBox source)
// We do this to prevent weirdness from floating point imprecision
var newValue = Math.Round(_value, 12);
if (SimpleNumberFormat != null)
{
newText = newValue.ToString(_simpleFormat);
}
else if (NumberFormatter != null)
{
newText = NumberFormatter(newValue);
}
else
{
newText = newValue.ToString();
}
}
_textBox.Text = newText;
try
{
_textUpdating = true;
Text = newText;
}
finally
{
_textUpdating = false;
MoveCaretToTextEnd(); //Add this
}
}
19
View Source File : StringPresenter.cs
License : MIT License
Project Creator : AndreyAkinshin
License : MIT License
Project Creator : AndreyAkinshin
[NotNull]
public static string Present([NotNull] this IEnumerable<double> values, string format = "N2")
{
return "[" + string.Join("; ", values.Select(x => x.ToString(format))) + "]";
}
19
View Source File : QuantileCiSimulation.cs
License : MIT License
Project Creator : AndreyAkinshin
License : MIT License
Project Creator : AndreyAkinshin
public void Run(string[] args)
{
var random = new Random(42);
var sampleSizes = Enumerable.Range(2, 49).ToList();
var confidenceLevels = new[] { ConfidenceLevel.L95 };
var probabilities = new Probability[] { 0.5, 0.7, 0.9, 0.95, 0.99 };
string tableHeader = "Dist " + string.Join(" ", sampleSizes.Select(it => it.ToString().PadLeft(4)));
using var writer = new Writer();
foreach (var probability in probabilities)
foreach (var confidenceLevel in confidenceLevels)
{
writer.SectionStart();
writer.WriteLine($" Quantile = {probability.Value:N2}, ConfidenceLevel = {confidenceLevel}");
writer.WriteLine(tableHeader);
foreach (var referenceDistribution in SyntheticLatencyBrendanGreggSet.Instance.Distributions)
{
writer.Write(referenceDistribution.Key.PadRight(5));
foreach (int sampleSize in sampleSizes)
{
double rate = GetCoveragePercentage(referenceDistribution.Distribution, probability, confidenceLevel, random,
sampleSize, 10_000);
string rateMessage = rate.ToString("N3") + " ";
if (rate > confidenceLevel.Value)
writer.WriteGood(rateMessage);
else if (rate > confidenceLevel.Value * 0.98)
writer.WriteMedium(rateMessage);
else
writer.WriteBad(rateMessage);
}
writer.WriteLine();
}
writer.SectionEnd();
writer.WriteLine();
}
}
19
View Source File : CpdTestDataVerification.cs
License : MIT License
Project Creator : AndreyAkinshin
License : MIT License
Project Creator : AndreyAkinshin
public static CpdTestDataVerification Verify(CpdTestData testData, int[] actualIndexes)
{
var expectedChangePoints = testData.ExpectedChangePoints;
var penalties = testData.Penalties;
int actualCount = actualIndexes.Length;
int expectedCount = expectedChangePoints.Count;
int maxAcceptableMissingPointCount = testData.MaxAcceptableMissingPointCount;
int indexMaxWidth = Math.Max(testData.Values.Count.ToString().Length, 3);
double penalty = 0;
int missingPointCounter = 0;
var report = new StringBuilder();
report.AppendLine($"*** Report for {testData.Name} ***");
report.AppendLine($"{"Exp".PadRight(indexMaxWidth)} {"Act".PadRight(indexMaxWidth)} Penalty");
void AddPenalty(int expectedIndex, int actualIndex, double indexPenalty, string comment)
{
penalty += indexPenalty;
string expectedMessage = (expectedIndex == -1 ? "-" : expectedIndex.ToString()).PadRight(indexMaxWidth);
string actualMessage = (actualIndex == -1 ? "-" : actualIndex.ToString()).PadRight(indexMaxWidth);
string penaltyMessage = indexPenalty.ToString("0.00").PadLeft(7);
string commentMessage = string.IsNullOrEmpty(comment) ? "" : $" {comment}";
report.AppendLine($"{expectedMessage} {actualMessage} {penaltyMessage}{commentMessage}");
}
int actualPointer = 0;
for (int expectedPointer = 0; expectedPointer < expectedCount; expectedPointer++)
{
var expectedPoint = expectedChangePoints[expectedPointer];
int expectedIndex = expectedPoint.Index;
while (actualPointer < actualCount - 1 &&
Math.Abs(expectedIndex - actualIndexes[actualPointer]) >
Math.Abs(expectedIndex - actualIndexes[actualPointer + 1]))
{
AddPenalty(-1, actualIndexes[actualPointer], penalties.ExtraPoint, "ExtraPoint");
actualPointer++;
}
if (actualPointer < actualCount && Math.Abs(expectedIndex - actualIndexes[actualPointer]) <= expectedPoint.MaxDisplacement)
{
int displacement = Math.Abs(expectedIndex - actualIndexes[actualPointer]);
int extraDisplacement = Math.Max(0, displacement - expectedPoint.AcceptableDisplacement);
AddPenalty(expectedIndex, actualIndexes[actualPointer],
penalties.Displacement * extraDisplacement * expectedPoint.Importance,
displacement > 0 ? $"Displacement(Max={expectedPoint.AcceptableDisplacement})" : "");
actualPointer++;
}
else
{
if (missingPointCounter++ < maxAcceptableMissingPointCount)
AddPenalty(expectedIndex, -1, penalties.AcceptableMissingPoint, "AcceptableMissingPoint");
else
{
if (Math.Abs(expectedPoint.Importance - 1) < 1e-9)
AddPenalty(expectedIndex, -1, penalties.MissingPoint, "MissingPoint");
else
AddPenalty(expectedIndex, -1, penalties.MissingPoint * expectedPoint.Importance,
$"MissingPoint(Importance={expectedPoint.Importance:0.00})");
}
}
}
while (actualPointer < actualCount)
{
AddPenalty(-1, actualIndexes[actualPointer], penalties.ExtraPoint, "ExtraPoint");
actualPointer++;
}
return new CpdTestDataVerification(penalty, report.ToString().Trim());
}
19
View Source File : ScrappedData.cs
License : MIT License
Project Creator : andruzzzhka
License : MIT License
Project Creator : andruzzzhka
public IEnumerator DownloadScrappedDataCoroutine(Action<List<ScrappedSong>> callback)
{
Plugin.log.Info("Downloading scrapped data...");
UnityWebRequest www;
bool timeout = false;
float time = 0f;
UnityWebRequestAsyncOperation asyncRequest;
try
{
www = SongDownloader.GetRequestForUrl(scrappedDataURL);
asyncRequest = www.SendWebRequest();
}
catch (Exception e)
{
Plugin.log.Error(e);
yield break;
}
while (!asyncRequest.isDone)
{
yield return null;
time += Time.deltaTime;
if (time >= 5f && asyncRequest.progress <= float.Epsilon)
{
www.Abort();
timeout = true;
Plugin.log.Error("Connection timed out!");
}
}
if (www.isNetworkError || www.isHttpError || timeout)
{
Plugin.log.Error("Unable to download scrapped data! " + (www.isNetworkError ? $"Network error: {www.error}" : (www.isHttpError ? $"HTTP error: {www.error}" : "Unknown error")));
}
else
{
Plugin.log.Info("Received response from github.com!");
Task parsing = new Task( () => { Songs = JsonConvert.DeserializeObject<List<ScrappedSong>>(www.downloadHandler.text); });
parsing.ConfigureAwait(false);
Plugin.log.Info("Parsing scrapped data...");
Stopwatch timer = new Stopwatch();
timer.Start();
parsing.Start();
yield return new WaitUntil(() => parsing.IsCompleted);
timer.Stop();
Downloaded = true;
callback?.Invoke(Songs);
Plugin.log.Info($"Scrapped data parsed! Time: {timer.Elapsed.TotalSeconds.ToString("0.00")}s");
}
}
19
View Source File : AnimeScraperService.cs
License : GNU General Public License v3.0
Project Creator : AniAPI-Team
License : GNU General Public License v3.0
Project Creator : AniAPI-Team
public override async Task Work()
{
await base.Work();
try
{
foreach (string formatFilter in this._formatsFilter)
{
this._anilistQuery.Variables["format"] = formatFilter;
for (int currentPage = 1; currentPage <= this._totalPages; currentPage++)
{
this._anilistQuery.Variables["page"] = currentPage;
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
Content = new StringContent(JsonConvert.SerializeObject(this._anilistQuery), Encoding.UTF8, "application/json")
};
try
{
using (var response = await this._anilistClient.SendAsync(request))
{
try
{
response.EnsureSuccessStatusCode();
}
catch (Exception ex)
{
if (response.StatusCode == System.Net.HttpStatusCode.TooManyRequests)
{
this._rateLimitReset = Convert.ToInt64(((string[])response.Headers.GetValues("X-RateLimit-Reset"))[0]);
}
throw new HttpRequestException("RateLimit superato", ex);
}
AnilistResponse anilistResponse = JsonConvert.DeserializeObject<AnilistResponse>(await response.Content.ReadreplacedtringAsync());
if (currentPage == 1)
{
this._totalPages = anilistResponse.Data.Page.PageInfo.LastPage;
}
foreach (AnilistResponse.ResponseMedia m in anilistResponse.Data.Page.Media)
{
Anime anime = new Anime(m);
if (this._animeCollection.Exists(ref anime))
{
this._animeCollection.Edit(ref anime);
}
else
{
this._animeCollection.Add(ref anime);
}
}
this._rateLimitRemaining = Convert.ToInt32(((string[])response.Headers.GetValues("X-RateLimit-Remaining"))[0]);
this.Log($"Format {formatFilter} done {GetProgress(currentPage, this._totalPages)}%", true);
}
}
catch (HttpRequestException ex)
{
currentPage--;
DateTime timeOfReset = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
timeOfReset = timeOfReset.AddSeconds(this._rateLimitReset).ToLocalTime();
TimeSpan timeToWait = timeOfReset - DateTime.Now;
this.Log($"Waiting {timeToWait.TotalMilliseconds.ToString("F0")} ms!", true);
Thread.Sleep((int)timeToWait.TotalMilliseconds + 1000);
}
if (_cancellationToken.IsCancellationRequested)
{
throw new TaskCanceledException("Process cancellation requested!");
}
}
}
}
catch(Exception ex)
{
throw;
}
}
19
View Source File : IService.cs
License : GNU General Public License v3.0
Project Creator : AniAPI-Team
License : GNU General Public License v3.0
Project Creator : AniAPI-Team
public string GetProgressD(double actualValue, double maxValue)
{
double progress = (actualValue / maxValue) * 100;
this.ServiceStatus.Progress = progress;
ServicesStatus servicesStatus = this.ServiceStatus;
this._serviceStatusCollection.Edit(ref servicesStatus);
if (progress < 10)
{
return "0" + progress.ToString("F2");
}
return progress.ToString("F2");
}
19
View Source File : WebsiteScraperService.cs
License : GNU General Public License v3.0
Project Creator : AniAPI-Team
License : GNU General Public License v3.0
Project Creator : AniAPI-Team
public override async Task Work()
{
await base.Work();
try
{
this._workers = new List<IWebsiteScraper>()
{
new DreamsubScraper(this),
new AnimeworldScraper(this),
new GogoanimeScraper(this)
};
foreach(IWebsiteScraper scraper in this._workers)
{
Task.Run(async () => await scraper.Start());
}
while (true)
{
Thread.Sleep(1000 * 5);
double avg = this._workers.Sum(x => x.Progress) / this._workers.Count;
this.Log($"Done {avg.ToString("F2")}%", true);
int working = this._workers.Count(x => x.Working == true);
if(working == 0)
{
break;
}
}
}
catch(Exception ex)
{
throw;
}
}
19
View Source File : PriorityQueuesTest.cs
License : Apache License 2.0
Project Creator : AnkiUniversal
License : Apache License 2.0
Project Creator : AnkiUniversal
public override string ToString()
{
return "(" + lastName + ", " + priority.ToString("F1") + ")";
}
19
View Source File : Converters.cs
License : Apache License 2.0
Project Creator : anmcgrath
License : Apache License 2.0
Project Creator : anmcgrath
public object Convert (object value, Type targetType, object parameter, CultureInfo culture) {
if ( value != null && value is double ) {
double val =System.Convert.ToDouble (value) ;
string strValue =val.ToString ("N0") ;
return (strValue) ;
}
return (value) ;
}
19
View Source File : Converters.cs
License : Apache License 2.0
Project Creator : anmcgrath
License : Apache License 2.0
Project Creator : anmcgrath
public object Convert (object [] values, Type targetType, object parameter, CultureInfo culture) {
double value =System.Convert.ToDouble (values [0]) ;
double minValue =System.Convert.ToDouble (values [1]) ;
double maxValue =System.Convert.ToDouble (values [2]) ;
if ( minValue == maxValue )
return ("~%") ;
double val =100 * (value - minValue) / (maxValue - minValue) ;
string strValue =val.ToString ("N0") + "%" ;
return (strValue) ;
}
19
View Source File : FandomExporter.cs
License : MIT License
Project Creator : AnnoDesigner
License : MIT License
Project Creator : AnnoDesigner
private StringBuilder addWorkforceInfo(StringBuilder exportString, List<AnnoObject> placedObjects, BuildingPresets buildingPresets, WikiBuildingInfoPresets wikiBuildingInfoPresets)
{
double farmers = 0;
double workers = 0;
double artisans = 0;
double engineers = 0;
double jornaleros = 0;
double obreros = 0;
double explorers = 0;
double technicians = 0;
var groupedBuildings = placedObjects.Where(x => !x.Road && !string.IsNullOrWhiteSpace(x.Identifier) && !x.Identifier.Equals("Unknown Object", StringComparison.OrdinalIgnoreCase)).GroupBy(x => x.Identifier);
foreach (var curGroup in groupedBuildings)
{
var buildingIdentifier = curGroup.Key;
var buildingCount = curGroup.Count();
var foundWikiBuildingInfo = getWikiBuildingInfo(buildingIdentifier, buildingPresets, wikiBuildingInfoPresets);
if (foundWikiBuildingInfo == null || foundWikiBuildingInfo.MaintenanceInfos.Count == 0)
{
//no info found -> skip
logger.Trace($"found no wiki info for identifier: {buildingIdentifier}");
continue;
}
//get farmers
var foundFarmersEntry = foundWikiBuildingInfo.MaintenanceInfos.FirstOrDefault(x => x.Unit.Name.Equals("Workforce Farmers", StringComparison.OrdinalIgnoreCase));
if (foundFarmersEntry != null)
{
farmers += (foundFarmersEntry.Value * buildingCount);
}
//get workers
var foundWorkersEntry = foundWikiBuildingInfo.MaintenanceInfos.FirstOrDefault(x => x.Unit.Name.Equals("Workforce Workers", StringComparison.OrdinalIgnoreCase));
if (foundWorkersEntry != null)
{
workers += (foundWorkersEntry.Value * buildingCount);
}
//get artisans
var foundArtisansEntry = foundWikiBuildingInfo.MaintenanceInfos.FirstOrDefault(x => x.Unit.Name.Equals("Workforce Artisans", StringComparison.OrdinalIgnoreCase));
if (foundArtisansEntry != null)
{
artisans += (foundArtisansEntry.Value * buildingCount);
}
//get engineers
var foundEngineersEntry = foundWikiBuildingInfo.MaintenanceInfos.FirstOrDefault(x => x.Unit.Name.Equals("Workforce Engineers", StringComparison.OrdinalIgnoreCase));
if (foundEngineersEntry != null)
{
engineers += (foundEngineersEntry.Value * buildingCount);
}
//get jornaleros
var foundJornalerosEntry = foundWikiBuildingInfo.MaintenanceInfos.FirstOrDefault(x => x.Unit.Name.Equals("Workforce Jornaleros", StringComparison.OrdinalIgnoreCase));
if (foundJornalerosEntry != null)
{
jornaleros += (foundJornalerosEntry.Value * buildingCount);
}
//get obreros
var foundObrerosEntry = foundWikiBuildingInfo.MaintenanceInfos.FirstOrDefault(x => x.Unit.Name.Equals("Workforce Obreros", StringComparison.OrdinalIgnoreCase));
if (foundObrerosEntry != null)
{
obreros += (foundObrerosEntry.Value * buildingCount);
}
//get explorers
var foundExplorersEntry = foundWikiBuildingInfo.MaintenanceInfos.FirstOrDefault(x => x.Unit.Name.Equals("Workforce Explorers", StringComparison.OrdinalIgnoreCase));
if (foundExplorersEntry != null)
{
explorers += (foundExplorersEntry.Value * buildingCount);
}
//get technicians
var foundTechniciansEntry = foundWikiBuildingInfo.MaintenanceInfos.FirstOrDefault(x => x.Unit.Name.Equals("Workforce Technicians", StringComparison.OrdinalIgnoreCase));
if (foundTechniciansEntry != null)
{
technicians += (foundTechniciansEntry.Value * buildingCount);
}
}
//add info to template
exportString.Append(TEMPLATE_LINE_START).Append(HEADER_FARMERS_WORKFORCE).Append(TEMPLATE_ENTRY_DELIMITER).AppendLine(farmers != 0 ? farmers.ToString("0") : string.Empty)
.Append(TEMPLATE_LINE_START).Append(HEADER_WORKERS_WORKFORCE).Append(TEMPLATE_ENTRY_DELIMITER).AppendLine(workers != 0 ? workers.ToString("0") : string.Empty)
.Append(TEMPLATE_LINE_START).Append(HEADER_ARTISANS_WORKFORCE).Append(TEMPLATE_ENTRY_DELIMITER).AppendLine(artisans != 0 ? artisans.ToString("0") : string.Empty)
.Append(TEMPLATE_LINE_START).Append(HEADER_ENGINEERS_WORKFORCE).Append(TEMPLATE_ENTRY_DELIMITER).AppendLine(engineers != 0 ? engineers.ToString("0") : string.Empty)
.Append(TEMPLATE_LINE_START).Append(HEADER_JORNALEROS_WORKFORCE).Append(TEMPLATE_ENTRY_DELIMITER).AppendLine(jornaleros != 0 ? jornaleros.ToString("0") : string.Empty)
.Append(TEMPLATE_LINE_START).Append(HEADER_OBREROS_WORKFORCE).Append(TEMPLATE_ENTRY_DELIMITER).AppendLine(obreros != 0 ? obreros.ToString("0") : string.Empty)
.Append(TEMPLATE_LINE_START).Append(HEADER_OBREROS_WORKFORCE).Append(TEMPLATE_ENTRY_DELIMITER).AppendLine(obreros != 0 ? obreros.ToString("0") : string.Empty)
.Append(TEMPLATE_LINE_START).Append(HEADER_EXPLORERS_WORKFORCE).Append(TEMPLATE_ENTRY_DELIMITER).AppendLine(explorers != 0 ? explorers.ToString("0") : string.Empty)
.Append(TEMPLATE_LINE_START).Append(HEADER_TECHNICIANS_WORKFORCE).Append(TEMPLATE_ENTRY_DELIMITER).AppendLine(technicians != 0 ? technicians.ToString("0") : string.Empty);
return exportString;
}
19
View Source File : FandomExporter.cs
License : MIT License
Project Creator : AnnoDesigner
License : MIT License
Project Creator : AnnoDesigner
private StringBuilder addInfluence(StringBuilder exportString, List<AnnoObject> placedObjects, BuildingPresets buildingPresets, WikiBuildingInfoPresets wikiBuildingInfoPresets)
{
double influence = 0;
var groupedBuildings = placedObjects.Where(x => !x.Road && !string.IsNullOrWhiteSpace(x.Identifier) && !x.Identifier.Equals("Unknown Object", StringComparison.OrdinalIgnoreCase)).GroupBy(x => x.Identifier);
foreach (var curGroup in groupedBuildings)
{
var buildingIdentifier = curGroup.Key;
var buildingCount = curGroup.Count();
var foundWikiBuildingInfo = getWikiBuildingInfo(buildingIdentifier, buildingPresets, wikiBuildingInfoPresets);
if (foundWikiBuildingInfo == null || foundWikiBuildingInfo.MaintenanceInfos.Count == 0)
{
//no info found -> skip
logger.Trace($"found no wiki info for identifier: {buildingIdentifier}");
continue;
}
//get influence
var foundInfluenceEntry = foundWikiBuildingInfo.MaintenanceInfos.FirstOrDefault(x => x.Unit.Name.StartsWith("Influence", StringComparison.OrdinalIgnoreCase));
if (foundInfluenceEntry != null)
{
influence = influence + (foundInfluenceEntry.Value * buildingCount);
}
}
exportString.Append(TEMPLATE_LINE_START).Append(HEADER_INFLUENCE).Append(TEMPLATE_ENTRY_DELIMITER).AppendLine(influence != 0 ? influence.ToString("0") : string.Empty);
return exportString;
}
19
View Source File : FandomExporter.cs
License : MIT License
Project Creator : AnnoDesigner
License : MIT License
Project Creator : AnnoDesigner
private StringBuilder addAttractiveness(StringBuilder exportString, List<AnnoObject> placedObjects, BuildingPresets buildingPresets, WikiBuildingInfoPresets wikiBuildingInfoPresets)
{
double attractiveness = 0;
var groupedBuildings = placedObjects.Where(x => !x.Road && !string.IsNullOrWhiteSpace(x.Identifier) && !x.Identifier.Equals("Unknown Object", StringComparison.OrdinalIgnoreCase)).GroupBy(x => x.Identifier);
foreach (var curGroup in groupedBuildings)
{
var buildingIdentifier = curGroup.Key;
var buildingCount = curGroup.Count();
var foundWikiBuildingInfo = getWikiBuildingInfo(buildingIdentifier, buildingPresets, wikiBuildingInfoPresets);
if (foundWikiBuildingInfo == null || foundWikiBuildingInfo.MaintenanceInfos.Count == 0)
{
//no info found -> skip
logger.Trace($"found no wiki info for identifier: {buildingIdentifier}");
continue;
}
//get attractiveness
var foundAttractivenessEntry = foundWikiBuildingInfo.MaintenanceInfos.FirstOrDefault(x => x.Unit.Name.StartsWith("Attractiveness", StringComparison.OrdinalIgnoreCase));
if (foundAttractivenessEntry != null)
{
attractiveness = attractiveness + (foundAttractivenessEntry.Value * buildingCount);
}
}
exportString.Append(TEMPLATE_LINE_START).Append(HEADER_ATTRACTIVENESS).Append(TEMPLATE_ENTRY_DELIMITER).AppendLine(attractiveness != 0 ? attractiveness.ToString("0") : string.Empty);
return exportString;
}
19
View Source File : FandomExporter.cs
License : MIT License
Project Creator : AnnoDesigner
License : MIT License
Project Creator : AnnoDesigner
private StringBuilder addBalance(StringBuilder exportString, List<AnnoObject> placedObjects, BuildingPresets buildingPresets, WikiBuildingInfoPresets wikiBuildingInfoPresets)
{
double balance = 0;
var groupedBuildings = placedObjects.Where(x => !x.Road && !string.IsNullOrWhiteSpace(x.Identifier) && !x.Identifier.Equals("Unknown Object", StringComparison.OrdinalIgnoreCase)).GroupBy(x => x.Identifier);
foreach (var curGroup in groupedBuildings)
{
var buildingIdentifier = curGroup.Key;
var buildingCount = curGroup.Count();
var foundWikiBuildingInfo = getWikiBuildingInfo(buildingIdentifier, buildingPresets, wikiBuildingInfoPresets);
if (foundWikiBuildingInfo == null || foundWikiBuildingInfo.MaintenanceInfos.Count == 0)
{
//no info found -> skip
continue;
}
//get balance
var foundBalanceEntry = foundWikiBuildingInfo.MaintenanceInfos.FirstOrDefault(x => x.Unit.Name.Equals("Balance", StringComparison.OrdinalIgnoreCase));
if (foundBalanceEntry != null)
{
balance = balance + (foundBalanceEntry.Value * buildingCount);
}
}
exportString.Append(TEMPLATE_LINE_START).Append(HEADER_BALANCE).Append(TEMPLATE_ENTRY_DELIMITER).AppendLine(balance != 0 ? balance.ToString("0") : string.Empty);
return exportString;
}
19
View Source File : FandomExporter.cs
License : MIT License
Project Creator : AnnoDesigner
License : MIT License
Project Creator : AnnoDesigner
private StringBuilder addConstructionInfo(StringBuilder exportString, List<AnnoObject> placedObjects, BuildingPresets buildingPresets, WikiBuildingInfoPresets wikiBuildingInfoPresets)
{
double credits = 0;
double timber = 0;
double bricks = 0;
double steelBeams = 0;
double windows = 0;
double reinforcedConcrete = 0;
var groupedBuildings = placedObjects.Where(x => !x.Road && !string.IsNullOrWhiteSpace(x.Identifier) && !x.Identifier.Equals("Unknown Object", StringComparison.OrdinalIgnoreCase)).GroupBy(x => x.Identifier);
foreach (var curGroup in groupedBuildings)
{
var buildingIdentifier = curGroup.Key;
var buildingCount = curGroup.Count();
var foundWikiBuildingInfo = getWikiBuildingInfo(buildingIdentifier, buildingPresets, wikiBuildingInfoPresets);
if (foundWikiBuildingInfo == null || foundWikiBuildingInfo.ConstructionInfos.Count == 0)
{
//no info found -> skip
logger.Trace($"found no wiki info for identifier: {buildingIdentifier}");
continue;
}
//get credits
var foundCreditsEntry = foundWikiBuildingInfo.ConstructionInfos.FirstOrDefault(x => x.Unit.Name.Equals("Credits", StringComparison.OrdinalIgnoreCase));
if (foundCreditsEntry != null)
{
credits += (foundCreditsEntry.Value * buildingCount);
}
//get timber
var foundTimberEntry = foundWikiBuildingInfo.ConstructionInfos.FirstOrDefault(x => x.Unit.Name.Equals("Timber", StringComparison.OrdinalIgnoreCase));
if (foundTimberEntry != null)
{
timber += (foundTimberEntry.Value * buildingCount);
}
//get bricks
var foundBricksEntry = foundWikiBuildingInfo.ConstructionInfos.FirstOrDefault(x => x.Unit.Name.Equals("Bricks", StringComparison.OrdinalIgnoreCase));
if (foundBricksEntry != null)
{
bricks += (foundBricksEntry.Value * buildingCount);
}
//get steel beams
var foundSteelBeamsEntry = foundWikiBuildingInfo.ConstructionInfos.FirstOrDefault(x => x.Unit.Name.Equals("Steel Beams", StringComparison.OrdinalIgnoreCase));
if (foundSteelBeamsEntry != null)
{
steelBeams += (foundSteelBeamsEntry.Value * buildingCount);
}
//get windows
var foundWindowsEntry = foundWikiBuildingInfo.ConstructionInfos.FirstOrDefault(x => x.Unit.Name.Equals("Windows", StringComparison.OrdinalIgnoreCase));
if (foundWindowsEntry != null)
{
windows += (foundWindowsEntry.Value * buildingCount);
}
//get reinforced concrete
var foundReinforcedConcreteEntry = foundWikiBuildingInfo.ConstructionInfos.FirstOrDefault(x => x.Unit.Name.Equals("Reinforced Concrete", StringComparison.OrdinalIgnoreCase));
if (foundReinforcedConcreteEntry != null)
{
reinforcedConcrete += (foundReinforcedConcreteEntry.Value * buildingCount);
}
}
//add info to template
exportString.Append(TEMPLATE_LINE_START).Append(HEADER_CREDITS).Append(TEMPLATE_ENTRY_DELIMITER).AppendLine(credits > 0 ? credits.ToString("0") : string.Empty)
.Append(TEMPLATE_LINE_START).Append(HEADER_TIMBER).Append(TEMPLATE_ENTRY_DELIMITER).AppendLine(timber > 0 ? timber.ToString("0") : string.Empty)
.Append(TEMPLATE_LINE_START).Append(HEADER_BRICKS).Append(TEMPLATE_ENTRY_DELIMITER).AppendLine(bricks > 0 ? bricks.ToString("0") : string.Empty)
.Append(TEMPLATE_LINE_START).Append(HEADER_STEEL_BEAMS).Append(TEMPLATE_ENTRY_DELIMITER).AppendLine(steelBeams > 0 ? steelBeams.ToString("0") : string.Empty)
.Append(TEMPLATE_LINE_START).Append(HEADER_WINDOWS).Append(TEMPLATE_ENTRY_DELIMITER).AppendLine(windows > 0 ? windows.ToString("0") : string.Empty)
.Append(TEMPLATE_LINE_START).Append(HEADER_REINFORCED_CONCRETE).Append(TEMPLATE_ENTRY_DELIMITER).AppendLine(reinforcedConcrete > 0 ? reinforcedConcrete.ToString("0") : string.Empty);
return exportString;
}
19
View Source File : AccCompiler.cs
License : GNU General Public License v3.0
Project Creator : anotak
License : GNU General Public License v3.0
Project Creator : anotak
public override bool Run()
{
ProcessStartInfo processinfo;
Process process;
TimeSpan deltatime;
int line = 0;
string sourcedir = Path.GetDirectoryName(sourcefile);
// Create parameters
string args = this.parameters;
args = args.Replace("%FI", inputfile);
args = args.Replace("%FO", outputfile);
args = args.Replace("%FS", sourcefile);
args = args.Replace("%PT", this.tempdir.FullName);
args = args.Replace("%PS", sourcedir);
// Setup process info
processinfo = new ProcessStartInfo();
processinfo.Arguments = args;
processinfo.FileName = Path.Combine(this.tempdir.FullName, info.ProgramFile);
processinfo.CreateNoWindow = false;
processinfo.ErrorDialog = false;
processinfo.UseShellExecute = true;
processinfo.WindowStyle = ProcessWindowStyle.Hidden;
processinfo.WorkingDirectory = this.workingdir;
// Output info
Logger.WriteLogLine("Running compiler...");
Logger.WriteLogLine("Program: " + processinfo.FileName);
Logger.WriteLogLine("Arguments: " + processinfo.Arguments);
try
{
// Start the compiler
process = Process.Start(processinfo);
}
catch(Exception e)
{
// Unable to start the compiler
General.ShowErrorMessage("Unable to start the compiler (" + info.Name + "). " + e.GetType().Name + ": " + e.Message, MessageBoxButtons.OK);
return false;
}
// Wait for compiler to complete
process.WaitForExit();
deltatime = TimeSpan.FromTicks(process.ExitTime.Ticks - process.StartTime.Ticks);
Logger.WriteLogLine("Compiler process has finished.");
Logger.WriteLogLine("Compile time: " + deltatime.TotalSeconds.ToString("########0.00") + " seconds");
// Now find the error file
string errfile = Path.Combine(this.workingdir, ACS_ERROR_FILE);
if(File.Exists(errfile))
{
try
{
// Regex to find error lines
Regex errlinematcher = new Regex(":[0-9]+: ", RegexOptions.Compiled | RegexOptions.CultureInvariant);
// Read all lines
string[] errlines = File.ReadAllLines(errfile);
while(line < errlines.Length)
{
// Check line
string linestr = errlines[line];
Match match = errlinematcher.Match(linestr);
if(match.Success && (match.Index > 0))
{
CompilerError err = new CompilerError();
// The match without spaces and semicolon is the line number
string linenr = match.Value.Replace(":", "").Trim();
if(!int.TryParse(linenr, out err.linenumber))
err.linenumber = CompilerError.NO_LINE_NUMBER;
else
err.linenumber--;
// Everything before the match is the filename
err.filename = linestr.Substring(0, match.Index);
if(!Path.IsPathRooted(err.filename))
{
// Add working directory to filename
err.filename = Path.Combine(processinfo.WorkingDirectory, err.filename);
}
// Everything after the match is the description
err.description = linestr.Substring(match.Index + match.Length).Trim();
// Report the error
ReportError(err);
}
// Next line
line++;
}
}
catch(Exception e)
{
// Error reading errors (ironic, isn't it)
ReportError(new CompilerError("Failed to retrieve compiler error report. " + e.GetType().Name + ": " + e.Message));
}
}
return true;
}
19
View Source File : NodesCompiler.cs
License : GNU General Public License v3.0
Project Creator : anotak
License : GNU General Public License v3.0
Project Creator : anotak
public override bool Run()
{
ProcessStartInfo processinfo;
Process process;
TimeSpan deltatime;
// Create parameters
string args = this.parameters;
args = args.Replace("%FI", inputfile);
args = args.Replace("%FO", outputfile);
// Setup process info
processinfo = new ProcessStartInfo();
processinfo.Arguments = args;
processinfo.FileName = Path.Combine(this.tempdir.FullName, info.ProgramFile);
processinfo.CreateNoWindow = false;
processinfo.ErrorDialog = false;
processinfo.UseShellExecute = true;
processinfo.WindowStyle = ProcessWindowStyle.Hidden;
processinfo.WorkingDirectory = this.workingdir;
// Output info
Logger.WriteLogLine("Running compiler...");
Logger.WriteLogLine("Program: " + processinfo.FileName);
Logger.WriteLogLine("Arguments: " + processinfo.Arguments);
try
{
// Start the compiler
process = Process.Start(processinfo);
}
catch(Exception e)
{
// Unable to start the compiler
General.ShowErrorMessage("Unable to start the compiler (" + info.Name + "). " + e.GetType().Name + ": " + e.Message, MessageBoxButtons.OK);
return false;
}
// Wait for compiler to complete
process.WaitForExit();
deltatime = TimeSpan.FromTicks(process.ExitTime.Ticks - process.StartTime.Ticks);
Logger.WriteLogLine("Compiler process has finished.");
Logger.WriteLogLine("Compile time: " + deltatime.TotalSeconds.ToString("########0.00") + " seconds");
return true;
}
See More Examples