61 lines
1.3 KiB
C#
61 lines
1.3 KiB
C#
using UnityEngine;
|
|
using System.Collections;
|
|
|
|
public class TwoDA : Object {
|
|
|
|
public TwoDA(string filepath) {
|
|
|
|
// Read the file and display it line by line.
|
|
System.IO.StreamReader file = new System.IO.StreamReader(filepath);
|
|
|
|
string line = file.ReadLine();
|
|
m_header = line.Split();
|
|
int nCols = m_header.Length;
|
|
|
|
m_data = new string[100, nCols-1];//TODO: make this array dynamic instead of 100
|
|
|
|
int nFileLine = 1;
|
|
while((line = file.ReadLine()) != null)
|
|
{
|
|
Debug.Log(line);
|
|
if(line[0] != '#'){//Ignore commented lines
|
|
string[] linedata = line.Split();
|
|
if(linedata.Length == nCols){
|
|
int nLine = int.Parse(linedata[0]);
|
|
|
|
for(int i=0 ; i<nCols-1 ; i++){
|
|
m_data[nLine, i] = linedata[i+1];
|
|
}
|
|
}
|
|
else
|
|
Debug.LogWarning(filepath+":"+nFileLine.ToString()+" ignored. Found "+linedata.Length.ToString()+" columns instead of "+nCols.ToString());
|
|
|
|
}
|
|
|
|
nFileLine++;
|
|
}
|
|
|
|
file.Close();
|
|
}
|
|
|
|
public override string ToString(){
|
|
string sMsg = "";
|
|
foreach(string s in m_header){
|
|
sMsg += s+"\t";
|
|
}
|
|
sMsg += "\n";
|
|
for(int line=0 ; line<m_data.GetLength(0) ; line++){
|
|
sMsg += line.ToString() + "\t";
|
|
for(int col=0 ; col<m_data.GetLength(1) ; col++){
|
|
sMsg += m_data[line, col]+"\t";
|
|
}
|
|
sMsg += "\n";
|
|
}
|
|
return sMsg;
|
|
}
|
|
|
|
|
|
private string[] m_header;
|
|
private string[,] m_data;
|
|
}
|