コード例 #1
0
    public void TestCsvParser()
    {
        var text   = "ab,cd,\"efg,\t\",56789,!!!\nhijk,l,mn,43210";
        var parser = new CsvParser(text);
        var col    = parser.ToList();

        Assert.AreEqual(2, col.Count);
        Assert.AreEqual(5, col[0].Count);
        Assert.AreEqual("ab", col[0][0]);
        Assert.AreEqual("cd", col[0][1]);
        Assert.AreEqual("efg,\t", col[0][2]);
        Assert.AreEqual("56789", col[0][3]);
        Assert.AreEqual("!!!", col[0][4]);
        Assert.AreEqual(4, col[1].Count);
        Assert.AreEqual("hijk", col[1][0]);
        Assert.AreEqual("l", col[1][1]);
        Assert.AreEqual("mn", col[1][2]);
        Assert.AreEqual("43210", col[1][3]);

        var models = parser.ConvertTo <JsonModel>(new[] { "A", "B", "C", "Num" }).ToList();

        Assert.AreEqual(2, models.Count);
        Assert.AreEqual("ab", models[0].A);
        Assert.AreEqual("cd", models[0].B);
        Assert.AreEqual("efg,\t", models[0].C);
        Assert.AreEqual(56789, models[0].Num);
        Assert.AreEqual("hijk", models[1].A);
        Assert.AreEqual("l", models[1].B);
        Assert.AreEqual("mn", models[1].C);
        Assert.AreEqual(43210, models[1].Num);

        var jsons = parser.ConvertTo <JsonObjectNode>(new[] { "A", "B", "C", "Num" }).ToList();

        Assert.AreEqual(2, jsons.Count);
        Assert.AreEqual("ab", jsons[0].TryGetStringValue("A"));
        Assert.AreEqual("cd", jsons[0].TryGetStringValue("B"));
        Assert.AreEqual("efg,\t", jsons[0].TryGetStringValue("C"));
        Assert.AreEqual(56789, jsons[0].TryGetInt32Value("Num"));
        Assert.AreEqual("hijk", jsons[1].TryGetStringValue("A"));
        Assert.AreEqual("l", jsons[1].TryGetStringValue("B"));
        Assert.AreEqual("mn", jsons[1].TryGetStringValue("C"));
        Assert.AreEqual(43210, jsons[1].TryGetInt32Value("Num"));

        using var stream = IO.CharsReader.ToStream(text, Encoding.UTF8);
        parser           = new CsvParser(stream);
        col = parser.ToList();

        Assert.AreEqual(2, col.Count);
        Assert.AreEqual(5, col[0].Count);
        Assert.AreEqual("ab", col[0][0]);
        Assert.AreEqual("cd", col[0][1]);
        Assert.AreEqual("efg,\t", col[0][2]);
        Assert.AreEqual("56789", col[0][3]);
        Assert.AreEqual("!!!", col[0][4]);
        Assert.AreEqual(4, col[1].Count);
        Assert.AreEqual("hijk", col[1][0]);
        Assert.AreEqual("l", col[1][1]);
        Assert.AreEqual("mn", col[1][2]);
        Assert.AreEqual("43210", col[1][3]);
    }
コード例 #2
0
ファイル: CsvVerb.cs プロジェクト: nuscien/trivial
    protected override async Task OnProcessAsync(CancellationToken cancellationToken)
    {
        var text   = "ab,cd,\"efg\",56789,!!!\nhijk,l,mn,43210";
        var parser = new CsvParser(text);

        await RunAsync(null, cancellationToken);

        foreach (var line in parser)
        {
            Console.Write(line.Count.ToString());
            Console.WriteLine(" \t{0} \t{1} \t{2} \t{3}", line[0], line[1], line[2], line[3]);
        }

        foreach (var m in parser.ConvertTo <CsvModel>(new[] { "A", "B", "C", "Num" }))
        {
            Console.WriteLine("Model \t{0} \t{1} \t{2} \t{3}", m.A, m.B, m.C, m.Num);
        }

        var reader = new StringTableDataReader(parser, new[] { "o", "p", "q", "i" });

        while (reader.Read())
        {
            Console.Write(reader.FieldCount.ToString());
            Console.WriteLine(" \t{0} \t{1} \t{2} \t{3}", reader.GetString(0), reader.GetString(1), reader.GetString(2), reader.GetInt32(3));
        }
    }
コード例 #3
0
        public override void Process()
        {
            var text   = "ab,cd,\"efg\",56789,!!!\nhijk,l,mn,43210";
            var parser = new CsvParser(text);

            foreach (var line in parser)
            {
                ConsoleLine.Write(ConsoleColor.Blue, line.Count.ToString());
                ConsoleLine.WriteLine(" \t{0} \t{1} \t{2} \t{3}", line[0], line[1], line[2], line[3]);
            }

            foreach (var m in parser.ConvertTo <CsvModel>(new[] { "A", "B", "C", "Num" }))
            {
                ConsoleLine.WriteLine("Model \t{0} \t{1} \t{2} \t{3}", m.A, m.B, m.C, m.Num);
            }

            var reader = new StringTableDataReader(parser, new[] { "o", "p", "q", "i" });

            while (reader.Read())
            {
                ConsoleLine.Write(ConsoleColor.Blue, reader.FieldCount.ToString());
                ConsoleLine.WriteLine(" \t{0} \t{1} \t{2} \t{3}", reader.GetString(0), reader.GetString(1), reader.GetString(2), reader.GetInt32(3));
            }
        }