2010-12-02 131 views
1

我有一個包含48行整數的CSV文件。我使用visual c#的openfiledialog功能來允許用戶選擇這個文件。然後我想讓程序將該文件截斷爲24行。是否有一個截斷函數可以用來輕鬆地完成這項工作?如果不是,我該怎麼做呢?下面是我迄今爲止...C#截斷CSV文件#

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.IO; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace sts_converter 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void select_Click(object sender, EventArgs e) 
     { 
      int size = -1; 
      DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog. 
      if (result == DialogResult.OK) // Test result. 
      { 
       string file = openFileDialog1.FileName; 
       try 
       { 
        string text = File.ReadAllText(file); 
        size = text.Length; 
       } 
       catch (IOException) 
       { 
       } 
      } 
      Console.WriteLine(size); // <-- Shows file size in debugging mode. 
      Console.WriteLine(result); // <-- For debugging use only. 
     } 

    } 
} 
+0

+1好問題,因爲我發現/獲悉,爲Linq的`Take`方法的使用。 – 2010-12-02 18:27:06

回答

1
  • 呼叫ReadAllLines獲得48個字符串數組
  • 創建的24串
  • 使用Array.Copy一個新的陣列複製你想要的字符串
  • 呼叫WriteAllLines到新數組寫入文件

(你也可以使用LINQ的Take法)

+0

+1這是我自己會經歷的算法。 – 2010-12-02 18:23:49

5

這可能是一樣容易:

string file = openFileDialog1.FileName; 
File.WriteAllLines(
    file, 
    File.ReadLines(file).Take(28).ToArray() 
); 
+1

+1它幾乎與1,2,3一樣簡單! = P – 2010-12-02 18:26:24