2014-07-25 5 views
2

В моем приложении я использую QByteArray для чтения двоичных данных из файла в байтовую запись с фиксированным размером. Фактически все эти записи являются строками. Если размер строки меньше размера записи, поэтому остальные байты заполняются с помощью \ 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 

Так что мой вопрос - как я могу очистить QByteArray от всех \ 0?

ответ

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" 
Смежные вопросы