[Qt C++] 쿠 거 krc 파일 디 코딩
2662 단어 qt
단지 글자 마다 이전의 라벨 이 무슨 뜻 을 대표 하 는 지 모르겠다.코드 는 다음 과 같 습 니 다:
#include
#include
#include
#include "zlib.h"
const int Keys[] = {64, 71, 97, 119, 94, 50, 116, 71, 81, 54, 49, 45, 206, 210,
110, 105};
typedef int CONVERT_CODE;
#define CONVERT_SUCCESS 0x00
#define CONVERT_FILE_EMPTY 0x01
#define CONVERT_PARA_ERR 0x02
#define CONVERT_FORMAT_ERR 0x03
#define CONVERT_UNKNOWN 0x04
/*
* : KrcDecode
* : KRC
* : QFile &KrcFile krc
* QFile &LrcFile lrc
* : CONVERT_CODE
* , CONVERT_SUCCESS;
*/
CONVERT_CODE KrcDecode(QFile &KrcFile, QFile &LrcFile)
{
CONVERT_CODE nRet = CONVERT_PARA_ERR;
if (KrcFile.isOpen() != false && LrcFile.isOpen() != false)
{
QByteArray KrcData;
QByteArray DecodeData;
QByteArray LrcData;
KrcFile.seek(0);
KrcData = KrcFile.readAll();
if (false == KrcData.isEmpty())
{
// 4
if (KrcData.left(4) == "krc1")
{
KrcData.remove(0, 4); //
// XOR
for (int i = 0; i < KrcData.size(); i++)
{
DecodeData.append((char)(KrcData[i] ^ Keys[i % 16]));
}
//
if (ZlibUncompress(LrcData, DecodeData, NULL) != -1)
{
LrcFile.write(LrcData);
nRet = CONVERT_SUCCESS;
}
else
{
nRet = CONVERT_FORMAT_ERR;
}
}
else
{
nRet = CONVERT_FORMAT_ERR;
}
}
else
{
nRet = CONVERT_FILE_EMPTY;
}
}
return nRet;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Qt How to use connect between incompatible signal and slotIn this I want to call a function, that function will receive a point . But this function should be invoked by a timer's...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.