public void CanReadFiles() { var csvData = File.ReadAllText(@"TestFiles\sentences.csv"); var result = CsvAnalyzer.Analyze(csvData); Assert.AreEqual(',', result.Separator); }
public void CanFindColonInQuotedFile() { var data = File.ReadAllText(@"TestFiles\QuotedWithSeparator.csv"); var result = CsvAnalyzer.Analyze(data); Assert.AreEqual(',', result.Separator); }
public void CanHandleQuotesInText() { var data = File.ReadAllText(@"TestFiles\TabsWithQuotesInText.csv"); var result = CsvAnalyzer.Analyze(data); Assert.AreEqual('\t', result.Separator); }
private void Analyze(bool silent) { var watch = new DiagnosticTimer(); var bufferId = NotepadPPGateway.GetCurrentBufferId(); var textLength = PluginBase.CurrentScintillaGateway.GetTextLength(); var text = PluginBase.CurrentScintillaGateway.GetTextRange(0, Math.Min(100000, textLength)); watch.Checkpoint("GetText"); var csvSettings = CsvAnalyzer.Analyze(text); if (csvSettings.Separator == '\0' && csvSettings.FieldWidths == null) { if (silent) { return; } var askUserDialog = new ParseSettings(csvSettings); this.UiThread(() => askUserDialog.ShowDialog()); if (askUserDialog.DialogResult != DialogResult.OK) { return; } csvSettings = askUserDialog.Settings; } watch.Checkpoint("Analyze"); using (var sr = ScintillaStreams.StreamAllText()) { this.Parse(csvSettings, watch, sr, bufferId); } }
public void CanFindSemicolonInBigFile() { var csvData = Helpers.GetResource("semicolon.csv"); var result = CsvAnalyzer.Analyze(csvData); Assert.AreEqual(';', result.Separator); }
public void CanDetectTabW3C() { var csvData = File.ReadAllText(@"TestFiles\w3c.log").Replace(' ', '\t'); var result = CsvAnalyzer.Analyze(csvData); Assert.AreEqual('\t', result.Separator); Assert.AreEqual('#', result.CommentCharacter); }
public void Can_detect_xml_file() { Main.Settings.ParseXmlFiles = true; var data = File.ReadAllText("TestFiles\\simple.xml"); var result = CsvAnalyzer.Analyze(data); Assert.IsTrue(result is XmlSettings); }
public void CanParseW3c() { var csvData = File.ReadAllText(@"TestFiles\w3c.log"); var settings = CsvAnalyzer.Analyze(csvData); var data = settings.Parse(csvData); Assert.AreEqual(6, data.Count, "Number of rows incorrect"); }
public void CanParseXml() { Main.Settings.ParseXmlFiles = true; var csvData = File.ReadAllText(@"TestFiles\simple.xml"); var settings = CsvAnalyzer.Analyze(csvData); var data = settings.Parse(csvData); Assert.AreEqual(3, data.Count, "Number of rows incorrect"); }
public void Issue10QuotedCommas() { var data = "\"ControlID\",\"Status\",\"FeatureName\",\"ResourceGroupName\",\"ResourceName\",\"ChildResourceName\",\"ControlSeverity\",\"IsBaselineControl\",\"SupportsAutoFix\",\"Description\",\"Recommendation\",\"DetailedLogFile\"\r\n\"test123\",\"test123\",\"test123\",\"test123\",\"test123\",\"test123\",\"test123\",\"test123\",\"test123\",\"test123\",\"comma goes here, \",\"test123\""; var result = CsvAnalyzer.Analyze(data); Assert.AreEqual(',', result.Separator); Assert.AreEqual('"', result.TextQualifier); }
public void Routine() { var analyzer = new CsvAnalyzer(); analyzer.Path = @"myfile.csv"; analyzer.Separator = ','; var result = analyzer.SelectByColummData(2, "Alberto"); Assert.AreEqual("3,Verdi,Alberto,03/08/1987;", result); }
public void NoResult() { var analyzer = new CsvAnalyzer(); analyzer.Path = @"myfile.csv"; analyzer.Separator = ','; var result = analyzer.SelectByColummData(2, "Enzo"); Assert.AreEqual(string.Empty, result); }
public void Issue10UnquotedStringsWithQuotes() { var data = "artnr, description, cost\n" + "B12332, a 9\" nail, 123.32\n" + "C12322, Screw, 22.1\n"; var result = CsvAnalyzer.Analyze(data); Assert.AreEqual(',', result.Separator); Assert.AreEqual('\0', result.TextQualifier); }
public void AnalyzeTest4() { var analyzer = new CsvAnalyzer(); analyzer.Analyze(TestFiles.GoogleCsv); Assert.IsTrue(analyzer.HasHeaderRow); Assert.AreEqual(',', analyzer.FieldSeparator); Assert.AreEqual(analyzer.Options, CsvOptions.Default); }
public void CanDetectFixedWidth() { var csvData = "header1 header2 header2 and4\n" + "data1 123 12.34 qwfw\n" + "more 00 23 2.34 frfrsd\n" + "data3 111 11.34 vrvvv fvf\n"; var result = CsvAnalyzer.Analyze(csvData); Assert.IsNotNull(result.FieldWidths); Assert.AreEqual(4, result.FieldWidths.Count); }
public void CanParseTabSeparatedWithQuotesInText() { Main.Settings.ParseXmlFiles = true; var csvData = File.ReadAllText(@"TestFiles\TabsWithQuotesInText.csv"); var settings = CsvAnalyzer.Analyze(csvData); settings.UseQuotes = false; var data = settings.Parse(csvData); Assert.AreEqual(6, data.Count, "Number of rows incorrect"); Assert.AreEqual("\"A4\" 210x325mm utskick, v24, h04poo, nära,7st butiker", data[5][3]); }
public void CanFindCommaAsSeparator() { var csvData = "header1,header2,header2\n" + "data1,123,12.34\n" + "data1,123,12.34\n" + "data1,123,12.34\n" + "data1,123,12.34\n" + "data1,123,12.34\n"; var result = CsvAnalyzer.Analyze(csvData); Assert.AreEqual(',', result.Separator); }
public void UnquotedStringsWithQuotesOnEveryRow() { var data = "artnr, description, cost\n" + "B12332, a 9\" nail, 123.32\n" + "C12322, TV 30\", 123.32\n" + "C1222, Samsung 7\", 4000.32\n" + "C3P0, Cyborg 90\", 5.33\n"; var result = CsvAnalyzer.Analyze(data); Assert.AreEqual(',', result.Separator); Assert.AreEqual('\0', result.TextQualifier); }
public void AnalyzeTest3() { var analyzer = new CsvAnalyzer(); analyzer.Analyze(TestFiles.AnalyzerTestCsv); Assert.IsTrue(analyzer.HasHeaderRow); Assert.AreEqual(';', analyzer.FieldSeparator); CollectionAssert.AreEqual(analyzer.ColumnNames, new string[] { "Eins", "eins", "zwei", "drei" }); Assert.IsTrue(analyzer.Options.IsSet(CsvOptions.CaseSensitiveKeys)); Assert.IsTrue(analyzer.Options.IsSet(CsvOptions.TrimColumns)); Assert.IsFalse(analyzer.Options.IsSet(CsvOptions.ThrowOnTooFewFields)); Assert.IsFalse(analyzer.Options.IsSet(CsvOptions.ThrowOnTooMuchFields)); Assert.IsFalse(analyzer.Options.IsSet(CsvOptions.DisableCaching)); Assert.IsFalse(analyzer.Options.IsSet(CsvOptions.ThrowOnEmptyLines)); }
public void CanParseXml() { Main.Settings.ParseXmlFiles = true; var csvData = File.ReadAllText(@"TestFiles\simple.xml"); var settings = CsvAnalyzer.Analyze(csvData); var data = settings.Parse(csvData); Assert.AreEqual(3, data.Count, "Number of rows incorrect"); CollectionAssert.AreEquivalent(new[] { "name", "age", "foo" }, settings.FieldNames); var expectedData = new List <string[]> { new[] { "first", "45", "bar" }, new[] { "second", "46", "bar" }, new[] { "third", "47", "bar" }, }; this.AssertDataEqual(expectedData, data); }
public void CsvAnalyzerTest() { var analyzer = new CsvAnalyzer(); Assert.IsInstanceOfType(analyzer, typeof(CsvAnalyzer)); }
public void FileNotPresent() { var analyzer = new CsvAnalyzer(); analyzer.Path = @"myfileXX.csv"; }
public void AnalyzeTest1() { var analyzer = new CsvAnalyzer(); analyzer.Analyze(null !); }
public void AnalyzeTest2() { var analyzer = new CsvAnalyzer(); analyzer.Analyze(" "); }
public static void TestDeserializingClassesFromCsv() { const string csvFileName = "Objects.csv"; // Create a nonstandard CSV-File File.WriteAllText(csvFileName, new StringBuilder() .AppendLine( "Unterrichtstag;Unterrichtsbeginn;Vollständiger Name;Unterrichtsfach;") .AppendLine( "Wednesday;14:30;Susi Meyer;Piano") .AppendLine( "Thursday;15:15;Carl Czerny;Piano;") .AppendLine( ";;Frederic Chopin") .ToString()); // Initialize a CsvRecordWrapper which retrieves the data from // the CSV-Columns and converts it to the right data type. // Aliases with wildcards can be used to match the column-headers // of the CSV file. var wrapper = new CsvRecordWrapper(); // Reuse a converter for more than one property: ICsvTypeConverter stringConverter = CsvConverterFactory.CreateConverter(CsvTypeCode.String, nullable: true); wrapper.AddProperty ( new CsvProperty("Name", new string[] { "*name" }, stringConverter) ); wrapper.AddProperty ( new CsvProperty("Subject", new string[] { "*subject", "*fach" }, stringConverter) ); wrapper.AddProperty ( new CsvProperty("LessonDay", new string[] { "*day", "*tag" }, CsvConverterFactory .CreateEnumConverter <DayOfWeek>(nullable: true)) ); wrapper.AddProperty ( new CsvProperty("LessonBegin", new string[] { "*begin?" }, CsvConverterFactory .CreateConverter(CsvTypeCode.TimeSpan, nullable: true)) ); // Analyze the CSV file to determine the right parameters // for proper reading: var analyzer = new CsvAnalyzer(); analyzer.Analyze(csvFileName); // Read the CSV file: using var reader = new CsvReader(csvFileName, analyzer.HasHeaderRow, analyzer.Options, analyzer.FieldSeparator); var pupilsList = new List <Pupil>(); foreach (CsvRecord record in reader.Read()) { wrapper.Record = record; // Using a dynamic variable enables you to assign // the properties without having to explicitely cast them // to the target data type: dynamic dynWrapper = wrapper; pupilsList.Add(new Pupil { Name = dynWrapper.Name, LessonBegin = dynWrapper.LessonBegin, LessonDay = dynWrapper.LessonDay, Subject = dynWrapper.Subject }); } // Write the results to Console: foreach (Pupil pupil in pupilsList) { Console.WriteLine(pupil); Console.WriteLine(); } }