从文件读取整数到int变量或Vector3

时间:2013-04-20 20:58:14

标签: c# file-io input xna

如何将文件中的整数输入到vector3或int变量中? 这是我的代码,只适用于字符串

using (var enviromentPos = new FileStream("enviromentPos.txt", FileMode.OpenOrCreate))
{
  using(var input = new StreamReader(enviromentPos))
  {
    int line = "";

    while ((line = input.ReadLine()) != null)
    {
    }
  }
}

2 个答案:

答案 0 :(得分:0)

String line="";
List<int> foo = new List<int>()    
while ((line = input.ReadLine()) != null)
{
    int i=0;
    if(int.TryParse(line,out i)) foo.Add(i);
}

将逐行读取并将包含int-parseable内容的所有行添加到列表中作为已解析的int值

答案 1 :(得分:0)

获得读取输入的代码后:

String line = null;
var input = new List<int>();
while ((line = file.ReadLine()) != null)
{
    int i = 0;
    if( int.TryParse(line,out i))
    {
       input.Add(i);
    }
}

您可以随后处理列表:

var vectors = new List<Vector3>();
for (int index = 0; index < input.Count; index += 3)
{
    vectors.Add(new Vector3(input[index], input[index+1], input[index+2]);
}

您需要通过截断或填充输入来确保输入是三的倍数。

或者你可以在阅读时处理输入,但是你需要一个计数器,这样你就可以从文件中读取每三个值vectors.Add代码:

String line = null;
var input = new List<int>();
int count = 0;
var vectors = new List<Vector3>();
while ((line = file.ReadLine()) != null)
{
    int i = 0;
    if( int.TryParse(line,out i))
    {
       input.Add(i);
       count++;
       if (count % 3 == 0)
       {
          vectors.Add(new Vector3(input[count-2], input[count-1], input[count]);
       }
    }
}