Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ में सीएसवी फाइलों को कैसे पढ़ और पार्स करें?


आपको वास्तव में C++ में CSV फ़ाइलों को पार्स करने के लिए एक पुस्तकालय का उपयोग करना चाहिए क्योंकि ऐसे कई मामले हैं जिन्हें आप स्वयं फ़ाइलों को पढ़ने से चूक सकते हैं। सी ++ के लिए बूस्ट लाइब्रेरी सीएसवी फाइलों को पढ़ने के लिए टूल का एक बहुत अच्छा सेट प्रदान करती है। उदाहरण के लिए,

उदाहरण

#include<iostream>
vector<string> parseCSVLine(string line){
   using namespace boost;

   std::vector<std::string> vec;

   // Tokenizes the input string
   tokenizer<escaped_list_separator<char> > tk(line, escaped_list_separator<char>
   ('\\', ',', '\"'));
   for (auto i = tk.begin();  i!=tk.end();  ++i)
   vec.push_back(*i);

   return vec;
}

int main() {
   std::string line = "hello,from,here";
   auto words = parseCSVLine(line);
   for(auto it = words.begin(); it != words.end(); it++) {
      std::cout << *it << std::endl;
   }
}

आउटपुट

यह आउटपुट देगा -

hello
from
here

एक अन्य तरीका यह है कि एक रेखा को विभाजित करने और इसे एक सरणी में लेने के लिए एक सीमांकक का उपयोग किया जाए -

उदाहरण

एक और तरीका है गेटलाइन फ़ंक्शन का उपयोग करके स्ट्रिंग को विभाजित करने के लिए एक कस्टम डिलीमीटर प्रदान करना -

#include <vector>
#include <string>
#include <sstream>

using namespace std;

int main() {
   std::stringstream str_strm("hello,from,here");
   std::string tmp;
   vector<string> words;
   char delim = ','; // Ddefine the delimiter to split by

   while (std::getline(str_strm, tmp, delim)) {
      // Provide proper checks here for tmp like if empty
      // Also strip down symbols like !, ., ?, etc.
      // Finally push it.
      words.push_back(tmp);
   }

   for(auto it = words.begin(); it != words.end(); it++) {
      std::cout << *it << std::endl;
   }
}

आउटपुट

यह आउटपुट देगा -

hello
from
here

  1. C++ में रिलेशनल ऑपरेटर(==) और std::string::compare() के बीच अंतर

    रिलेशनल ऑपरेटर ==और std::string::compare() के बीच केवल एक अंतर है। वह वापसी मूल्य है। आंतरिक रूप से, string::operator==() string::compare() using का उपयोग कर रहा है रिलेशनल ऑपरेटर(==) एक बूलियन लौटाता है जो यह दर्शाता है कि 2 तार बराबर हैं या नहीं, जबकि तुलना एक पूर्णांक देता है जो दर्शाता है कि तार

  1. पायथन में यूनिकोड (UTF-8) फाइलों को कैसे पढ़ें और लिखें?

    io मॉड्यूल अब अनुशंसित है और यह Python 3 के ओपन सिंटैक्स के साथ संगत है:पायथन में यूनिकोड (UTF-8) फ़ाइलों को पढ़ने और लिखने के लिए निम्न कोड का उपयोग किया जाता है उदाहरण import io with io.open(filename,'r',encoding='utf8') as f:     text = f.read() # process Unicode text wi

  1. रूबी के साथ सीएसवी फाइलों को कैसे पढ़ें और पार्स करें

    CSV का अर्थ है अल्पविराम से अलग किए गए मान। यह एक सामान्य डेटा प्रारूप है जिसमें अल्पविराम द्वारा अलग किए गए मानों वाली पंक्तियाँ होती हैं। इसका उपयोग डेटा निर्यात और आयात करने के लिए किया जाता है। उदाहरण के लिए : आप अपने Gmail संपर्कों को CSV फ़ाइल के रूप में निर्यात कर सकते हैं, और आप उन्हें उस