2014-12-16 2 views
0

나는 파일 이름과 하나의 내용을 연결하는 방법 QByteArray구문 분석 QByteArray

QFile file("C:\\Devel\\icon.jpg"); 
if (file.open(QIODevice::ReadOnly)){ 
    QByteArray content = file.readAll(); 
} 
  1. 에 QByteArray

    QString file_name = "icon.jpg"; 
    QByteArray qba1; qba+=file_name; 
    

    나는 파일의 내용을 가지고로 파일 이름이 QByteArray 유형의 변수?

  2. 이 변수 QByteArray를 파일 이름 및 내용으로 다시 구문 분석하는 방법은 무엇입니까?
+0

파일 이름 다음에 '\ 0'구분 기호를 넣으 시지 만 네트워크를 통해 스트리밍하는 방법은 무엇입니까? – lpapp

답변

0

가장 간단한 방법은 파일 이름의 길이로 시작한 다음 파일 이름 자체와 그 뒤에 데이터로 시작하는 것입니다. 데이터를 다시 파싱하는 것은 파일 이름 길이를 먼저 읽고, 파일 이름을 읽은 다음 데이터를 읽는 것만 큼 간단합니다.

QByteArray qbaFileName((const char*)(file_name.utf16()), file_name.size() * 2); 

QByteArray byteArray; 
QDataStream stream(&byteArray, QIODevice::WriteOnly); 
stream << (int)qbaFileName.size(); // put length of filename on stream 
stream << qbaFileName;    // put filename on stream 
stream << file.readAll();    // put binary data on stream