C:
CSV के साथ काम करना
कैसे करें:
CSV फ़ाइलें पढ़ना
C में एक CSV फ़ाइल को पढ़ने के लिए, हम मानक फ़ाइल I/O फ़ंक्शंस का उपयोग करते हैं जिसके साथ स्ट्रिंग मैनिपुलेशन फ़ंक्शंस होते हैं जो प्रत्येक पंक्ति को पार्स करते हैं। नीचे एक CSV फ़ाइल को पढ़ने और प्रत्येक पंक्ति के क्षेत्रों को कंसोल पर प्रिंट करने का एक बुनियादी उदाहरण है।
#include <stdio.h>
#include <string.h>
int main() {
FILE *fp = fopen("data.csv", "r");
if (!fp) {
printf("Can't open file\n");
return 1;
}
char buf[1024];
while (fgets(buf, 1024, fp)) {
char *field = strtok(buf, ",");
while(field) {
printf("%s\n", field);
field = strtok(NULL, ",");
}
}
fclose(fp);
return 0;
}
नमूना data.csv
:
Name,Age,Occupation
John Doe,29,Software Engineer
नमूना आउटपुट:
Name
Age
Occupation
John Doe
29
Software Engineer
CSV फ़ाइलों में लिखना
इसी तरह, एक CSV फ़ाइल में लिखना शामिल है कि आप fprintf
का उपयोग करके डेटा को कॉमा-अलग प्रारूप में सहेजें।
#include <stdio.h>
int main() {
FILE *fp = fopen("output.csv", "w");
if (!fp) {
printf("Can't open file\n");
return 1;
}
char *headers[] = {"Name", "Age", "Occupation", NULL};
for (int i = 0; headers[i] != NULL; i++) {
fprintf(fp, "%s%s", headers[i], (headers[i+1] != NULL) ? "," : "\n");
}
fprintf(fp, "%s,%d,%s\n", "Jane Doe", 27, "Data Scientist");
fclose(fp);
return 0;
}
नमूना output.csv
सामग्री:
Name,Age,Occupation
Jane Doe,27,Data Scientist
गहरा गोता
CSV प्रारूप, हालांकि सीधा प्रतीत होता है, कुछ विशेषताओं के साथ आता है, जैसे कि क्षेत्रों के भीतर कॉमा को संभालना और कोट्स के साथ क्षेत्रों को संलग्न करना। दिखाए गए मौलिक उदाहरण ऐसी जटिलताओं को ध्यान में नहीं रखते हैं, न ही वे संभावित त्रुटियों को मजबूती से संभालते हैं।
ऐतिहासिक रूप से, C में CSV हैंडलिंग बड़े पैमाने पर मैन्युअल रही है क्योंकि भाषा की निम्न-स्तरीय प्रकृति और ऐसे कार्यों के लिए निर्मित उच्च-स्तरीय अमूर्तताओं की कमी है। इस मैन्युअल प्रबंधन में फ़ाइलें खोलना, पंक्तियाँ पढ़ना, स्ट्रिंग्स विभाजित करना, और आवश्यकता के अनुसार डेटा प्रकारों को बदलना शामिल है।
हालाँकि सीधे C में CSV फ़ाइलों का मैनिपुलेशन फ़ाइल I/O और स्ट्रिंग हैंडलिंग पर मूल्यवान शिक्षा अनुभव प्रदान करता है, कई आधुनिक विकल्प प्रभावशीलता और कम त्रुटि-प्रवण प्रक्रियाओं का वादा करते हैं। लाइब्रेरीज़ जैसे libcsv
और csv-parser
उद्धरण चिह्नित क्षेत्रों और कस्टम विभाजकों के लिए समर्थन सहित CSV फ़ाइलों को पढ़ने और लिखने के लिए व्यापक फ़ंक्शंस प्रदान करती हैं।
वैकल्पिक रूप से, जब काम करने वाले पारिस्थितिकी तंत्र का समर्थन करते हैं, तो उच्च-स्तरीय CSV मैनिपुलेशन फ़ंक्शंस (जैसे कि pandas
लाइब्रेरी के साथ Python) प्रदान करने वाली भाषाओं या प्लेटफ़ॉर्मों के साथ एकीकरण करना, भारी CSV प्रोसेसिंग की आवश्यकता वाले अनुप्रयोगों के लिए एक अधिक उत्पादक मार्ग हो सकता है। यह क्रॉस-भाषा दृष्टिकोण C के प्रदर्शन और सिस्टम प्रोग्रामिंग क्षमताओं का लाभ उठाते हुए, विशिष्ट कार्यों जैसे कि CSV हैंडलिंग के लिए अन्य भाषाओं के उपयोग में आसानी का उपयोग करता है।