Swift:
CSV এর সাথে কাজ করা
কিভাবে:
সুইফটে, CSV ফাইলগুলি সরাসরি পার্স করার জন্য কোনো নেটিভ সমর্থন নেই, তবে আপনি সমস্যাটি সুইফটের String
পদ্ধতিগুলি ব্যবহার করে বিষয়বস্তুগুলি বিভাজন করে, অথবা SwiftCSV এর মতো তৃতীয়-পক্ষের লাইব্রেরিগুলি কাজে লাগিয়ে আরও সুষ্ঠু পথে CSV ডেটা পরিচালনা করতে পারেন। এখানে উভয় পদ্ধতির বিবরণ দেওয়া হল:
বাহ্যিক লাইব্রেরি ছাড়াই ম্যানুয়াল পার্সিং
// একটি সহজ CSV স্ট্রিং বিবেচনা করুন
let csvString = """
name,age,city
John Doe,29,New York
Jane Smith,34,Los Angeles
"""
// CSV স্ট্রিংটি লাইনে লাইনে বিভাজন
let rows = csvString.components(separatedBy: "\n")
// প্রথম সারি থেকে চাবিগুলি প্রত্যাহার
let keys = rows.first?.components(separatedBy: ",")
// দ্বিতীয় থেকে সারিগুলির উপর পুনরাবৃত্তি
var result: [[String: String]] = []
for row in rows.dropFirst() {
let values = row.components(separatedBy: ",")
let dict = Dictionary(uniqueKeysWithValues: zip(keys!, values))
result.append(dict)
}
// নমুনা আউটপুট
print(result)
// আউটপুট: [{"city": "New York", "age": "29", "name": "John Doe"}, {"city": "Los Angeles", "age": "34", "name": "Jane Smith"}]
এই পদ্ধতিটি সরাসরি কিন্তু বিশেষ ক্ষেত্রের মতো মানগুলির মধ্যে কমাসহ CSV ফাইলগুলি নিয়ে কাজ করার সময় দৃঢ়তা অভাব রয়েছে, ক্ষেত্রের মধ্যে লাইন ব্রেক ইত্যাদি।
SwiftCSV লাইব্রেরি ব্যবহার
প্রথমে, আপনার Package.swift
নির্ভরতাগুলিতে SwiftCSV যোগ করে আপনার প্রোজেক্টে এটি যোগ করুন:
.package(url: "https://github.com/swiftcsv/SwiftCSV.git", from: "0.5.6")
তারপর, নিম্নলিখিত হিসেবে এর আমদানি এবং ব্যবহার করুন:
import SwiftCSV
// ধরে নেওয়া যাক `csvString` উপরের মতোই সংজ্ঞায়িত
// একটি CSV অবজেক্ট তৈরি করুন
if let csv = try? CSV(string: csvString) {
// অভিধান হিসেবে সারিগুলি অ্যাক্সেস করুন
let rows = csv.namedRows
// নমুনা আউটপুট
print(rows)
// আউটপুট: [{"city": "New York", "age": "29", "name": "John Doe"}, {"city": "Los Angeles", "age": "34", "name": "Jane Smith"}]
}
SwiftCSV কমা দ্বারা ঘেরা, ক্ষেত্রের মধ্যে লাইন ব্রেক, এবং চরিত্র এনকোডিং এর মতো জটিলতাগুলি স্বয়ংক্রিয়ভাবে সম্পর্কের মাধ্যমে পার্সিং সহজ করে। তবে, বাহ্যিক ডেটা উৎসগুলির সাথে কাজ করার সময় বাস্তব অনুপ্রয়োগে সম্ভাব্য ত্রুটিগুলি পরিচালনা করা নিশ্চিত করা উচিত, বিশেষত যখন।