본문 바로가기
WORK/Sotfware

QT Hex 파일 읽기

by KANG Stroy 2016. 5. 3.
728x90
728x90

QT 프로그램에서 파일 읽고 쓰기 프로그램에서 


Binary 파일 읽고 쓰기를 하면서 Hex 값을 읽는 프로그램을 만드려고 합니다. 


자잘한 부분은 다 삭제 하고 필요한 부분만 남겨 놓아서 내가 다음에 봐도 이해 할 수 있도록 써 보도록 노력해 보겠습니다. 


Header File 은 다음을 추가 합니다. 


#include <QMessageBox>      // 팝업 창 메세지 

#include <QTextStream>        // ?? 이것은 다른 부분에 넣음 안써도 됨.

#include <QFileDialog>          // 파일을 열고, 닫고, 읽고, 쓰고 


이제 파일을 읽어 오는 소스 입니다. 


    QString path,filename;

    filename = QCoreApplication::applicationDirPath();

    QFile file(filename + "/1111.bin");        // 현재 폴더의 1111.bin 파일을 열어 줍니다.

    path = (filename + "/1111.bin");         // 현재 경로를 프린트 해 보려고 썼습니다. 안써도 무관 


    if( !file.open(QIODevice::ReadOnly) ) return;    // 파일을 엽니다. 


    QByteArray blob = file.readAll();    // blob으로 읽어 온것을 넣어 줍니다. 


    ui->textEdit->clear();                    // Text 의 내용 삭제

    ui->textEdit->append(path);            //  위의 path 출력 

    ui->textEdit->append(blob.toHex());    // path 출력 한것에서 blob 의 bin 파일의 값을 출력 


    file.close();    // 파일 종료 


위와 같이 실행 하면 정상적으로 동작이 될 겁니다. 

여기서 ui->textEdit 는 프로그램이 실행 될 때의 창 입니다. 


ui->textEdit->append(blob.toHex()); 에서 toHex() 값을 사용하시면 출력시 00 00 11 ff 등등으로 표시가 됩니다. 


빨간색의 텍스트 창 입니다. 


아래 프로그램은 아래에 링크 달아 두도록 하겠습니다. 


위와 같이 출력이 되는 부분에서 bin값이 강제적으로 출력 하도록 수정 하였습니다. 


소스는 위에 있는것이 90% 정도 되겠내요 


참고 싸이트 : https://wiki.ubuntu-kr.org/index.php/GUI(QT)_Programming#.ED.8C.8C.EC.9D.BC_.EB.8B.A4.EB.A3.A8.EA.B8.B0

728x90

'WORK > Sotfware' 카테고리의 다른 글

QT QString value to Hex file save  (0) 2016.05.11
QT New file insert  (0) 2016.05.04
QT 특정 글자 위치 찾기  (0) 2016.04.04
QT Creator Tab Name Change  (0) 2016.03.28
QT 경로 설정  (0) 2016.03.25

댓글