G
G
Gokilla2018-04-15 18:25:03
C++ / C#
Gokilla, 2018-04-15 18:25:03

Write data to c++ analytic structures?

There is a database file orders_class.txt

orderItemID;orderDate;deliveryDate;itemID;size;color;manufacturerID;price;customerID;salutation;dateOfBirth;state;creationDate
1;2013-04-01;2013-04-03;2347;43;magenta;1;89.90;12489;Mrs;1963-04-26;Hesse;2012-04-23
2;2013-04-01;2013-04-03;2741;43;grey;1;99.90;12489;Mrs;1963-04-26;Hesse;2012-04-23
3;2013-04-01;2013-04-03;2514;9;ecru;19;79.90;12489;Mrs;1963-04-26;Hesse;2012-04-23
4;2013-04-01;2013-05-06;2347;42;brown;1;89.90;12489;Mrs;1963-04-26;Hesse;2012-04-23
5;2013-04-01;?;2690;43;grey;1;119.90;12489;Mrs;1963-04-26;Hesse;2012-04-23
6;2013-04-01;2013-04-02;2318;41;blue;1;89.90;3649;Mrs;1956-03-26;Hesse;2013-04-01
7;2013-04-01;2013-04-22;2590;7+;white;57;99.90;3649;Mrs;1956-03-26;Hesse;2013-04-01
8;2013-04-01;2013-06-13;2656;41;magenta;1;79.90;3649;Mrs;1956-03-26;Hesse;2013-04-01
9;2013-04-01;2013-04-02;335;34;purple;51;29.90;22284;Mrs;1967-02-08;Rhineland-Palatinate;2011-02-16
...

and there are such structures
There is such a code
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
struct Customer
{
  int customerID;
  std::string salutation;
  std::string dateOfBirth;
  std::string state;
  std::string creationDate;
};
struct Item
{
  int itemID;
  std::string size;
  std::string color;
  int manufacturerID;
  double price;
};
struct Order
{
  int orderItemID;
  std::string orderDate;
  std::string deliveryDate;
  Customer *customer;
  Item *item;
};

int main()
{
  std::cout << "Hello world!" << std::endl;
  std::string str;
  std::ifstream file("C:\\Users\\User\\Desktop\\инт сис\\04\\orders_class.txt", std::ios::in);
  std::vector<Order>*vec = new std::vector<Order>();
  while (!file.eof())
  {
    getline(file, str);
    //std::cout << str << std::endl;
  };
  file.close();
  system("pause");
  return 0;
}

how to me to consider the data in a vector for the further processing?

Answer the question

In order to leave comments, you need to log in

1 answer(s)
G
Gokilla, 2018-04-15
@Gokilla

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
int pos;
struct Customer
{
  int customerID;
  std::string salutation;
  std::string dateOfBirth;
  std::string state;
  std::string creationDate;
};
struct Item
{
  int itemID;
  std::string size;
  std::string color;
  int manufacturerID;
  double price;
};
struct Order
{
  int orderItemID;
  std::string orderDate;
  std::string deliveryDate;
  Customer *customer;
  Item *item;
};
std::string SubStr(std::string str)
{
  int i = pos;
  std::string substr = "";
  while (str[i] != ';' && str[i]!='\0' && str[i]!=EOF)
  {
    substr += str[i++];
    pos++;
  }
  pos++;
  return substr;
}
int main()
{
  std::string str;
  std::ifstream file("C:\\Users\\User\\Desktop\\инт сис\\04\\orders_class.txt", std::ios::in);
  std::vector<Order*>*vec = new std::vector<Order*>();
  int strstr = 0;
  while (!file.eof())
  {
    //if (strstr == 50078)
    //	bool b = true;
    pos = 0;
    getline(file, str);
    if(!strstr)
      getline(file, str);
    //std::cout << str << std::endl;
    if (str != "")
    {

      vec->push_back(new Order());
      (*vec)[vec->size() - 1]->item = new Item();
      (*vec)[vec->size() - 1]->customer = new Customer();
      (*vec)[vec->size() - 1]->orderItemID = stoi(SubStr(str));
      (*vec)[vec->size() - 1]->orderDate = SubStr(str);
      (*vec)[vec->size() - 1]->deliveryDate = SubStr(str);
      (*vec)[vec->size() - 1]->item->itemID = stoi(SubStr(str));
      (*vec)[vec->size() - 1]->item->size = SubStr(str);
      (*vec)[vec->size() - 1]->item->color = SubStr(str);
      (*vec)[vec->size() - 1]->item->manufacturerID = stoi(SubStr(str));
      std::string::size_type sz;
      (*vec)[vec->size() - 1]->item->price = std::stod(SubStr(str), &sz);
      (*vec)[vec->size() - 1]->customer->customerID = stoi(SubStr(str));
      (*vec)[vec->size() - 1]->customer->salutation = SubStr(str);
      (*vec)[vec->size() - 1]->customer->dateOfBirth = SubStr(str);
      (*vec)[vec->size() - 1]->customer->state = SubStr(str);
      (*vec)[vec->size() - 1]->customer->creationDate = SubStr(str);
    }
    strstr++;
    
    //std::cout << strstr << std::endl;
  }
  file.close();
  system("pause");
  return 0;
}

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question