PIString:: mid and cutMid does nothing if "start" < 0
This commit is contained in:
53
main.cpp
53
main.cpp
@@ -1,35 +1,32 @@
|
||||
#include "pip.h"
|
||||
#include "piiostream.h"
|
||||
|
||||
using namespace PICoutManipulators;
|
||||
|
||||
|
||||
int main(int argc, char * argv[]) {
|
||||
PIByteArray ba = PIByteArray::fromHex("AA1122BB11233AA4455");
|
||||
PIIOByteArray b;
|
||||
b.open(ba);
|
||||
PIPacketExtractor p(&b);
|
||||
p.setSplitMode(PIPacketExtractor::Header);
|
||||
p.setHeader(PIByteArray::fromHex("00"));
|
||||
p.setFooter(PIByteArray::fromHex("AA"));
|
||||
p.setPayloadSize(2);
|
||||
p.setThreadedReadSlot([](const uchar * data, int size, void * d) {
|
||||
return true;
|
||||
});
|
||||
p.setHeaderCheckSlot([](const uchar * src, const uchar * rec, int size)->int {
|
||||
if (*src == *rec) {
|
||||
if (rec[0] == 0xAA) return 2;
|
||||
if (rec[0] == 0xBB) return 3;
|
||||
}
|
||||
return -1;
|
||||
});
|
||||
// p.setPayloadCheckSlot([](const uchar * data, int size) {
|
||||
// return data[1] == 0xFF;
|
||||
// });
|
||||
CONNECTL(&p, packetReceived, ([](const uchar * data, int size){
|
||||
piCout << PIByteArray(data, size).toHex();
|
||||
}));
|
||||
p.startThreadedRead();
|
||||
piMSleep(100);
|
||||
p.stop();
|
||||
return 0;
|
||||
{
|
||||
PIString s("0123456789");
|
||||
piCout << s.mid(0, -1); // s = "0123456789"
|
||||
piCout << s.mid(0, 2); // s = "01"
|
||||
piCout << s.mid(3, -1); // s = "3456789"
|
||||
piCout << s.mid(3, 4); // s = "3456"
|
||||
piCout << s.mid(7, 1); // s = "7"
|
||||
piCout << s.mid(7, 4); // s = "789"
|
||||
piCout << s.mid(-1); // s = ""
|
||||
//! \endcode
|
||||
//! \~\sa \a left(), \a right()
|
||||
}
|
||||
|
||||
//! \~\details
|
||||
//! \~\code
|
||||
PIString s("0123456789");
|
||||
s.cutMid(1, 3);
|
||||
piCout << s; // s = "0456789"
|
||||
s.cutMid(0, 2);
|
||||
piCout << s; // s = "56789"
|
||||
s.cutMid(3, -1);
|
||||
piCout << s; // s = "567"
|
||||
s.cutMid(-1, -1);
|
||||
piCout << s; // s = "567"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user