2013-04-20 43 views
0

如何從文件輸入整數到vector3或int變量? 這是我的代碼僅用於字符串從文件讀取整數到int變量或Vector3

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

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

哪有你的代碼只爲'string'行'int line =「」不應該編譯.. – MethodMan 2013-04-20 21:09:28

回答

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-可解析到列表中解析INT值

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]); 
     } 
    } 
}