C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: [C#,WPF]Csvhelperでcsvの指定列を出力する


(過去ログ 173 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■99680 / inTopicNo.1)  [C#,WPF]Csvhelperでcsvの指定列を出力する
  
□投稿者/ 初心もの (1回)-(2022/05/11(Wed) 17:50:57)

分類:[.NET 全般] 



 [C# WPF visual studio2019]

 お久しぶりに質問させていただきます。
 監視ディレクトリに入ってきたcsvファイルを開き、Csvhelperを使い列を格納して
 consol上にテスト的に出力したいのですが、列すべてを出力せず5列目、10列目,,,
 という風に欲しい情報だけを出力したいのですが、方法として[Index]を使って変数を指定してあげれば
 よいのでしょうか。
 
    //格納クラス
        public class Csv
        {
         public int a { get; set; }
            public int b { get; set; }    //取りたい値
            public int c { get; set; }
            public int d { get; set; }  //取りたい値
              
       ----- 以下省略 -----
        }
   
    //処理スレッド
    private void Worker_DoWork(object sender, DoWorkEventArgs e)
        {
            while (true)
            {
                var files = Directory.GetFiles(directoryPass, "*.csv", SearchOption.AllDirectories);
                foreach (var path in files)
                {
                    var csvFile = Path.GetFullPath(path);
                    try
                    {
                        var config = new CsvConfiguration(CultureInfo.InvariantCulture)
                        {
                            HasHeaderRecord = false,
                            Delimiter = ",",
                            Encoding = Encoding.UTF8,
                        };

                        using (var reader = new StreamReader(csvFile))
                        using (var csv = new CsvHelper.CsvReader(reader, config))
                        {
                            var lll = csv.GetRecords<Csv>();
                            foreach (var x in lll)
                            {
                                Console.WriteLine($"{x.a}/{x.b}/{x.c}/{x.d}/----省略----");
                            }
                        }
                    }
                    catch(Exception ex)
                    {
                        Console.WriteLine(ex);
                    }
                }
                Thread.Sleep(2000);
            }
        }

 宜しくお願いします。

引用返信 編集キー/
■99681 / inTopicNo.2)  Re[1]: [C#,WPF]Csvhelperでcsvの指定列を出力する
□投稿者/ 初心もの (2回)-(2022/05/11(Wed) 17:52:49)

> using (var reader = new StreamReader(csvFile))
> using (var csv = new CsvHelper.CsvReader(reader, config))
> {
> var lll = csv.GetRecords<Csv>();
> foreach (var x in lll)
> {
> Console.WriteLine($"{x.a}/{x.b}/{x.c}/{x.d}/----省略----");
> }
> }

 ここのforeachのところでエラー吐きます
 原因はclass Csvのintかstringかわからないためです
引用返信 編集キー/
■99683 / inTopicNo.3)  Re[2]: [C#,WPF]Csvhelperでcsvの指定列を出力する
□投稿者/ 伝説のカレー (9回)-(2022/05/11(Wed) 20:27:51)
No99681 (初心もの さん) に返信

using (var csv = new CsvHelper.CsvReader(reader, config))
{
  while (csv.Read())
  {
    var a = csv[5];
    var b = csv[10];

    Console.WriteLine($"{a}/{b}/----省略----");
  }
}

これでいんじゃないですかね

引用返信 編集キー/
■99684 / inTopicNo.4)  Re[3]: [C#,WPF]Csvhelperでcsvの指定列を出力する
□投稿者/ 初心もの (3回)-(2022/05/11(Wed) 23:41:33)
No99683 (伝説のカレー さん) に返信
> ■No99681 (初心もの さん) に返信
>
> using (var csv = new CsvHelper.CsvReader(reader, config))
> {
> while (csv.Read())
> {
> var a = csv[5];
> var b = csv[10];
>
> Console.WriteLine($"{a}/{b}/----省略----");
> }
> }
>
> これでいんじゃないですかね

しっかりほしいところだけ取れました...
ありがとうございます!
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -