//.h
#pragma once
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
using namespace std;
class mycdt
{
public:
mycdt();
~mycdt();
void readFile();
void inputStr();
void writeFile();
void selectStr();
private:
string str;
vector<string> readtext;
vector<string> writetext;
};
mycdt::mycdt()
{
str = '$';
}
mycdt::~mycdt()
{
}
void mycdt::readFile()
{
ifstream read;
read.open("T700cdt.txt", ios::in);
if (!read)
{
cout << "文件打开失败!";
}
string temp;
while (getline(read, temp))
{
readtext.push_back(temp);
}
read.close();
}
void mycdt::inputStr()
{
cout << "输入过滤的编号:";
cin >> str;
}
void mycdt::selectStr()
{
for (unsigned int i = 0; i < readtext.size(); i++)
{
string::size_type flag = readtext[i].find(str);
if (flag != string::npos)
{
writetext.push_back(readtext[i]);
}
}
for (unsigned int i = 0; i < writetext.size(); i++)
{
char ch = writetext[i][17];
switch (ch)
{
case '0':
writetext[i].replace(30, 2, "P0");
writetext[i].insert(15, " ");
writetext[i].erase(20, 3);
writetext[i].erase(22, 3);
writetext[i].replace(32, 1, " \"");
break;
case '1':
writetext[i].replace(30, 2, "P1");
writetext[i].insert(15, " ");
writetext[i].erase(20, 3);
writetext[i].erase(22, 3);
writetext[i].replace(32, 1, " \"");
break;
case '2':
writetext[i].replace(30, 2, "P2");
writetext[i].insert(15, " ");
writetext[i].erase(20, 3);
writetext[i].erase(22, 3);
writetext[i].replace(32, 1, " \"");
break;
case '3':
writetext[i].replace(30, 2, "P3");
writetext[i].insert(15, " ");
writetext[i].erase(20, 3);
writetext[i].erase(22, 3);
writetext[i].replace(32, 1, " \"");
break;
case '4':
writetext[i].replace(30, 2, "C0");
writetext[i].insert(15, " ");
writetext[i].erase(20, 3);
writetext[i].erase(22, 3);
writetext[i].replace(32, 1, " \"");
break;
case '5':
writetext[i].replace(30, 2, "C1");
writetext[i].insert(15, " ");
writetext[i].erase(20, 3);
writetext[i].erase(22, 3);
writetext[i].replace(32, 1, " \"");
break;
case '6':
writetext[i].replace(30, 2, "C2");
writetext[i].insert(15, " ");
writetext[i].erase(20, 3);
writetext[i].erase(22, 3);
writetext[i].replace(32, 1, " \"");
break;
case '7':
writetext[i].replace(30, 2, "C3");
writetext[i].insert(15, " ");
writetext[i].erase(20, 3);
writetext[i].erase(22, 3);
writetext[i].replace(32, 1, " \"");
break;
case '8':
if (writetext[i][18] == '0')
{
if(writetext[i].find("FF", 27) != 27)
{
switch (writetext[i][22])
{
case '0':
writetext[i].replace(30, 2, "P0");
writetext[i].insert(20, " ");
writetext[i].erase(25, 3);
writetext[i].replace(33, 3, " \"");
break;
case '1':
writetext[i].replace(30, 2, "P1");
writetext[i].insert(20, " ");
writetext[i].erase(25, 3);
writetext[i].replace(33, 3, " \"");
break;
case '2':
writetext[i].replace(30, 2, "P2");
writetext[i].insert(20, " ");
writetext[i].erase(25, 3);
writetext[i].replace(33, 3, " \"");
break;
case '3':
writetext[i].replace(30, 2, "P3");
writetext[i].insert(20, " ");
writetext[i].erase(25, 3);
writetext[i].replace(33, 3, " \"");
break;
case '4':
writetext[i].replace(30, 2, "C0");
writetext[i].insert(20, " ");
writetext[i].erase(25, 3);
writetext[i].replace(33, 3, " \"");
break;
case '5':
writetext[i].replace(30, 2, "C1");
writetext[i].insert(20, " ");
writetext[i].erase(25, 3);
writetext[i].replace(33, 3, " \"");
break;
case '6':
writetext[i].replace(30, 2, "C2");
writetext[i].insert(20, " ");
writetext[i].erase(25, 3);
writetext[i].replace(33, 3, " \"");
break;
case '7':
writetext[i].replace(30, 2, "C3");
writetext[i].insert(20, " ");
writetext[i].erase(25, 3);
writetext[i].replace(33, 3, " \"");
break;
case '8':
writetext[i].replace(30, 2, "B0");
writetext[i].insert(20, " ");
writetext[i].erase(25, 3);
writetext[i].replace(33, 3, " \"");
break;
case '9':
writetext[i].replace(30, 2, "B1");
writetext[i].insert(20, " ");
writetext[i].erase(25, 3);
writetext[i].replace(33, 3, " \"");
break;
case 'A':
writetext[i].replace(30, 2, "B2");
writetext[i].insert(20, " ");
writetext[i].erase(25, 3);
writetext[i].replace(33, 3, " \"");
break;
case 'B':
writetext[i].replace(30, 2, "B3");
writetext[i].insert(20, " ");
writetext[i].erase(25, 3);
writetext[i].replace(33, 3, " \"");
break;
case 'C':
writetext[i].replace(30, 2, "U0");
writetext[i].insert(20, " ");
writetext[i].erase(25, 3);
writetext[i].replace(33, 3, " \"");
break;
case 'D':
writetext[i].replace(30, 2, "U1");
writetext[i].insert(20, " ");
writetext[i].erase(25, 3);
writetext[i].replace(33, 3, " \"");
break;
case 'E':
writetext[i].replace(30, 2, "U2");
writetext[i].insert(20, " ");
writetext[i].erase(25, 3);
writetext[i].replace(33, 3, " \"");
break;
case 'F':
writetext[i].replace(30, 2, "U3");
writetext[i].insert(20, " ");
writetext[i].erase(25, 3);
writetext[i].replace(33, 3, " \"");
break;
default:
break;
}
}
else
{
writetext[i].replace(30, 2, "B0");
writetext[i].insert(15, " ");
writetext[i].erase(20, 3);
writetext[i].erase(22, 3);
writetext[i].replace(32, 1, " \"");
}
}
else
{
writetext[i].replace(30, 2, "B0");
writetext[i].insert(15, " ");
writetext[i].erase(20, 3);
writetext[i].erase(22, 3);
writetext[i].replace(32, 1, " \"");
}
break;
case '9':
writetext[i].replace(30, 2, "B1");
writetext[i].insert(15, " ");
writetext[i].erase(20, 3);
writetext[i].erase(22, 3);
writetext[i].replace(32, 1, " \"");
break;
case 'A':
writetext[i].replace(30, 2, "B2");
writetext[i].insert(15, " ");
writetext[i].erase(20, 3);
writetext[i].erase(22, 3);
writetext[i].replace(32, 1, " \"");
break;
case 'B':
writetext[i].replace(30, 2, "B3");
writetext[i].insert(15, " ");
writetext[i].erase(20, 3);
writetext[i].erase(22, 3);
writetext[i].replace(32, 1, " \"");
break;
case 'C':
writetext[i].replace(30, 2, "U0");
writetext[i].insert(15, " ");
writetext[i].erase(20, 3);
writetext[i].erase(22, 3);
writetext[i].replace(32, 1, " \"");
break;
case 'D':
writetext[i].replace(30, 2, "U1");
writetext[i].insert(15, " ");
writetext[i].erase(20, 3);
writetext[i].erase(22, 3);
writetext[i].replace(32, 1, " \"");
break;
case 'E':
writetext[i].replace(30, 2, "U2");
writetext[i].insert(15, " ");
writetext[i].erase(20, 3);
writetext[i].erase(22, 3);
writetext[i].replace(32, 1, " \"");
break;
case 'F':
writetext[i].replace(30, 2, "U3");
writetext[i].insert(15, " ");
writetext[i].erase(20, 3);
writetext[i].erase(22, 3);
writetext[i].replace(32, 1, " \"");
break;
default:
break;
}
}
}
void mycdt::writeFile()
{
ofstream write("write.txt", ios::out);
if (!write)
{
cout << "打开文件失败!";
}
for (unsigned int i = 0; i < writetext.size(); i++)
{
write << writetext[i] << endl;
}
write.close();
}
//.c
#include "cdt.h"
#include <iostream>
int main()
{
mycdt cdt;
//cdt.inputStr();
cdt.readFile();
cdt.selectStr();
cdt.writeFile();
// cout << "OK";
// getchar();
return 0;
}