diff options
| author | crupest <crupest@outlook.com> | 2020-12-30 15:37:39 +0800 | 
|---|---|---|
| committer | crupest <crupest@outlook.com> | 2020-12-30 15:37:39 +0800 | 
| commit | e0964bbc4f66e7d193abd249213c9cf762fd0294 (patch) | |
| tree | ee4f5307fc555ef66a3752e20388dca8f386c2f1 /works/life/cpp-practicum/Vendor.cpp | |
| parent | 7e9e803b33a9380d2ff3111c8d11f25f5d2b98ec (diff) | |
| download | crupest-e0964bbc4f66e7d193abd249213c9cf762fd0294.tar.gz crupest-e0964bbc4f66e7d193abd249213c9cf762fd0294.tar.bz2 crupest-e0964bbc4f66e7d193abd249213c9cf762fd0294.zip | |
import(life): ...
Diffstat (limited to 'works/life/cpp-practicum/Vendor.cpp')
| -rw-r--r-- | works/life/cpp-practicum/Vendor.cpp | 33 | 
1 files changed, 33 insertions, 0 deletions
| diff --git a/works/life/cpp-practicum/Vendor.cpp b/works/life/cpp-practicum/Vendor.cpp new file mode 100644 index 0000000..7544451 --- /dev/null +++ b/works/life/cpp-practicum/Vendor.cpp @@ -0,0 +1,33 @@ +#include "Vendor.hpp"
 +
 +#include <QString>
 +
 +QTextStream &operator>>(QTextStream &left, Vendor &right) {
 +  auto line = left.readLine();
 +
 +  auto fields = line.split(QChar('|'));
 +
 +  if (fields.size() != 5) {
 +    throw SerializationException("Line has not 5 parts.");
 +  }
 +
 +  bool ok;
 +  auto id = fields[0].toInt(&ok);
 +  if (!ok) {
 +    throw SerializationException("Part 1 is not a number.");
 +  }
 +
 +  right.SetId(id);
 +  right.SetName(fields[1].toStdU16String());
 +  right.SetType(fields[2].toStdU16String());
 +  right.SetAddress(fields[3].toStdU16String());
 +  right.SetPhone(fields[4].toStdU16String());
 +
 +  return left;
 +}
 +
 +QTextStream &operator<<(QTextStream &left, const Vendor &right) {
 +  left << right.GetId() << '|' << right.GetName() << '|' << right.GetType()
 +       << '|' << right.GetAddress() << '|' << right.GetPhone();
 +  return left;
 +}
 | 
