2015-05-06 6 views
-1

Я хочу читать файлы из внешнего файла данных, вставлять их в массив для импорта в Unity3D. Так что я начал это:Прочитайте значения из файла в многомерном массиве

int [,] positionTab = new int[noLoc,3]; 

StreamReader sr = new StreamReader(myTextFile); 
while((line = sr.ReadLine()) != null)//read line by line up to the end 
{ 
    if (line.Contains("confTrain1")) 
    { 
     locationTrain1 = RetrieveValueInDataFile.locationTrain(line); 
    } 
    else if (line.Contains("confTrain2")) 
    { 
     locationTrain2 = RetrieveValueInDataFile.locationTrain(line); 
    } 
    else 
    { 
     distanceBetweenThem =RetrieveValueInDataFile.distBetweenTrain(line); 
    } 

Интересно иметь что-то вроде:

int [,] locations = new int [noLoc, 3] 
{ 
{locationTrain1, locationTrain2, distanceBetweenThem} 
{locationTrain1, locationTrain2, distanceBetweenThem} 
{etc} 
} 

проблема, я понятия не имею, как это сделать в StreamReader. Я имею в виду, как я могу добавить два местоположения и расстояние (синтаксис)?

ответ

0

Синтаксис синтаксиса можно использовать только при построении массива.

Если вам необходимо установить значение существующего массива (как в вашей выборке) - использовать индексацию:

int [,] locations = new int [noLoc, 3] 
var rowIndex = 0; 
using(StreamReader sr = new StreamReader(myTextFile)) 
{ 
    while(
     rowIndex < noLoc && // if using array you have to read no more than allocated 
     (line = sr.ReadLine()) != null) 
    { 
     locations[rowIndex,0] = locationTrain1; 
     locations[rowIndex,1] = locationTrain2; 
     locations[rowIndex,2] = distanceBetweenThem; 
     rowIndex++; 
    } 
} 

Обратите внимание, что это, вероятно, будет лучше определить класс, который содержит эти значения и хранить их в Перечислите, прочитав их.

+0

Хорошо, я попробую это. Спасибо. – AuroreT

Смежные вопросы