2014-09-02 160 views
-3

所以這是我的蹩腳的代碼如何從txt文件讀取二維數組? C#

class begin 
    { 
     public static string[] Reader() 
     { 
      string[] theMap = System.IO.File.ReadAllLines(@"C:\Users\Public\Console Slayer\Map\map.txt"); 
      string[] Map = theMap.Clone() as string[]; 
      return Map; 
     } 
     public static void Printer() 
     { 
      foreach (string line in Reader()) 
      { 
       Console.WriteLine(line); 
      } 

     } 
     static void Main() 
     { 
      Reader(); 
      Printer(); 
     } 
    } 

我想使地圖字符串轉換成二維數組的功能使用。 我是新來編程,我知道我的代碼是壞的。

+0

太棒了!你的問題是什麼?說真的,我們沒有*遠程*足夠的信息來幫助你。 – BradleyDotNET 2014-09-02 18:00:05

+0

如何將Map數組轉換爲二維數組 – nightxx 2014-09-02 18:00:58

+0

您可以提供更多關於您要完成的內容的信息嗎?你的數據是什麼樣的,你爲什麼需要一個2D數組,它的結構應該是什麼樣子? – Jonesopolis 2014-09-02 18:01:10

回答

1

使用

Microsoft.VisualBasic.FileIO.TextFieldParser 

是的,這是一個VB組件,但它的作品嚐試。沒有必要重新發明輪子。樣品用法:

OpenFileDialog od = new OpenFileDialog(); 
     od.Filter = "Tab delimited file (*.txt)|*.txt"; 
     if (od.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
     { 

      using (var reader = new Microsoft.VisualBasic.FileIO.TextFieldParser(od.FileName)) 
      { 
       reader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited; 
       reader.Delimiters = new string[] { "\t" }; // the delimeter of the lines in your file 


       reader.ReadLine(); // skip header if needed, ignore titles 
       while (!reader.EndOfData) 
       { 
        try 
        { 
         var currentRow = reader.ReadFields(); // string array 
         // Include code here to handle the row. 
        } 

        catch (Microsoft.VisualBasic.FileIO.MalformedLineException vex) 
        { 

         MessageBox.Show("Line " + vex.Message + " is invalid. Skipping"); 
        } 
       } 
     } 
     } 
+0

您的嘗試塊沒有右花括號。 – OMGtechy 2014-09-02 18:12:51