簡體   English   中英

將文件中的數據加載並解析到數組中

[英]Loading and parsing data from file into array

我正在嘗試將數據從 DAT 文件加載到數組中。

我的數據由以下格式的多行組成:

param_1::param_2::value

我想讀取這些數據並將其轉換為二維數組(或其他合適的格式),所以我將有:

myData[param_1,param_2]=value

目前我正在嘗試使用 StreamReader 將文件讀入一個字符串數組,但不知道如何將數據從字符串轉換為我需要的格式。

這是我現在正在使用的閱讀部分。 我需要做什么才能正確解析數據?

        StreamReader reader = new StreamReader("file.dat");
        string strAllFile = reader.ReadToEnd().Replace("\r\n", "\n").Replace("\n\r", "\n");
        string[] arrLines = strAllFile.Split(new char[] { '\n' });

謝謝你的幫助!

你可以做這樣的事情,這個Linq語句從文件中的每一行返回param1, param2, value集合。

var dataList = File.ReadAllLines("file.dat") // Read lines
        .Select(l=> l.Split(new string[] { "::" }, StringSplitOptions.None)) // split each line
        .Select(l=> new 
               {
                  param1 = l[0],
                  param2 = l]1],
                  value  = l[2]
               })
        .ToList(); 

現在您可以使用迭代列表

foreach(var item in dataList)
{
    // logic here.
    myData[item.param1,item.param2]=item.value

}

如果已知myData的行數和列數,您可以簡單地編寫您的函數,如下所示:

public void parseString(string[] lines)
{
    int[,] myData = new int[100, 100];
    foreach (string s in lines)
    {
        string[] data = s.Split("::");
        int x = Convert.ToInt32(data[0]);
        int y = Convert.ToInt32(data[1]);
        int value = Convert.ToInt32(data[2]);

        myData[x, y] = value;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM