2016-08-09 4 views
0

解決策(C#)にCSVファイルを正常にインポートし、ファイルにいくつかの変更を実装しました。私はコンソールアプリケーションプログラムを実行するときに変更を見ることができます。しかし、私はコンソールアプリケーションプログラムの外で新しい更新されたファイルを表示する方法を知らない。私は、更新されたファイルをエクスポートして、データをExcelおよび表示したり、CSVファイルをテキストファイルに変換したりすることが望ましいです。変更を表示するためにCSVファイルのC#プログラムをテキストファイルにエクスポートする方法

どのようにこのプロセスを実行するかに関するご意見をお寄せください。

class Program 
{ 

    static void Main(string[] args) 
    { 
     var filePath = Path.Combine(Directory.GetCurrentDirectory(), "InventoryReport 02_08_2016.csv"); 
     var fileContents = ReadFile(filePath); 
     foreach (var line in fileContents) 
     { 
      Console.WriteLine(line); 
     } 

     Console.WriteLine("Press any key to exit..."); 
     Console.ReadKey(); 
    } 

    public static IList<string> ReadFile(string fileName) 
    { 
     var results = new List<string>(); 

     var lines = File.ReadAllLines(fileName); 
     for (var i = 0; i < lines.Length; i++) 
     { 
      // Skip the line with column names 
      if (i == 0) 
      { 
       continue; 
      } 

      // Splitting by space. I assume this is the pattern 
      var replace = lines[i].Replace(' ', ','); 

      results.Add(replace); 
     } 

     return results; 
    } 
} 
+0

どのようにファイルをプログラムにロードしていますか?それは単にテキストですか?いくつかのコードを表示する! – MichaelThePotato

+0

私はいくつかのコードで私の質問を更新しました。 – user5813072

+0

File.WriteAllTextまたはFile.WriteAllLinesを単純に使用しない理由は何ですか? – MichaelThePotato

答えて

0

csvを解析することは、簡単な作業です。たとえば、文字列内の引用符を引用すると考えてください。いくつかの図書館がありますが、これらは非常にうまく機能しません。

http://msdn.microsoft.com/en-us/library/aa302293.aspx クリス・ラヴェット、ソフトウェアアーキテクト、WEBDATAチーム、(2004年2月改訂)マイクロソフトコーポレーション 2002年3月 ダウンロード:https://xmlcsvreader.codeplex.com/歴史:2013年1月12日

は新しいCSVを作成するには、あなたに例を探してくださいcsvの構造全体を自分でコードする必要があります。たとえば、いくつかの一般的なフィールドをフォーマットする方法を次に示します。

/// <summary> 
    /// Convert the string to a CSV field, 
    /// enclosed in quotes to protect comma's in the field, 
    /// with the quotes in the field escaped, 
    /// and the separation value added 
    /// </summary> 
    /// <param name="Field"></param> 
    /// <returns></returns> 
    public static string CsvField(string Field) 
    { 
     //const string CsvDelim = ","; 
     const string Quote = "\""; 
     const string Quotes2 = "\"\""; 
     string F = ""; 
     if (Field != null) 
     { 
      Field = CsvProcessNewline(Field); 
      F = string.Format("{0}{1}{0}", Quote, Field.Replace(Quote, Quotes2)); 
     } 
     return F; 
    } 

    /// <summary> 
    /// Convert the number to a CSV field, 
    /// enclosed in quotes to protect comma's in the field, 
    /// with the quotes in the field escaped, 
    /// and the separation value added 
    /// </summary> 
    /// <param name="Field"></param> 
    /// <returns></returns> 
    public static string CsvField(int Field) 
    { 
     return CsvField(string.Format("{0}", Field)); 
    } 

    /// <summary> 
    /// Convert the date to a CSV field 
    /// </summary> 
    /// <param name="Field"></param> 
    /// <returns></returns> 
    public static string CsvField_Date(DateTime Field) 
    { 
     return CsvField(string.Format("{0:yyyy-MM-ddTHH:mm:ss}", Field)); 
    } 

    /// <summary> 
    /// Newlines in a quoted CSV text field should not be a problem, 
    /// but some systems can only handle this if CR+LF is replaced by CR or LF. 
    /// </summary> 
    /// <param name="Field"></param> 
    /// <returns></returns> 
    public static string CsvProcessNewline(string Field) 
    { 
     const string NL = "\n"; 
     //const string CR = "\r"; 
     const string CRNL = "\r\n"; 
     const string NLCR = "\n\r"; 
     Field = Field.Replace(CRNL, NL); 
     Field = Field.Replace(NLCR, NL); 
     return Field; 
    } 
関連する問題