我想在Qt中將數組轉換爲QByteArray。有人可以解釋這個概念嗎?請舉一個例子。如何將數組轉換爲QByteArray?
-1
A
回答
0
數組是什麼?假設你的意思是一個空終止字符數組:
#include <QtCore>
int main(int argc, char *argv[])
{
const char* myArray = "Hello World!";
QByteArray myByteArray = QByteArray(myArray);
}
3
QByteArray
有constructor,不只是這個。
這是如何使用它:
const char* data; int size; // these variables should be correctly set to your array and size
QByteArray ba(data, size);
我使用的指針中的數據,但陣列衰減到指針時作爲參數傳遞,以便它是相同的。這個構造函數將對數據進行深層次的複製。這意味着它只會擁有它所做的副本的所有權,並且如果動態分配的話,您使用的數據可能需要重新分配。
對於其他類型的數組比char
你基本上是做系列化:
int data[30];
for (int i = 0; i < 30; ++i)
{
ba.append((const char*)(data + i), sizeof(int));
}
將上面的代碼插入使你的整數爲QByteArray
字節。但要小心,因爲此時索引QByteArray
不會返回整數,而是返回它們的字節。
要轉換QString(這是不是你問什麼,但增加了一個評論,要求它)使用的QString
適當的成員函數:
QByteArray ba = str.toLocal8bit();
QByteArray ba2 = str.toLatin1();
QByteArray ba3 = str.toUtf8();
QByteArray ba4 = str.toAscii();
要決定使用哪一個,你必須知道編碼你的字符串。爲了編碼之間的轉換,使用QTextCodec
+0
在此解決方案中,您使用了append方法。 '+ ='操作員是否也能工作? – Xofo
0
要存儲在QByteArray中我已經適應這裏描述的方法的數組:http://smartqt.blogspot.ru/2014/05/how-to-convert-struct-in-and-from.html
我對int數組版本
QByteArray serialize(int* ar, int ar_size)
{
QByteArray result;
QDataStream stream (&result, QIODevice::WriteOnly);
stream<<ar_size;
for (int i=0; i<ar_size; i++)
stream<<ar[i];
return result;
}
void deserialize(const QByteArray& byteArray)
{
QDataStream stream(byteArray);
int ar_size=0;
stream>>ar_size;
int* ar = new int[ar_size];
for (int i=0; i<ar_size;i++)
stream>>ar[i];
}
乾杯!
相關問題
- 1. 將雙數組轉換爲QByteArray
- 2. 如何將QImage轉換爲QByteArray?
- 3. Qt5如何將DATA_BLOB轉換爲QByteArray
- 4. 將QBitArray轉換爲QByteArray
- 5. 將QBytearray轉換爲QBitarray
- 6. QT如何將QByteArray數字轉換爲int;
- 7. Qt - 將QString轉換爲Unicode QByteArray
- 8. 將unsigned char [10]轉換爲QBytearray;
- 9. 如何將數組轉換爲數組?
- 10. 轉換的QByteArray整數
- 11. 如何將數組轉換爲元組?
- 12. 如何將std :: vector <uint8_t>轉換爲QByteArray?
- 13. 如何將QList <QByteArray>轉換爲QT中的QString?
- 14. 如何將BYTE *轉換爲QT中的QByteArray?
- 15. Qt&Kinect:如何將BYTE * pBuffer轉換爲QByteArray或const uchar *?
- 16. 如何使用分隔符' - '將QByteArray轉換爲QString?
- 17. 將QString/QByteArray轉換爲科學記數法qt
- 18. 如何將列表轉換爲數組?
- 19. 如何將數組轉換爲xts
- 20. 如何將字典轉換爲數組
- 21. 如何將數組轉換爲MySQL表?
- 22. 如何將SimpleXMLObject轉換爲PHP數組?
- 23. 如何將IplImage轉換爲GLubyte數組?
- 24. 如何將此數組轉換爲c#?
- 25. 如何將數組轉換爲JSON
- 26. 如何將ILArray轉換爲double [,]數組?
- 27. 如何將v8值轉換爲數組
- 28. 如何將int轉換爲Byte數組?
- 29. 如何將數組轉換爲表?
- 30. 如何將Json數組轉換爲XSD
這裏(http://doc.qt.nokia.com/latest/qbytearray.html)是一些示例代碼和文檔。 – v01d
http://stackoverflow.com/questions/6629534/c-hex-string-to-byte-array看看是否有效。 –