Я пытаюсь найти информацию о клиенте, используя идентификационные номера, и просто печатаю строку ID, Название, Имя над строкой inFile.Seek(0, SeekOrigin.Begin);
, затем пропускаю время l oop и возвращаюсь к вводу. идентификатор клиента снова. Приложено изображение того, как это настроено в CSV-файле (фальшивая информация, очевидно :))
![link to image](https://i.stack.imgur.com/RlI5Y.png)
У меня есть ощущение, что я могу использовать inFile.Seek
неправильно или recordIn
не получает правильные данные для работы. Все, что я хочу сделать, это просто найти одну строку информации по номеру ID
и распечатать следующую строку. Вот код:
{
const char DELIM = ',';
const double END = 000;
const string FILENAME = "D:\\customers.csv";
Customer cus = new Customer();
FileStream inFile = new FileStream(FILENAME, FileMode.Open, FileAccess.Read);
StreamReader reader = new StreamReader(inFile);
string recordIn;
string[] fields;
int idNum;
Write(" **Type " + END + " To Quit** Enter Customer ID Number> ");
idNum = Convert.ToInt32(ReadLine());
while (idNum != END)
{
WriteLine("{0,5}{1,10}{2,15}{3,15}{4,15}{5,25}\n", "ID", "Title", "First Name", "Last Name", "Gender", "DOB");
inFile.Seek(0, SeekOrigin.Begin);
recordIn = reader.ReadLine();
while (recordIn != null)
{
string idd = cus.ID.ToString();
string dob = cus.DOB.ToString();
fields = recordIn.Split(DELIM);
idd = fields[0];
cus.Title = fields[1];
cus.FirstName = fields[2];
cus.LastName = fields[3];
cus.Gender = fields[4];
dob = fields[5];
if (cus.ID == idNum)
WriteLine("{0,5}{1,10}{2,15}{3,15}{4,15}{5,25}\n", idd, cus.Title, cus.FirstName, cus.LastName, cus.Gender, dob); ;
recordIn = reader.ReadLine();
}
Write(" **Type " + END + " To Quit** Enter Customer ID Number> ");
idNum = Convert.ToInt32(ReadLine());
}
reader.Close();
inFile.Close();
}
Любая помощь будет оценена :))