2014-07-25 34 views
2

在我的應用程序中,我使用QByteArray從文件讀取二進制數據到固定大小的字節記錄。實際上所有這些記錄都是字符串。如果字符串大小小於記錄大小,則其餘字節用\ 0填充。有時記錄也可以以\ 0開頭。從 0清理QByteArray 0

例子,我需要做什麼:

之前

\0 \0 \0 T h e \32 s t r i n g \0 \0 \0 

T h e \32 s t r i n g 

之後所以我的問題 - 我怎麼能清理所有的\ 0 QByteArray

回答

2

我測試了這個代碼,它似乎工作得益於QByteArray & QByteArray::replace(...)函數。

QByteArray array; 
array[0] = '\0'; 
array[1] = 'a'; 
array[2] = '\0'; 
array[3] = 'b'; 
array[4] = '\0'; 

qDebug() << "string:" << QString(array.toHex()); 
array.replace('\0',""); 

qDebug() << "string:" << QString(array.toHex()); 

輸出:

string: "0061006200" 
string: "6162"