Я пытаюсь получить строку целых чисел из текстового файла и разобрать их в отдельные переменные. Текстовый файл настроен так:
ID: HP: MP: STR: WIS: СПД: GOLD: XP
0: 100: 50: 10: 5: 12: 5: 10
Я хочу разделить их символом: между каждым. Одна из проблем, с которыми я сталкиваюсь, - это возможность прочитать файл построчно как строки, проанализировать их, а затем сохранить проанализированные строки как целые. Вот код, который я пытаюсь использовать до сих пор:
class monster
{
string line;
string[] mstats;
string[] mname;
char[] delimeterChars = {':'};
int id;
int i = -1;
int j = 0;
int hp;
int mp;
int str;
int wis;
int spd;
int gold;
int xp;
public monster(int id)
{
StreamReader stats = new StreamReader("monsterStats.txt");
while(i != id)
{
i++;
line = stats.ReadLine();
mstats = line.Split(delimeterChars);
j = 0;
foreach(string s in mstats)
{
if (j == 0) id = int.Parse(s);
else if (j == 1) hp = int.Parse(s);
else if (j == 2) mp = int.Parse(s);
else if (j == 3) str = int.Parse(s);
else if (j == 4) wis = int.Parse(s);
else if (j == 5) spd = int.Parse(s);
else if (j == 6) gold = int.Parse(s);
else if (j == 7) xp = int.Parse(s);
j++;
}
}
curHp = hp;
curMp = mp;
curSpd = spd;
curStr = str;
curWis = wis;
}
}
При выполнении этого кода я получаю следующую ошибку:
Входная строка была в неправильном формате.
Он ссылается на эту часть кода:
if (j == 0) id = int.Parse(s);