Dart:
CSV এর সাথে কাজ করা
কিভাবে:
Dart-এ CSV ফাইলগুলি সম্পর্কে কাজ করার জন্য, আপনি সাধারণত টেক্সটটি ম্যানুয়ালি প্রক্রিয়া করেন অথবা কাজটিকে সহজ করার জন্য থার্ড-পার্টি লাইব্রেরি ব্যবহার করেন। এখানে, আমরা উভয় পদ্ধতিকেই দেখব।
ম্যানুয়ালি CSV পার্স করা
যদি আপনার প্রয়োজন সাধারণ হয়, আপনি একটি CSV স্ট্রিং ম্যানুয়ালি পার্স করতে পারেন। এটি Dart-এর মূল স্ট্রিং ম্যানিপুলেশান ফাংশনগুলি ব্যবহার করে অর্জন করা যায়:
void main() {
// নমুনা CSV ডেটা
String csvData = "Name,Age,Email\nJohn Doe,30,[email protected]\nJane Smith,25,[email protected]";
// CSV ডেটাকে লাইনগুলিতে বিভক্ত করা
List<String> lines = csvData.split('\n');
// প্রতিটি লাইন পারস করা
List<Map<String, String>> data = [];
List<String> headers = lines.first.split(',');
for (var i = 1; i < lines.length; i++) {
List<String> row = lines[i].split(',');
Map<String, String> record = {};
for (var j = 0; j < headers.length; j++) {
record[headers[j]] = row[j];
}
data.add(record);
}
// পারস করা ডেটা আউটপুট করা
print(data);
}
// নমুনা আউটপুট:
// [{Name: John Doe, Age: 30, Email: john@example.com}, {Name: Jane Smith, Age: 25, Email: jane@example.com}]
থার্ড-পার্টি লাইব্রেরি ব্যবহার: csv
বেশি জটিল সিনারিওর জন্য অথবা আপনার কোডকে সহজ করতে, আপনি csv
এর মতো জনপ্রিয় থার্ড-পার্টি লাইব্রেরি ব্যবহার করতে পারেন। প্রথমে, এটিকে dependencies
-এর অধীনে আপনার pubspec.yaml
ফাইলে csv: ^5.0.0
(অথবা সর্বশেষ ভার্সন) যুক্ত করে প্রজেক্টে যুক্ত করুন। তারপর নিম্নের মত ব্যবহার করুন:
import 'package:csv/csv.dart';
void main() {
String csvData = "Name,Age,Email\nJohn Doe,30,[email protected]\nJane Smith,25,[email protected]";
// CsvToListConverter ব্যবহার করে CSV ডেটা পার্স করা
List<List<dynamic>> listData = const CsvToListConverter().convert(csvData);
// প্রথম লিস্ট আইটেমে হেডার রয়েছে
List<String> headers = listData.first.map((item) => item.toString()).toList();
// আরো প্রসেসিং করার আগে হেডার রো সরিয়ে দেওয়া
listData.removeAt(0);
// আরও গোছালো ফর্ম্যাটের জন্য List<Map<String, dynamic>> এ রূপান্তর
List<Map<String, dynamic>> mappedData = listData.map((list) {
Map<String, dynamic> map = {};
for (int i = 0; i < headers.length; i++) {
map[headers[i]] = list[i];
}
return map;
}).toList();
// ম্যাপ করা ডেটা আউটপুট করা
print(mappedData);
}
// নমুনা আউটপুট:
// [{Name: John Doe, Age: 30, Email: john@example.com}, {Name: Jane Smith, Age: 25, Email: jane@example.com}]
উভয় পদ্ধতি কিভাবে CSV ডেটা নিয়ে কাজ করতে হয় তা দেখিয়েছে: প্রথমটি ম্যানুয়ালি, শেখার উদ্দেশ্যে অথবা সহজ CSV গঠনের সাথে কাজ করার সময়; দ্বিতীয়টি, একটি শক্তিশালী লাইব্রেরি ব্যবহার করে যা পার্সিং সহজ করে এবং CSV ফর্ম্যাটের বিভিন্ন জটিলতা সামলাতে পারে।