歌词文件的编码问题尤其须要注意!
主要用到两个函数,如下:
typedef struct _LYRIC
{
long time;
string strText;
}LYRIC,*LPLYRIC;
// 读取歌词文件
BOOL CLyricsDlg::ReadLyricsFile()
{
m_bFileExist=TRUE;
ly.clear();
BOOL unicode=FALSE;
//判断是否为unicode编码
ifstream in(file,ios_base::in|ios_base::binary);
byte b[2];
in.read((char*)b,2);
if((b[0]==0xFF)&&(b[1]==0xFE))
unicode=TRUE;
else
unicode=FALSE;
in.close();
if(!unicode)
{
ifstream fin(file);
char* p=new char[MAX_PATH];
while(fin.getline(p,MAX_PATH))
{
string s;
s.append(p);
AnaliseString(s);
}
delete p;
p=NULL;
fin.close();
}
else
{
ifstream fin(file,ios_base::in|ios_base::binary);
size_t index = 2;
wstring ws;
while (!fin.eof())
{
wchar_t wch;
fin.read((char *)(&wch), 2);
if (wch == 0x000D) // 判断回车
{
CUser u;
string s;