2015-09-22 23 views
0

我被給了一些簡單的文本文件解析器的代碼,我想建立和修改。它是在VS中構建的,我已經安裝了VS2015社區,以便我可以使用它,但是對於我來說,我無法弄清楚如何在VS2015中進行設置。C# - 如何在VS2015中構建/調試此代碼?

代碼最開始的代碼片段如下。我是否將它構建爲一個類,一個控制檯應用程序或其他東西?我如何修改它以逐行讀取本地文件?

任何幫助將非常感激!

using System; 
using System.Collections.Generic; 
using System.IO; 

public static class Cawk 
{ 
public static IEnumerable<Dictionary<string, object>> Execute(StreamReader input) 
{ 
    Dictionary<string, object> row = new Dictionary<string, object>(); 

    string line; 
    //string[] lines = File.ReadAllLines(path); 

    //read all rows 
    while ((line = input.ReadLine()) != null) 
    { 
+3

那麼你需要一個類,你已經有 - 如果你打算重用在其他項目中該代碼使它成爲一個類庫,並用測試單元測試或控制檯應用。除此之外,還不清楚你卡在哪裏。 –

+0

是你的問題回答? – enkryptor

回答

0

您發佈的片段是類文件定義。

您需要一個名爲Cawk.cs的類,其中包含該代碼。

要運行它,您將需要的東西來調用它,無論是一個控制檯應用程序或一個單元測試就可以了。

對於一個控制檯應用程序:

  • 創建一個新的控制檯應用程序項目。
  • 在裏面添加一個名爲Cawk.cs的新類。在'program.cs'類(在創建控制檯項目時創建)中的
  • 在Main方法內調用Execute方法。

調試它,把一個斷點上線,然後按F5。

0

考慮你從來沒有建立在Visual Studio中的應用程序,最簡單的方法是:

  1. 啓動VS
  2. 創建新項目:文件 - >新建 - >項目
  3. 選擇模板 - > Visual C# - >「控制檯應用程序」
  4. 選擇一個文件夾保存項目,單擊確定。

這將爲您提供一個基本的控制檯應用程序,其中包含一個文件Program.cs,其中包含靜態方法Main()。現在我們來添加新的類。

  • 右鍵單擊解決樹上,選擇添加 - >新項目
  • 選擇 「類」,輸入名稱 「Cawk」,點擊確定。
  • 您將爲Cawk類創建一個新文件「Cawk.cs」。讓我們來填補它。

    1. 將您的片段複製粘貼到Cawk.cs中,覆蓋它的內容。
    2. 更正名稱空間 - 它應該與程序中的相同。CS

    因此,這將成爲類似:

    using System; 
    using System.Collections.Generic; 
    using System.IO; 
    
    namespace ConsoleApplication1 
    { 
    public static class Cawk 
    { 
    ... 
    
  • 現在你可以調用Cawk.Execute()從main()方法的靜態方法。
  • +0

    謝謝@enkryptor!我快到了。按照您的建議構建並從Program.cs調用Cawk.Execute()。只有一個錯誤 - 「沒有給出對應於'Cawk.Execute(StreamReader)'所需的形式參數'輸入'的參數 - 我想它正在尋找輸入文件。我可以給它一個像Cawk .Execute(C:\ temp \ file.txt)? –

    +0

    我已經用另一個帖子回覆了你,如果有幫助,投票不會是件壞事。 – enkryptor

    0

    方法Execute()接受一個StreamReader對象。數據從某種源來的流量 - - 這個對象從字節流數據讀取用戶輸入,文件,其他應用程序等

    爲了通過解析Cawk你需要首先實例StreamReader的文件與proper constructor,然後處置它(請參閱「使用」語句在C#中)。

    讓我爲您提供的代碼示例:

    using (var sr = new StreamReader("C:\temp\file.txt")) 
    { 
        var results = Cawk.Execute(sr); 
        foreach (item in results) 
        { 
         // do something with item which is Dictionary<string, object> 
        } 
    }