2016-07-27 12 views
-1

私はC言語でCSVファイルを処理する最善の方法をFilehelpersと言っていました。しかし、私は探し続けており、CSVファイルを追加する方法については包括的なガイドを見つけることができません。私はこのクラスを持っています:filehelpersを使用してCSVファイルにデータを保存する方法は?

class FlashCard 
{ 
    public static string Front { get; private set; } 
    public static string Back { get; private set; } 
    public static Difficulty CardDifficulty { get; private set; } 
    public enum Difficulty 
    { 
     easy, 
     medium, 
     hard, 
     very 
    } 
    public void Flashcard(string front, string back, Difficulty Difficulty) 
    { 
     Front = front; 
     Back = back; 
     CardDifficulty = Difficulty; 
    } 


} 

そして、そのインスタンスをCSVファイルに保存したいと思います。しかしどうですか?

+0

Linq2Csvライブラリを使用できます。これには、csvファイルを処理するための包括的な機能のリストがあります。 http://www.codeproject.com/Articles/25133/LINQ-to-CSV-library – Maverick

+0

csvスキーマ/標準に従って手作業でcsv形式を作成することも、あなたのためにできるライブラリ/フレームワークを使用することもできます。これを行うライブラリをオンラインで検索することができます。 CsvHelperは私が知っているものです。 – Nkosi

答えて

1

あなたはすでにcsvファイルを持っていなければなりません。このファイルをFlashCardsなどのエンティティに簡単に変換できます。

はFileHelpersを使用して、クラスからCSVファイル、マップを書き込むには、属性を使用してクラスをマークする必要がまず第一に[DelimitedRecord(「」)]

0

クイックスタートにhttp://www.filehelpers.net/quickstart/

を見てくださいあなたのクラスをCSVファイルを記述する 'spec'クラスに変換します。このようなもの。

[DelimitedRecord(",")] 
public class FlashCardCsvRow 
{ 
    public string Front; 
    public string Back; 
    public string CardDifficulty; 
} 

var flashcards = new List<FlashCard>(); // your class above 
// populate flashcards however you like 

var csvRows = flashCards.Select(x => 
    new FlashCardCsvRow() 
    { 
     Front = x.Front, 
     Back = x.Back, 
     CardDifficulty = x.CardDifficulty.ToString(); 
    }); 

var engine = new FileHelperEngine<FlashCardCsvRow>(); 
engine.WriteFile("Output.Txt", csvRows); 

FileHelpersにはさらに役立つたくさんの機能があります。たとえば、x.CardDifficulty.ToString()の代わりにyour own enum converterを実装することができます。

ところで、あなたはFlashCardであなたのstatic性質とトラブルに実行されます。これらのプロパティを静的にすることを意図しているかどうかはわかりません。

関連する問題