کار با CSV در C#
کار با فایلهای CSV (Comma-Separated Values) در زبان برنامهنویسی C# میتواند ساده و در عین حال قدرتمند باشد. این فرمت به دلیل سادگی و قابلیت انتقال دادهها بین برنامهها و سیستمهای مختلف، بسیار مورد استفاده قرار میگیرد. در اینجا، به بررسی روشهای مختلف خواندن و نوشتن فایلهای CSV در C# خواهیم پرداخت.
خواندن فایل CSV
برای خواندن فایل CSV، میتوانید از کلاس `StreamReader` استفاده کنید. در زیر یک مثال ساده آورده شده است:
```csharp
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "data.csv";
using (StreamReader reader = new StreamReader(filePath))
{
string line;
while ((line = reader.ReadLine()) != null)
{
string[] values = line.Split(',');
// پردازش دادهها
Console.WriteLine(string.Join(" | ", values));
}
}
}
}
```
در این مثال، هر خط از فایل خوانده میشود و با استفاده از متد `Split`، دادهها به آرایهای از رشتهها تقسیم میشوند.
نوشتن فایل CSV
برای نوشتن دادهها به یک فایل CSV، میتوانید از کلاس `StreamWriter` استفاده کنید. در زیر یک نمونه کد آورده شده است:
```csharp
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "output.csv";
using (StreamWriter writer = new StreamWriter(filePath))
{
writer.WriteLine("Name,Age,Occupation");
writer.WriteLine("Alice,30,Engineer");
writer.WriteLine("Bob,25,Designer");
}
}
}
```
در اینجا، با استفاده از `WriteLine`، دادهها به فرمت CSV نوشته میشوند.
استفاده از کتابخانههای شخص ثالث
گاهی اوقات، کار با CSV میتواند پیچیدهتر باشد. در این مواقع، استفاده از کتابخانههای شخص ثالث مانند CsvHelper میتواند مفید باشد. این کتابخانه قابلیتهای بیشتری را برای خواندن و نوشتن فایلهای CSV فراهم میکند.
برای استفاده از CsvHelper، ابتدا باید آن را نصب کنید. میتوانید از NuGet Package Manager استفاده کنید:
```
Install-Package CsvHelper
```
سپس میتوانید کد زیر را برای خواندن و نوشتن CSV استفاده کنید:
```csharp
using System;
using System.Globalization;
using System.IO;
using CsvHelper;
class Program
{
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Occupation { get; set; }
}
static void Main()
{
// نوشتن
using (var writer = new StreamWriter("people.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
csv.WriteRecords(new List<Person>
{
new Person { Name = "Alice", Age = 30, Occupation = "Engineer" },
new Person { Name = "Bob", Age = 25, Occupation = "Designer" }
});
}
// خواندن
using (var reader = new StreamReader("people.csv"))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
var records = csv.GetRecords<Person>();
foreach (var record in records)
{
Console.WriteLine($"{record.Name} | {record.Age} | {record.Occupation}");
}
}
}
}
```
نتیجهگیری
کار با فایلهای CSV در C# میتواند با استفاده از کلاسهای استاندارد یا کتابخانههای شخص ثالث انجام شود. با درک روشهای مختلف، میتوانید به سادگی دادهها را مدیریت کنید. از خواندن تا نوشتن، این تکنیکها به شما کمک میکنند تا با دادههای خود به طور مؤثری کار کنید.