Files
checker_host/base/base.h

117 lines
2.7 KiB
C
Raw Permalink Normal View History

2023-11-21 20:28:23 +08:00
#ifndef BASE_H
#define BASE_H
#include "QByteArray"
#include "QList"
2023-11-29 15:36:45 +08:00
#include "QDebug"
2023-11-21 20:28:23 +08:00
2023-11-27 14:31:00 +08:00
class myarray : public QByteArray
2023-11-21 20:28:23 +08:00
{
public:
2023-11-27 14:31:00 +08:00
myarray() {}
myarray(const char *data, int len) : QByteArray(data, len) {}
myarray(const char *data) : QByteArray()
{
int len = 0;
if(data!=nullptr){
len=strlen(data) + 1;
2023-11-21 20:28:23 +08:00
}
2023-11-27 14:31:00 +08:00
QByteArray::append(data, len);
}
myarray(int size, char data) : QByteArray(size, data) {}
myarray(const myarray &data) : QByteArray(data) {}
2023-11-29 15:36:45 +08:00
myarray(const QByteArray &data) : QByteArray(data) {}
2023-11-27 14:31:00 +08:00
virtual ~myarray() {}
char &operator[](int index)
{
int size = this->size();
if (index < 0)
index = size + index;
if (index < 0 || index >= size)
return data()[size-1];
return data()[index];
}
2023-11-29 15:36:45 +08:00
bool operator==(const char *s){
return QByteArray::operator==(s);
}
bool operator==(const myarray &s){
// qDebug("s1=%s,s2=%s",data(),s.data());
return strcmp(s.data(),data())==0;
}
2023-11-27 14:31:00 +08:00
myarray &operator=(const myarray &b)
{
QByteArray::operator=(b);
return *this;
}
// myarray &operator =(const myarray b){
// QByteArray::operator =(b);
// return *this;
// }
myarray &operator=(const QByteArray &b)
{
QByteArray::operator=(b);
return *this;
}
// myarray &operator =(const QByteArray b){
// QByteArray::operator =(b);
// return *this;
// }
myarray right(qsizetype index){
return myarray(QByteArray::right(index));
}
myarray left(qsizetype index){
return myarray(QByteArray::left(index));
}
myarray mid(qsizetype index,qsizetype len=-1LL){
return myarray(QByteArray::mid(index,len));
}
2023-12-02 11:27:25 +08:00
QList<myarray> split(char sep){
QByteArrayList list=QByteArray::split(sep);
QList<myarray> myarrlist;
foreach (QByteArray qb, list) {
myarrlist.append(myarray(qb));
};
return myarrlist;
}
2023-11-21 20:28:23 +08:00
};
2023-11-27 14:31:00 +08:00
class mystring : public QString
2023-11-21 20:28:23 +08:00
{
public:
2023-11-27 14:31:00 +08:00
mystring() {}
mystring(const char *data) : QString(data) {}
mystring(myarray &data) : QString(data.data()) {}
mystring(QByteArray &data) : QString(data.data()) {}
mystring(QByteArray data) : QString(data.data()) {}
mystring(QString &data) : QString(data) {}
mystring(QString data) : QString(data) {}
virtual ~mystring() {}
const char *data()
{
localdata = QString::toLocal8Bit();
return localdata.data();
}
mystring &operator=(const QString &b)
{
QString::operator=(b);
return *this;
}
2023-11-21 20:28:23 +08:00
protected:
2023-11-27 14:31:00 +08:00
myarray localdata;
2023-11-21 20:28:23 +08:00
};
2023-11-27 14:31:00 +08:00
template <typename T>
QList<T> str_to_nums(mystring str, char c)
{
QStringList snums = str.split(c);
QList<T> nums;
for (int i = 0; i < snums.size(); i++)
nums.append(T(snums[i].toInt(nullptr, 10)));
return nums;
}
2023-11-21 20:28:23 +08:00
2023-11-27 14:31:00 +08:00
myarray str_to_data(mystring str, char c);
2023-11-21 20:28:23 +08:00
#endif // BASE_H