У меня такой класс:
public class Student
{
private int[] note;//vector de note
private DateTime dataInrolarii;
private int nrRestante;
private readonly int nrMatricol;
private const string sex = "feminin"
public static int anStudiu = 3;
public Student(string cnp, string nume, int nrMatricol, DateTime dataInrolarii, int nrRestante, int[] note) : base(cnp, nume)
{
this.nrMatricol = nrMatricol;
this.dataInrolarii = Convert.ToDateTime(dataInrolarii);
this.nrRestante = nrRestante;
this.note = new int[note.Length];
for (int i = 0; i < note.Length; i++)
this.note[i] = note[i];
}
}
Конечно, у меня есть геттеры, сеттеры, перегружены toString () и многое другое. У меня есть текстовый файл с этим объектом:
2920118080023, George, 2, 12/09/2016, 4, 10 3 4
и я хочу читать из файла и отображать в текстовом поле «Студенты из файла». но я действительно не знаю, как это сделать с векторной записью.
Вот что я написал:
private void button_CitireTXT_Click(object sender, EventArgs e)
{
StreamReader sr = new StreamReader("citiretxt.txt");
string linie = null;
while ((linie = sr.ReadLine()) != null)
{
try
{//oricare ar fi tipul unui atribut citit din fisier, ele sunt STRING acolo
string cnp = linie.Trim().Split(',')[0];
string nume = linie.Trim().Split(',')[1];
int nrmat = Convert.ToInt32(linie.Trim().Split(',')[2]);
string datainrolString = linie.Trim().Split(',')[3];
DateTime datainrol = DateTime.Parse(datainrolString);
int nrRest = Convert.ToInt32(linie.Trim().Split(',')[4]);
string noteString = linie.Split(' ')[5];
for(int i=0;i< noteString.Length;i++)
{
noteString[i] = Convert.ToInt32(noteString[i]);
string[] notesString
}
Student s = new Student(cnp, nume, nrmat, datainrol, nrRest, note);
tb_CitireDinTxt.Text += s.ToString() + Environment.NewLine;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
Как прочитать векторную записку из файла? Спасибо
ОБНОВИТЬ:
private void button_CitireTXT_Click (отправитель объекта, EventArgs e) {
StreamReader sr = new StreamReader("citiretxt.txt");
string linie = null;
while ((linie = sr.ReadLine()) != null)
{
try
{
string cnp = linie.Trim().Split(',')[0];
string nume = linie.Trim().Split(',')[1];
int nrmat = Int32.Parse(linie.Trim().Split(',')[2]);
string datainrolString = linie.Trim().Split(',')[3];
DateTime datainrol = DateTime.Parse(datainrolString);
int nrRest = Int32.Parse(linie.Trim().Split(',')[4]);
int[] notes = Array.ConvertAll(linie.Split(',')[5].Split(' '), int.Parse);
Student s1 = new Student(cnp, nume, nrmat, datainrol, nrRest, notes);
tb_CitireDinTxt.Text += s1.ToString() + Environment.NewLine;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
@Prasadtelkikar да, это сработало. Я тоже кое-что изменил. Я сделаю обновление





Написание ответа с учетом, Vector (из C++) -> List (в C#).
Если ниже указано содержимое вашего файла,
2920118080023, George, 2, 12/09/2016, 4, 10 3 4
Разделить на ,. Тогда ваша строка с 5-м индексом будет содержать 10 3 4. Теперь, чтобы преобразовать его в массив целых чисел, используйте Array.ConvertAll(), или вы также можете преобразовать его в список.
Попробуйте приведенный ниже код
//Converting into int array
int[] notes = Array.ConvertAll(linie.Split(',')[5].Split(' '), int.Parse)
//Converting into List<int>
List<int> notes= Array.ConvertAll(linie.Split(',')[5].Split(' '), int.Parse).ToList()
Вместо
string noteString = linie.Split(' ')[5];
for(int i=0;i< noteString.Length;i++)
{
noteString[i] = Convert.ToInt32(noteString[i]);
string[] notesString
}
ты проверил мой ответ? Это полезно?