我有一个文本文件data.txt,上面有这些数据:
5 5
1 2 N
LMLMLMLMM
3 3 E
MMRMMRMRRM
我的应用程序可以从文件中读取数据:
System.IO.StreamReader = dataFile = new System.IO.StreamReader("C\\data.txt");
string myData = dataFile.ReadToEnd();
我可以拆分字符串:
Array splitString = myData.Split(' ');
现在我想在我的程序中使用splitted字符串作为值,如下所示:
Grid viewGrid = new Grid(Coordinates(5,5));
viewGrid.AddToCollection(new Rov(1,2,'N',"LMLMLMLMM"));
viewGrid.AddToCollection(new Rov(3,3,'E',"MMRMMRMRRM"));
答案 0 :(得分:2)
我会选择像
这样的东西List<string> Data = System.IO.File.ReadAllLines(filename);
string[] coordLine = Data[0].Split(' ');
Grid viewGrid = new Grid(Coordinates(int.Parse(coordLine [0]), int.Parse(coordLine [1]));
for (int i = 1; i < Data.Count / 2; i++)
{
string[] line1 = Data[2 * i - 1].Split(' ');
string line2 = Data[2 * i];
viewGrid.AddToCollection(new Rov(Int32.Parse(line1[0]), Int32.Parse(line1[1]), line1[2], line2));
}
这可行或任何奇数行(对象的坐标和对的一行)。
答案 1 :(得分:1)
如果您的文本文件始终采用相同的格式,您可以轻松使用字符串数组并硬编码显示元素的顺序。要将字符串转换为数字,您可以使用Int32.Parse('1')
。
Grid viewGrid = new Grid(Coordinates(Int32.Parse(splitString[0]), Int32.Parse(splitString[1])));
viewGrid.AddToCollection(new Rov(Int32.Parse(splitString[2]), Int32.Parse(splitString[3]), splitString[4], splitString[5]));
viewGrid.AddToCollection(new Rov(Int32.Parse(splitString[6]), Int32.Parse(splitString[7]), splitString[8], splitString[9]));
答案 2 :(得分:1)
Grid viewGrid = new Grid(Coordinates(int.Parse(splitString[0]), int.Parse(splitString[1])));
viewGrid.AddToCollection(new Row(int.Parse(splitString[2]), int.Parse(splitString[3]),splitString[4],splitString[5]));
viewGrid.AddToCollection(new Row(int.Parse(splitString[6]), int.Parse(splitString[7]),splitString[8],splitString[9]));
答案 3 :(得分:1)
Array splitString = myData.Split('\n');
Array cords = splitString[0].ToString().Split(' ');
int cordX = Convert.ToInt32(cords[0]);
int cordY = Convert.ToInt32(cords[1]);
Grid viewGrid = new Grid(Coordinates(cordX, cordY));
for (int i = 1; i < splitString.Length; i++)
{
Array nxtSplit = splitString[i].ToString().Split(' ');
int x = int.Parse(nxtSplit[0]);
int y = int.Parse(nxtSplit[1]);
char c = Convert.ToChar(nxtSplit[2]);
i++;
string s = splitString[i].ToString();
viewGrid.AddToCollection(new Rov(x, y, c, s));
}