2014-07-25 2 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 

전에 그래서 내 질문 - 어떻게 \ 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" 
관련 문제