استخراج فایل CSV در سی شارپ
سیستم مدیریت رتبهبندی بر اساس فایلهای CSV در زبان برنامهنویسی سیشارپ
در دنیای امروز، بسیاری از نرمافزارها و سیستمها نیازمند مدیریت دادههای بزرگ و پیچیده هستند. یکی از روشهای رایج برای ذخیره و نگهداری دادهها، استفاده از فایلهای CSV است. فایلهای CSV یا Comma-Separated Values، فایلهایی هستند که دادهها را به صورت جدولی و جدا شده با کاما ذخیره میکنند و بهراحتی قابل خواندن و ویرایش هستند. در این مقاله، قصد داریم نمونهسورسکدی در زبان سیشارپ ارائه دهیم که بتواند با فایلهای CSV کار کند و سیستم مدیریت رتبهبندی مبتنی بر این نوع فایلها را پیادهسازی کند.
ایجاد ساختار دادهای برای مدیریت رتبهبندی
قبل از هر چیز، نیاز است که ساختار دادهای مناسبی برای ذخیره اطلاعات افراد یا اشخاص در سیستم طراحی کنیم. بهطور معمول، هر فرد یا کاربر در سیستم، چندین ویژگی دارد: نام، شماره شناسایی، امتیاز، و رتبه. بنابراین، میتوانیم یک کلاس به نام `User` تعریف کنیم که این ویژگیها را در بر گیرد.
csharp
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public double Score { get; set; }
public int Rank { get; set; }
}
در این ساختار، `Id` شماره منحصر به فرد هر کاربر است، `Name` نام، `Score` امتیاز کسب شده، و `Rank` رتبه کاربر در سیستم است.
نحوه خواندن و نوشتن فایل CSV
کار با فایلهای CSV در سیشارپ، میتواند با استفاده از کلاسهای استاندارد مانند `StreamReader` و `StreamWriter` انجام شود، ولی برای سادهتر کردن کار، معمولاً از کتابخانههای جانبی مانند `CsvHelper` استفاده میشود. اما در اینجا، برای سادگی و نشان دادن مفهوم، از روشهای پایهای استفاده میکنیم.
*خواندن فایل CSV:*
برای خواندن فایل CSV، باید فایل موجود را باز کنیم، هر خط را بخوانیم، و اطلاعات هر خط را تجزیه کنیم. فرض بر این است که هدر فایل در خط اول قرار دارد.
csharp
public static List<User> ReadCsv(string filePath)
{
var users = new List<User>();
using (var reader = new StreamReader(filePath))
{
string line;
bool isFirstLine = true;
while ((line = reader.ReadLine()) != null)
{
if (isFirstLine)
{
isFirstLine = false; // رد کردن هدر
continue;
}
var values = line.Split(',');
var user = new User
{
Id = int.Parse(values[0]),
Name = values[1],
Score = double.Parse(values[2]),
Rank = int.Parse(values[3])
};
users.Add(user);
}
}
return users;
}
*نوشتن دادهها به فایل CSV:*
برای نوشتن، باید اطلاعات جدید یا بروزرسانی شده را در فایل ثبت کنیم.
csharp
public static void WriteCsv(string filePath, List<User> users)
{
using (var writer = new StreamWriter(filePath))
{
// نوشتن هدر
writer.WriteLine("Id,Name,Score,Rank");
foreach (var user in users)
{
var line = $"{user.Id},{user.Name},{user.Score},{user.Rank}";
writer.WriteLine(line);
}
}
}
پیادهسازی سیستم رتبهبندی
حالا که امکان خواندن و نوشتن فایلهای CSV را داریم، باید الگوریتمی برای رتبهبندی کاربران بر اساس امتیازشان بنویسیم. فرض بر این است که هر چه امتیاز بالاتر باشد، رتبه بهتر است، یعنی ۱، ۲، ۳ و غیره.
برای این کار، ابتدا باید لیست کاربران را بر اساس امتیاز مرتب کنیم. سپس، رتبه هر کاربر را بر اساس جایگاه آن در لیست تعیین کنیم.
csharp
public static void AssignRanks(List<User> users)
{
// مرتبسازی بر اساس Score به صورت نزولی
var sortedUsers = users.OrderByDescending(u => u.Score).ToList();
for (int i = 0; i < sortedUsers.Count; i++)
{
... ← ادامه مطلب در magicfile.ir
باکس دانلود ( استخراج فایل CSV در سی شارپ )
دانلود
پیشنهاد برای دانلود ( استخراج فایل CSV در سی شارپ )
برای دانلود کردن اینجا را کلیک فرمایید
نظرات کاربران (۳)
مریم احمدی
عالی بود .. با تشکر