这是我的代码,我试图弄清楚如何从文本文档中读取int值。例如。文本文档:1; Name; Surname; 5,我正在尝试仅读取最后一个数字,但不知道该怎么做。我需要找出一个较短的解决方案,以及一个一般的解决方案。会感激您给我的所有帮助,编程建议以及所有常规内容
struct redualnica
{
public int id;
public string ime;
public string priimek;
public int ocena;
public void vrednost(int d, string z, string m, int p)
{
id = d;
ime = z;
priimek = m;
ocena = p;
}
}
class Program
{
static void Main(string[] args)
{
string datoteka = "ocene.txt";
redualnica[] mojaredualnica = new redualnica[25];
int meni = 0;
do
{
Console.WriteLine("1. - Naloži podatke");
Console.WriteLine("2. - Izpiše vse podatke");
Console.WriteLine("3. - Izpišite določene ocene");
Console.WriteLine("4. - Izhod");
meni = Convert.ToInt32(Console.ReadLine());
switch (meni)
{
case 1:
Nalozi(mojaredualnica, datoteka);
break;
case 2:
Izpis(mojaredualnica);
break;
case 3:
Izpis(doloceneocene);
break;
default:
meni = 0;
break;
}
} while (meni != 0);
}
static void Nalozi(redualnica[] mG, string dat)
{
StreamReader sr = File.OpenText(dat);
string vrstica = sr.ReadLine();
string[] tposameznihpodatkov;
int i = 0;
while (vrstica != null)
{
tposameznihpodatkov = vrstica.Split(';');
mG[i].id = Convert.ToInt32(tposameznihpodatkov[0]);
mG[i].ime = tposameznihpodatkov[1];
mG[i].priimek = tposameznihpodatkov[2];
mG[i].ocena = Convert.ToInt32(tposameznihpodatkov[3]);
vrstica = sr.ReadLine();
i++;
}
sr.Close();
}
static void Izpis(redualnica[] mG)
{
Console.WriteLine("----------------------");
foreach (var x in mG)
{
Console.WriteLine(x.id + " " + x.ime + " " + x.priimek + ", " + x.ocena);
}
Console.WriteLine("----------------------");
}
static void izbira(int a)
{
a = int.Parse(Console.ReadLine());
}
static void dodajdijaka(int b)
{
using (StreamWriter sr = File.AppendAllText(path))
{
string st = "";
sr.WriteLine(st = sr.ReadLine());
}
}
}
我输入了一个id;名字;姓氏;号码 采用这种格式,它只能读写最后一个数字
答案 0 :(得分:0)
我正在查看您的代码,但不清楚!我想提一些建议,也许这可以解决您的代码问题。
我编辑Nalozi方法。我注意到,条件会引发异常。
static void Nalozi(redualnica[] mG, string dat)
{
StreamReader sr = File.OpenText(dat);
string[] tposameznihpodatkov;
int i = 0;
while (sr.EndOfStream && i <= mG.Length)
{
string vrstica = sr.ReadLine();
tposameznihpodatkov = vrstica.Split(';');
mG[i].id = Convert.ToInt32(tposameznihpodatkov[0]);
mG[i].ime = tposameznihpodatkov[1];
mG[i].priimek = tposameznihpodatkov[2];
mG[i].ocena = Convert.ToInt32(tposameznihpodatkov[3]);
vrstica = sr.ReadLine();
i++;
}
sr.Close();
}