نمونه سورس کد سی شارپ کار با فایل CSV برای سیستم مدیریت رتبه‌بندی


---
در این مقاله، قصد دارم به طور کامل و جامع درباره نمونه سورس کد سی شارپ برای کار کردن با فایل‌های CSV، مخصوصاً در زمینه سیستم مدیریت رتبه‌بندی، توضیح دهم. این موضوع نه تنها در برنامه‌نویسی کاربردی مهم است، بلکه در توسعه برنامه‌های مدیریت داده‌ها و تحلیل‌های آماری نیز بسیار مفید می‌باشد. بنابراین، ابتدا باید مفاهیم پایه و ساختارهای مورد نیاز در این پروژه را بررسی کنیم، سپس به نحوه پیاده‌سازی و نمونه کد عملی بپردازیم.

مقدمه‌ای بر فایل‌های CSV و اهمیت آنها




در دنیای برنامه‌نویسی، فایل‌های CSV (Comma-Separated Values) یکی از محبوب‌ترین فرمت‌های ذخیره‌سازی داده‌ها به شمار می‌آیند. این فایل‌ها، ساختاری ساده دارند و به راحتی توسط برنامه‌های مختلف، از جمله اکسل، پایگاه‌های داده، و برنامه‌های سفارشی قابل خواندن و نوشتن هستند. در سیستم‌های مدیریت رتبه‌بندی، فایل‌های CSV می‌توانند برای ذخیره نمرات، رتبه‌ها، و اطلاعات مربوط به کاربران و تیم‌ها بسیار مفید باشند.

ساختار و طراحی سیستم مدیریت رتبه‌بندی




سیستم مدیریت رتبه‌بندی، به طور معمول، شامل اطلاعات مختلفی است، از جمله:

- شناسه کاربر یا تیم

- نام یا عنوان

- امتیاز یا نمره

- رتبه‌بندی کلی

- تاریخ ثبت نمره یا رتبه
در این پروژه، هدف این است که بتوانیم این داده‌ها را از فایل CSV بارگذاری کنیم، تغییرات لازم را اعمال کنیم، و در صورت نیاز، آنها را مجدداً در فایل ذخیره کنیم. همچنین، باید قابلیت افزودن، ویرایش و حذف داده‌ها را داشته باشیم.

پیاده‌سازی با زبان سی‌شارپ




در زبان سی‌شارپ، برای کار کردن با فایل‌های CSV، چند روش مختلف وجود دارد، اما بهترین و ساده‌ترین آنها استفاده از کلاس‌های داخلی مانند `StreamReader` و `StreamWriter` است. همچنین، می‌توان از کتابخانه‌های شخص ثالث مانند CsvHelper بهره برد، اما در اینجا، ترجیح می‌دهیم نمونه‌ای ساده و قابل فهم را بدون استفاده از کتابخانه‌های خارجی ارائه دهیم.

مرحله اول: خواندن داده‌ها از فایل CSV




برای خواندن فایل، باید از `StreamReader` استفاده کنیم. داده‌های خوانده شده، خط به خط، باید تجزیه شوند و در ساختارهای داده‌ای مناسب مانند لیست‌ها یا آرایه‌ها قرار گیرند. فرض می‌کنیم، هر خط شامل اطلاعات کاربر است که با کاما جدا شده است.
csharp  

public List<RankItem> ReadCsv(string filePath)

{

var list = new List<RankItem>();

using (var reader = new StreamReader(filePath))

{

string line;

while ((line = reader.ReadLine()) != null)

{

var values = line.Split(',');

var item = new RankItem

{

Id = int.Parse(values[0]),

Name = values[1],

Score = double.Parse(values[2]),

Rank = int.Parse(values[3])

};

list.Add(item);

}

}

return list;

}


در این قسمت، هر خط، پس از جدا کردن با کاما، به عنوان یک شیء `RankItem` ذخیره می‌شود. این نوع ساختار، امکان مدیریت راحت‌تر داده‌ها را فراهم می‌کند.

مرحله دوم: نوشتن داده‌ها در فایل CSV




برای ثبت تغییرات یا افزودن رکوردهای جدید، باید داده‌ها را دوباره در فایل بنویسیم. این کار با `StreamWriter` انجام می‌شود.
csharp  

public void WriteCsv(string filePath, List<RankItem> items)

{

using (var writer = new StreamWriter(filePath))

{

... ← ادامه مطلب در magicfile.ir