Я C# новичок ie, и я пытаюсь создать систему управления клиентами для проекта, в котором я хочу найти клиента по идентификационному номеру, пропустить строку заголовка, а затем распечатать искомую строку на экране. прежде чем пользователь продолжит. Мой CSV-файл настроен так:
[ID] [Заголовок] [Имя] [Фамилия] [Пол] [ДОБ]
[0 ] [Миссис] [Джейн] [Доу] [Женщина] [01.01.1990]
[1] [Мистер] [Джон] [Доу] [Мужчина] [1 / 1/1991]
[2] [Ms] [Сара] [Доу] [Женский] [01.01.2010]
и т. Д. ...
У меня такое ощущение, что я могу использовать inFile.Seek
неправильно или recordIn
не получает правильные данные для работы, потому что он печатает только WriteLine
выше inFile.Seek(0, SeekOrigin.Begin);
Я отформатировал код и поместил туда все, что вам нужно, чтобы его было легче отлаживать:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
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);
reader.ReadLine();
recordIn = reader.ReadLine();
while (recordIn != null)
{
fields = recordIn.Split(DELIM);
cus.ID = Convert.ToInt32(fields[0]);
cus.Title = fields[1];
cus.FirstName = fields[2];
cus.LastName = fields[3];
cus.Gender = fields[4];
cus.DOB = fields[5];
if (cus.ID == idNum)
WriteLine("{0,5}{1,10}{2,15}{3,15}{4,15}{5,25}\n", cus.ID, cus.Title, cus.FirstName, cus.LastName, cus.Gender, cus.DOB);
recordIn = reader.ReadLine();
}
Console.Write(" **Type " + END + " To Quit** Enter Customer ID Number> ");
idNum = Convert.ToInt32(ReadLine());
}
reader.Close();
inFile.Close();
}
public class Customer
{
public int idNum { get; set; }
public string Title { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Gender { get; set; }
public DateTime DOB { get; set; }
}
}
}
Любая помощь будет оценена :))